एसएसएल त्रुटि: स्थानीय जारीकर्ता प्रमाण पत्र प्राप्त करने में असमर्थ


94

मुझे एक डेबियन 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

अगला कदम

कृपया मुझे बताएं कि क्या कुछ है जो मैं कोशिश कर सकता हूं, या अगर मेरे पास पूरी बात गलत तरीके से कॉन्फ़िगर की गई है।


10
आपका डोमेन प्रमाणपत्र जारीकर्ता द्वारा हस्ताक्षरित है 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। ग्राहक को अपने भरोसे को जड़ देना चाहिए (या मध्यवर्ती पर)।
jww

6
आप स्थानीय रूप से ओपनएसएसएल के साथ इसका परीक्षण कर सकेंगे। कोशिश करो openssl s_client -connect <server>:<port> -CAfile <GlobalSign Root CA.pem>। कमांड को एक Verify OK (0)या समान के साथ पूरा करना चाहिए । जब आप प्राप्त करते हैं Verify OK (0), तो सर्वर ठीक से (इस समस्या के लिए) कॉन्फ़िगर किया गया है।
jww

6
जब आप उस नए मध्यवर्ती को डाउनलोड करते हैं, तो आपको इसे पीईएम के साथ परिवर्तित करना होगा openssl x509 -in gsalphasha2g2.crt -inform DER -out Alpha-SHA256-G2.pem -outform PEM
jww

सुंदर। मेरा मानना ​​है कि यह अब काम कर रहा है। किसी कारण से मुझे लगा कि मैंने SHA 256 को प्राप्त करने की कोशिश की है, लेकिन मैं इसे ठीक से बदलने में विफल रहा हूं। दिल से धन्यवाद।
जेमी कॉन्सल

1
हाँ, देखने वाली बात यह है कि विषय-निर्धारक जोड़े किसी रूट या CA पर वापस जा रहे हैं। OpenSSL उन्हें i:और इसके s:तहत प्रदर्शित करता है s_client। एक बार जब आपके पास आपके लिए आवश्यक सीट्स हों, तो रूट को छोड़कर उन सभी को समेट लें । क्योंकि वे समवर्ती हैं, उन्हें पीईएम प्रारूप में होना चाहिए। URL मददगार था। इसका पुराना होना उन लोगों की मदद करने की कोशिश कर रहा है जो जानकारी प्रदान नहीं करेंगे ताकि हम इसे स्थानीय स्तर पर देख सकें s_client। (यदि आपने URL प्रदान नहीं किया है, तो मैंने बंद करने के लिए मतदान किया होगा)।
jww

जवाबों:


47

jww सही है - आप गलत मध्यवर्ती प्रमाणपत्र का संदर्भ दे रहे हैं।

जैसा कि आपको SHA256 प्रमाणपत्र के साथ जारी किया गया है, आपको SHA256 मध्यवर्ती की आवश्यकता होगी। आप इसे यहां से ले सकते हैं: http://secure2.alphassl.com/cacert/gsalphasha2g2r1.crt


-1

यदि आप बाद में चलने वाले संस्करण के लिए एक Linux उपयोगकर्ता अद्यतन नोड हैं

sudo apt update

 sudo apt install build-essential checkinstall libssl-dev

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.1/install.sh | bash

nvm --version

nvm ls

nvm ls-remote

nvm install [version.number]

इससे आपकी समस्या का समाधान हो जाना चाहिए

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.