मैंने keytool का उपयोग करके अपने जावा ऐप के लिए एक स्व-हस्ताक्षरित प्रमाणपत्र तैयार किया है। हालांकि, जब मैं किसी ब्राउज़र में साइट पर जाता हूं तो यह हमेशा एक चेतावनी के साथ पॉप-अप करता है - कह रहा है कि इस साइट का प्रमाण पत्र नहीं है - क्या आत्म-हस्ताक्षर/डॉक्टर को प्रमाण पत्र का कोई तरीका है, इसलिए मुझे इन चेतावनियों को एक में नहीं मिलेगा ब्राउज़र? सर्वर और ब्राउज़र दोनों एक ही मेजबान पर स्थित हैं और मैं "http://localhost/" का उपयोग कर साइट पर नेविगेट करता हूं। मैं ब्राउज़र में अपवाद नहीं जोड़ना चाहता क्योंकि मेरे पास ऐसे परीक्षण हैं जो बड़े निर्माण फार्म पर चलते हैं, इसलिए सभी बिल्ड मशीनों पर सभी ब्राउज़रों के लिए अपवाद जोड़ने के लिए अत्यधिक है।क्या मैं जावा में स्वयं-हस्ताक्षरित प्रमाणपत्र बना सकता हूं जिसे वेब ब्राउज़र द्वारा स्वचालित रूप से भरोसा किया जाएगा?
उत्तर
आप OpenSSL या संभवतः अपने जावा टूल का उपयोग करके एक स्व-हस्ताक्षरित प्रमाणपत्र प्राधिकरण (सीए) भी सेट कर सकते हैं। फिर आप कई सीए सर्वरों पर हस्ताक्षर करने के लिए उस सीए का उपयोग कर सकते हैं।
आपको अभी भी अपने परीक्षण सर्वरों तक पहुंचने वाले सभी ग्राहकों पर अपने स्वयं-हस्ताक्षरित सीए पर मैन्युअल रूप से विश्वास करने की आवश्यकता होगी, लेकिन कम से कम आपको केवल एक व्यक्तिगत सीए-हस्ताक्षरित सर्वर के गुच्छा के बजाय एक रूट सीए पर भरोसा करना होगा ।
एक और विकल्प CAcert जांचना है।
नहीं, आप नहीं कर सकते। आप यह भी पूछ सकते हैं "मैं hsbc.com के लिए फर्जी प्रमाणपत्र कैसे बना सकता हूं?"
वहाँ एक प्रमाण पत्र स्वीकार करने के लिए एक ब्राउज़र प्राप्त करने के लिए दो तरीके हैं:
- किसी विश्वस्त प्राधिकारी का एक डोमेन के लिए एक प्रमाण पत्र खरीदने के लिए (जो कि अधिकार है कि आप उस डोमेन के स्वामी हैं साबित करने का मतलब है) और फिर उपयोग करने वाले डोमेन आपके परीक्षण सर्वर के नाम के रूप में
- ब्राउज़र में अपना हस्ताक्षर प्रमाणपत्र स्थापित करें, ताकि आप प्रभावी रूप से उस ब्राउज़र के लिए एक विश्वसनीय प्राधिकारी बन सकें।
ब्राउज़र को छूए बिना, ऐसा करने का कोई और तरीका नहीं है - अगर इंटरनेट सुरक्षित रहना है तो कैसे हो सकता है?
सुराग छड़ी लगाने के लिए जोर से :-) –
@ कोरिफ - क्या आप एक कल्पनाशील उत्तर या सत्य चाहते हैं? ब्राउज़रों को गैर-रूट सीए प्रमाण द्वारा हस्ताक्षरित स्वयं-हस्ताक्षरित certs या certs स्वीकार करने के लिए कोई तरीका नहीं है ... उन्हें इंस्टॉल करने या अपने ब्राउज़र में CA प्रमाण के अलावा। –
क्या आपने स्थानीयहोस्ट के लिए या test.textbox.com के लिए बनाया गया प्रमाणपत्र है? यदि आप FQDN test.textbox.com के लिए प्रमाणपत्र बनाते हैं, तो इस तरह की त्रुटियों को प्राप्त करने के लिए आपको सर्वर तक पहुंचने की आवश्यकता है, जब तक प्रमाणपत्र सही तरीके से हस्ताक्षरित हो। आप एफक्यूडीएन के लिए प्रमाण पत्र नहीं बना सकते हैं और उसके बाद किसी आईपी या उपनाम (लोकलहोस्ट) का उपयोग बिना चेतावनी के किए जा सकते हैं कि चीजें ठीक से मेल नहीं खा रही हैं। या क्या मैं आपकी समस्या को गलत समझ रहा हूं?
नोट: जाहिर है test.testbox.com सिर्फ एक उदाहरण है जिसका मैंने उपयोग किया था। – MattC
वह स्वयं हस्ताक्षरित certs कर रहा है (जिसका अर्थ है कि वे किसी भी प्रसिद्ध सीए में वापस नहीं आते हैं), इसलिए परिभाषा के अनुसार वह उन्हें स्वचालित रूप से स्वीकार नहीं कर सकता है। किसी ब्राउज़र द्वारा स्वचालित रूप से एक प्रमाणपत्र स्वीकार करने के लिए, उसे उस सीए पर वापस जाना पड़ता है जिसे ब्राउज़र जानता है। –
हां, लेकिन त्रुटि यह शिकायत करती है कि साइट का प्रमाण पत्र नहीं है, यह इंगित करता है कि होस्टनाम प्रमाणपत्र का निर्माण किया गया था और जो भी वह उस साइट तक पहुंचने के लिए उपयोग कर रहा है वह दो अलग-अलग चीजें हैं। उन्होंने कहा कि वह लोकलहोस्ट का उपयोग कर रहा है और मैं शर्त लगा रहा हूं कि प्रमाण सर्वर के वास्तविक होस्टनाम के लिए है। इससे अधिकांश ब्राउज़र में सुरक्षा समस्या के रूप में लाल झंडे का कारण बन जाएगा। – MattC
इसके बजाय "localhost" के लिए प्रमाण पत्र बनाएं। इसे यूआरएल में आपके पास होस्टनाम से मेल खाना जरूरी है।
आपको अभी भी परेशान किया जाएगा क्योंकि प्रमाणपत्र विश्वसनीय नहीं है, लेकिन यह एक और मुद्दा है।
रिची हिंडल सही है। यह विधि ब्राउज़र में चेतावनियों से छुटकारा नहीं पायेगी। – shosti
अच्छा उत्तर ब्रायन – sixtyfootersdude