मुझे एक डेबियन 6.0 32 बिट सर्वर पर एसएसएल को कॉन्फ़िगर करने में परेशानी हो रही है। मैं एसएसएल के साथ अपेक्षाकृत नया हूं इसलिए कृपया मेरे साथ रहें। मुझे जितनी जानकारी हो सकती है, मैं इसमें शामिल हूं।
नोट: सर्वर की पहचान और अखंडता की रक्षा के लिए सही डोमेन नाम को बदल दिया गया है।
विन्यास
सर्वर nginx का उपयोग करके चल रहा है। इसे निम्नानुसार कॉन्फ़िगर किया गया है:
ssl_certificate /usr/local/nginx/priv/mysite.ca.chained.crt;
ssl_certificate_key /usr/local/nginx/priv/mysite.ca.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_verify_depth 2;
मैंने यहाँ वर्णित विधि का उपयोग करके अपने प्रमाणपत्र को जंजीर में बांध दिया
cat mysite.ca.crt bundle.crt > mysite.ca.chained.crt
mysite.ca.crt
मुझे हस्ताक्षर करने वाले प्राधिकारी द्वारा प्रमाण पत्र कहां दिया गया है, और bundle.crt
मेरे हस्ताक्षरित प्राधिकारी द्वारा मुझे भेजा गया सीए प्रमाण पत्र भी है। समस्या यह है कि मैंने SSL प्रमाणपत्र सीधे GlobalSign से नहीं खरीदा है, बल्कि इसके बजाय अपने होस्टिंग प्रदाता, Onehop के माध्यम से खरीदा है।
परिक्षण
प्रमाणपत्र सफारी और क्रोम पर ठीक से मान्य है, लेकिन फ़ायरफ़ॉक्स पर नहीं। प्रारंभिक खोज से पता चला है कि यह सीए के साथ एक समस्या हो सकती है।
मैंने एक समान प्रश्न के उत्तर की खोज की , लेकिन एक समाधान खोजने में असमर्थ था, क्योंकि मैं वास्तव में यह नहीं समझता कि प्रत्येक प्रमाण पत्र किस उद्देश्य से कार्य करता है।
मैं openssl के s_client इस्तेमाल किया कनेक्शन, और प्राप्त उत्पादन जो के रूप में एक ही समस्या में इंगित करता है परीक्षण करने के लिए इसी तरह के सवाल । त्रुटि इस प्रकार है:
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=27:certificate not trusted
verify return:1
खुलने की प्रतिक्रिया का पूर्ण विवरण (प्रमाण पत्र और अनावश्यक जानकारी के साथ) यहां पाया जा सकता है ।
मैं चेतावनी भी देखता हूं:
No client certificate CA names sent
क्या यह संभव है कि यह समस्या है? मैं यह कैसे सुनिश्चित कर सकता हूं कि nginx इन CA नामों को भेजता है?
समस्या को हल करने का प्रयास
मैंने सीधे GlobalSign से रूट CA डाउनलोड करके समस्या को हल करने का प्रयास किया, लेकिन वही त्रुटि मिली। मैंने update-ca-certificates
कमांड का उपयोग करके अपने डेबियन सर्वर पर रूट CA को अपडेट किया , लेकिन कुछ भी नहीं बदला। यह संभावना है क्योंकि मेरे प्रदाता से भेजा गया सीए सही था, इसलिए इसने दो बार प्रमाणपत्र को जंजीर में डाल दिया, जो मदद नहीं करता है।
0 s:/OU=Domain Control Validated/CN=*.mysite.ca
i:/C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2
1 s:/O=AlphaSSL/CN=AlphaSSL CA - G2
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
2 s:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
अगला कदम
कृपया मुझे बताएं कि क्या कुछ है जो मैं कोशिश कर सकता हूं, या अगर मेरे पास पूरी बात गलत तरीके से कॉन्फ़िगर की गई है।
openssl s_client -connect <server>:<port> -CAfile <GlobalSign Root CA.pem>
। कमांड को एक Verify OK (0)
या समान के साथ पूरा करना चाहिए । जब आप प्राप्त करते हैं Verify OK (0)
, तो सर्वर ठीक से (इस समस्या के लिए) कॉन्फ़िगर किया गया है।
openssl x509 -in gsalphasha2g2.crt -inform DER -out Alpha-SHA256-G2.pem -outform PEM
।
i:
और इसके s:
तहत प्रदर्शित करता है s_client
। एक बार जब आपके पास आपके लिए आवश्यक सीट्स हों, तो रूट को छोड़कर उन सभी को समेट लें । क्योंकि वे समवर्ती हैं, उन्हें पीईएम प्रारूप में होना चाहिए। URL मददगार था। इसका पुराना होना उन लोगों की मदद करने की कोशिश कर रहा है जो जानकारी प्रदान नहीं करेंगे ताकि हम इसे स्थानीय स्तर पर देख सकें s_client
। (यदि आपने URL प्रदान नहीं किया है, तो मैंने बंद करने के लिए मतदान किया होगा)।
AlphaSSL CA - SHA256 - G2
। हालाँकि, आपकी श्रृंखला मध्यवर्ती आपूर्ति करती हैAlphaSSL CA - G2
। मेरा मानना है कि आपको वर्तमान मध्यवर्ती प्रमाणपत्र (AlphaSSL CA - G2
) को हटाने की आवश्यकता है , और इसे फिंगरप्रिंटae:bf:32:c3:c8:32:c7:d7...
(AlphaSSL CA - SHA256 - G2
) के साथ बदलें । इसके अलावा, आपको भेजने की आवश्यकता नहीं हैGlobalSign Root CA
। ग्राहक को अपने भरोसे को जड़ देना चाहिए (या मध्यवर्ती पर)।