OCSP सत्यापन - स्थानीय जारीकर्ता प्रमाण पत्र प्राप्त करने में असमर्थ


17

मैं एसएसएल को खरोंच से सेटअप करने के लिए नया हूं और अपने पहले चरण किए। मैंने अपने डोमेन के लिए रैपिडएसएसएल से एक एसएसएल सर्टिफिकेट खरीदा और सर्टिफिकेट को स्थापित करने के लिए कदम उठाए। सामान्य तौर पर प्रमाणपत्र वैध है और मेरे वेबसर्वर (nginx v1.4.6 - Ubuntu 14.04.1 LTS) पर काम कर रहा है, लेकिन अगर मैं OCSP OCSP को सक्रिय करने की कोशिश कर रहा हूं तो मुझे अपनी nginx error.log में निम्न त्रुटि मिलती है:

OCSP_basic_verify () विफल (SSL: त्रुटि: 27069065: OCSP दिनचर्या: OCSP_basic_verify: प्रमाणपत्र सत्यापन त्रुटि: त्रुटि सत्यापित करें: स्थानीय जारीकर्ता प्रमाण पत्र प्राप्त करने में असमर्थ) प्रमाण पत्र की स्थिति का अनुरोध करते हुए, प्रत्युत्तर: gv.symcd.com

मैंने इसे कमांड लाइन से इस कमांड के साथ भी आजमाया:

खुलता है s_client -connect mydomain.tld: 443 2> & 1 </ dev / null

और मेरी त्रुटि की तरह "वही" त्रुटि मिली।

[...] एसएसएल-सत्र: प्रोटोकॉल: TLSv1.2 सिफर: ECDHE-RSA-AES256-GCM-SHA384 [...] प्रारंभ समय: 1411583991 समयबाह्य: 300 (सेकंड) सत्यापन कोड: 20 (स्थानीय पाने में असमर्थ) जारीकर्ता प्रमाण पत्र)

लेकिन अगर जियोट्रस्ट रूट सर्टिफिकेट डाउनलोड करें और इस आदेश के साथ प्रयास करें:

खुलता है s_client -connect mydomain.tld: 443 -CAfile GeoTrust_Global_CA.pem 2> & 1 </ dev / null

सत्यापन ठीक है:

[...] एसएसएल-सत्र: प्रोटोकॉल: TLSv1.2 सिफर: ECDHE-RSA-AES256-GCM-SHA384 [...] प्रारंभ समय: 1411583262 टाइमआउट: 300 (सेकंड) सत्यापन कोड: 0 (ठीक है)

इसलिए किसी तरह जियोट्रस्ट रूट सर्टिफिकेट नहीं मिला / वितरित किया गया।

मेरा नगीनाक्स स्थल विन्यास:

server {
    listen 443;
    server_name mydomain.tld;

    ssl on;
    ssl_certificate /etc/ssl/certs/ssl.crt;
    ssl_certificate_key /etc/ssl/private/ssl.key;


    # Resumption
    ssl_session_cache shared:SSL:20m;

    # Timeout
    ssl_session_timeout 10m;

    # Security options
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;

    # OCSP Stapling
    # It means that you sent status info about your certificate along with the request,
    # instead of making the browser check the certificate with the Certificate Authority.
    # This removes a large portion of the SSL overhead, the CloudFlare post above explains it in more detail.
    ssl_stapling on;
    ssl_stapling_verify on;
    #ssl_trusted_certificate /etc/ssl/certs/ssl.pem;

    #resolver 8.8.8.8 8.8.4.4 valid=300s;
    #resolver_timeout 10s;

    # This forces every request after this one to be over HTTPS
    add_header Strict-Transport-Security "max-age=31536000";[...]};

RapidSSL ने अपने दस्तावेज में लिखा है कि मुझे निम्नलिखित प्रमाण पत्र को निम्नलिखित आदेश के साथ ssl.crt में जोड़ना चाहिए:

  1. myserver.crt
  2. इंटरमीडिएट सीए बंडल (रैपिडएसएसएल SHA256 CA - G3)
  3. इंटरमीडिएट CA बंडल (GeoTrust Global CA)

तो मैंने किया...

अभी मुझे पता नहीं है कि मैं क्या गलत कर रहा हूं ... उम्मीद है कि यहां कोई भी मेरी मदद कर सकता है।

धन्यवाद!

जवाबों:


17

उन दो त्रुटियों को असंबंधित किया गया था, हालांकि त्रुटि संदेश समान था।

[...] एसएसएल-सत्र: प्रोटोकॉल: TLSv1.2 सिफर: ECDHE-RSA-AES256-GCM-SHA384 [...] प्रारंभ समय: 1411583991 समयबाह्य: 300 (सेकंड) सत्यापन कोड: 20 (स्थानीय पाने में असमर्थ) जारीकर्ता प्रमाण पत्र)

ऊपर त्रुटि जारी की गई थीहै_sl_client कमांड। जैसा कि फ्लोरिअन हेइग्ल द्वारा समझाया गया है, आपको यह त्रुटि मिलती है क्योंकि ओपनस्ले_क्लिएंट को ग्लोबालिसिन रूट सर्टिफिकेट की आवश्यकता होती है /etc/ssl/certs


OCSP_basic_verify () विफल (SSL: त्रुटि: 27069065: OCSP दिनचर्या: OCSP_basic_verify: प्रमाणपत्र सत्यापन त्रुटि: त्रुटि सत्यापित करें: स्थानीय जारीकर्ता प्रमाण पत्र प्राप्त करने में असमर्थ) प्रमाण पत्र की स्थिति का अनुरोध करते हुए, प्रत्युत्तर: gv.symcd.com

इस त्रुटि के लिए, यह nginx ocsp दिनचर्या द्वारा जारी किया गया था , खासकर जब आप ssl_stapling_verify on;nginx.conf में लाइन जोड़ते हैं।

से कुछ उद्धरण यहां प्रलेखन की ssl_stapling_verifyव्याख्या करने के लिए कारण है कि यह त्रुटि फेंकता

सिंटेक्स: ssl_stapling_verify पर | बंद;

सर्वर द्वारा OCSP प्रतिक्रियाओं के सत्यापन को सक्षम या अक्षम करता है।

कार्य के सत्यापन के लिए, सर्वर प्रमाणपत्र जारीकर्ता का प्रमाण पत्र, रूट प्रमाणपत्र, और सभी मध्यवर्ती प्रमाण पत्रों को ssl_trusted_certificate के निर्देश का उपयोग करके विश्वसनीय रूप में कॉन्फ़िगर किया जाना चाहिए।

दूसरे शब्दों में, आपको निर्देश देने के लिए (2) इंटरमीडिएट CA बंडल (RapidSSL SHA256 CA - G3) और (3) इंटरमीडिएट CA बंडल (GeoTrust Global CA) की आवश्यकता है ssl_trusted_certificate

cat GeoTrustGlobalCA.crt rapidsslG3.crt > ocsp-chain.crt

और जोड़ने ocsp-chain.crtके लिए ssl_trusted_certificateनिर्देश।


आपको बहुत - बहुत धन्यवाद! मैंने यह भी कोशिश की, लेकिन हमेशा इसे क्ली कमांड के साथ परीक्षण किया।
कपाली

हमें मध्यवर्ती सिरे कहां मिलते हैं?
इंगो

1

मैं केवल इसका उत्तर दे सकता हूं।

खुलता है s_client -connect mydomain.tld: 443 2> & 1 </ dev / null

Globalsign रूट सर्टिफिकेट की जरूरत होगी / etc / ssl / certs। सीए-सर्टिफिकेट पैकेज है, क्या आपने इसे स्थापित किया है?


मुझे समझ नहीं आया कि रैपिडएसएसएल और जियोट्रस्ट के साथ काम करते समय ग्लोबालसिन रूट सर्टिफिकेट का उपयोग क्यों करें ?? वे Globalsign से अलग हैं ... मुझे सही करें अगर मैं गलत था!
डिजिटल साइट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.