विभिन्न कारणों से मैंने एक सरल HTTP सर्वर बनाया है, और OpenSSL के माध्यम से SSL समर्थन जोड़ा है। मैं स्वयं हस्ताक्षरित प्रमाणपत्र का उपयोग कर रहा हूं। आईई, फ़ायरफ़ॉक्स और क्रोम खुशी से सामग्री लोड करते हैं जब तक मैं विश्वसनीय रूट सीए में सीए जोड़ता हूं।wget, स्वयं हस्ताक्षरित certs और एक कस्टम HTTPS सर्वर
हालांकि, wget (तब भी जब --no-check-certificate
ध्वज का उपयोग कर) की रिपोर्ट:
OpenSSL: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
अगर मैं का उपयोग कर अपने सर्वर के खिलाफ OpenSSL ग्राहक चलाएँ:
openssl s_client -connect dnvista:82 -debug
मैं वापस पाने: त्रुटि सत्यापित करें: num = 19: सर्टिफिकेट चेन में स्वयं हस्ताक्षरित प्रमाणपत्र वापसी सत्यापित करें: 0 और फिर
5852:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:.\ssl\s3_pkt.c:1060:SSL alert number 40
5852:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:.\ssl\s23_lib.c:188:
क्या wget और ओपनएसएसएल क्लाइंट स्वयं हस्ताक्षरित प्रमाणपत्रों के साथ काम नहीं करता है?
अद्यतन:
किसी को भी है कि साथ बाद में आता है, इस कोड को OpenSSL ग्राहक और Firefox के साथ मदद जोड़ने के लिए:
EC_KEY *ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
SSL_CTX_set_tmp_ecdh(ctx, ecdh);
EC_KEY_free(ecdh);
हाय। मैंने इस तरह की कई टिप्पणियां देखी हैं, "कई शब्दों में चेक-ऑफ़ चालू करें"। यह ** ** वास्तव में _BAD_ विचार ** है। गीली सड़कों पर गंजे टायर के साथ सड़क रेसिंग की तरह थोड़ा सा। मुझे निराश है कि इस जवाब को 'टिक' चिह्न मिला। – will
होगा: मैं सहमत हूं कि चेक चालू करना आम तौर पर एक बुरा विचार है। मेरा जवाब क्लाइंट को ज्ञात सीए प्रमाण पत्र बनाने का एक तरीका सुझाता है, ताकि चेक सही ढंग से किया जा सके। –