आज्ञा देना 'एन्क्रिप्ट - nginx - OCSP प्रधान


11

मैं अपने nginx सर्वर में OCSP स्टेपलिंग को सक्षम करना चाहूंगा। मैं उपयोग कर रहा हूँ

  • nginx संस्करण: nginx / 1.6.2
  • डेबियन
  • प्रमाण पत्र को एन्क्रिप्ट करें

मैं वास्तव में इस मामले में अनुभवहीन हूं, इसलिए यह एक तुच्छ मुद्दा हो सकता है।

यहाँ मेरा nginx सुरक्षा कॉन्फिग

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_dhparam /etc/ssl/private/dhparams_4096.pem;

यहाँ मेरी साइट / सर्वर सुरक्षा विन्यास:

    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";

    # All files have been generated by Let's encrypt
    ssl_certificate /etc/letsencrypt/live/myexample.org/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/myexample.org/privkey.pem;

    # Everything below this line was added to enable OCSP stapling
    # What is that (generated file) and is that required at all?
    ssl_trusted_certificate /etc/letsencrypt/live/myexample.org/chain.pem;

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;

मैंने पढ़ा कि यह OCSP स्टेपलिंग को सक्षम करने के लिए पर्याप्त होगा।

लेकिन अगर मैं इसका उपयोग करके परीक्षण करता हूं

 openssl s_client -connect myexample.org:443 -tls1 -tlsextdebug -status

मुझे निम्नलिखित प्रतिक्रिया मिलेगी:

TLS server extension "renegotiation info" (id=65281), len=1
0001 - <SPACES/NULS>
TLS server extension "EC point formats" (id=11), len=4
0000 - 03 00 01 02                                       ....
TLS server extension "session ticket" (id=35), len=0
TLS server extension "heartbeat" (id=15), len=1
0000 - 01                                                .
OCSP response: no response sent
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X1
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/CN=myexample.org
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X1
 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X1
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3
---
[...]

विशेष रूप से

OCSP response: no response sent

मैं क्या गलत कर रहा हूं?

प्रमाणपत्र पदानुक्रम:

  • DST रूट CA X3
    • आइए एन्क्रिप्ट करें प्राधिकरण X1
      • myexample.org

संपादित करें:

OCSP: URI: http://ocsp.int-x1.letsencrypt.org/
CA-Issuer: URI: http://cert.int-x1.letsencrypt.org/

क्या आपकी श्रृंखला के प्रमाणपत्रों में OCSP URL उनके AIA एक्सटेंशन में सेट है?
garethTheRed 21

1
@Braiam - क्या आप सही दस्तावेज़ से जुड़े हैं? वहाँ OCSP का उल्लेख नहीं है। उस टिप्पणी को +1 करने वाले से - क्या आपने इसे पहले पढ़ा था?
garethTheRed

@garethTheRed मैंने प्रमाणपत्र से OCSP URL जोड़ने के लिए अपनी पोस्ट को संपादित कर दिया है।
ST-DDT

@Braiam मैंने आपके लिंक किए गए दस्तावेज़ और AFAICT को पढ़ा है मैंने वहां सब कुछ ठीक से वर्णित किया है। (क्रोनजोब को छोड़कर, जो न तो सुरक्षा के लिए प्रासंगिक है और न ही मेरे प्रश्न के लिए)
ST-DDT

महान! यह वहाँ है। दुर्भाग्य से, मैंने नगनेक्स के साथ बहुत कुछ नहीं किया है, इसलिए वास्तव में आपको इसे कॉन्फ़िगर करने में मदद नहीं कर सकता है। क्या यूआरएल वास्तव में पहली चीज थी जो दिमाग में उछला था। केवल अन्य विचार आपके fullchain.pemऔर chain.pemफाइलें हैं - क्या वे समान हैं? ssl_trusted_certificateनिर्देश भी fullchain.pemफ़ाइल का उपयोग नहीं करना चाहिए ?
garethTheRed

जवाबों:


10

मानक नेगनेक्स सेटअप के बाद, आपको एक ssl_trusted_certificateश्रृंखला निर्दिष्ट करने की आवश्यकता नहीं होनी चाहिए । निम्नलिखित पर्याप्त होना चाहिए:

ssl_certificate /etc/letsencrypt/live/myexample.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/myexample.org/privkey.pem;
ssl_stapling on;
ssl_stapling_verify on;

आगे के संदर्भ के लिए यहां देखें ।


अच्छा, यह मेरे nginx को आसान बनाता है और साथ ही साथ काम करता है!
शुतिएह

मुझे तब भी कोई त्रुटि मिलती है जब मैं इसे इस साइट ssldecoder.org के साथ किसी भी संकेत पर परीक्षण करता हूं ?
अलेक्जेंडर श्रांज़

समस्या को ठीक करने के लिए जब आपके पास एक से अधिक sll हैं, तो आपको इसे सभी ब्लॉकों में सक्षम करने की आवश्यकता है, अन्यथा nginx चुपचाप विफल हो जाएगा।
अलेक्जेंडर श्रांज़

9

मुझे वहां मिले ट्यूटोरियल के आधार पर समाधान मिला :

cd /etc/ssl/private
wget -O - https://letsencrypt.org/certs/isrgrootx1.pem https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem https://letsencrypt.org/certs/letsencryptauthorityx1.pem https://www.identrust.com/certificates/trustid/root-download-x3.html | tee -a ca-certs.pem> /dev/null

और इसे अपनी साइट / सर्वर कॉन्फ़िगरेशन में जोड़ें

ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/ssl/private/ca-certs.pem;

अपने कॉन्फ़िगरेशन को पुनः लोड करें

महत्वपूर्ण: अपना ब्राउज़र खोलें और एक बार अपने वेबपृष्ठ तक पहुँचें।

तब आप इस cmd के साथ स्थानीय रूप से अपने सर्वर का परीक्षण कर सकते हैं:

openssl s_client -connect myexample.org:443 -tls1 -tlsextdebug -status

आप सबसे अधिक इस तरह की वैध प्रतिक्रिया प्राप्त करेंगे

OCSP response:
======================================
OCSP Response Data:
    OCSP Response Status: successful (0x0)
    Response Type: Basic OCSP Response
    Version: 1 (0x0)
    Responder Id: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X1

चिंता मत करो अगर तुम एक मिल

Verify return code: 20 (unable to get local issuer certificate)

नीचे के रूप में अच्छी तरह से , चलो एन्क्रिप्टेड प्रमाण पत्र अभी तक डिफ़ॉल्ट विश्वसनीय प्रमाणपत्र स्टोर में नहीं है। (मेरे पास ssl का अनुभव नहीं है, इसलिए मैं गलत हो सकता हूं)

यदि आप सर्वर पर निम्न cmd निष्पादित करते हैं तो त्रुटि दिखाई नहीं देगी:

openssl s_client -CApath /etc/ssl/private/ -connect myexample.org:443 -tls1 -tlsextdebug -status

उसके बाद आप अपने सर्वर का उपयोग करके परीक्षण कर सकते हैं:

https://www.digicert.com/help/

ज्ञात हो कि अभी OCSP के रिपॉजिट को ssllabs परीक्षणों द्वारा नहीं लिया जाएगा। मुझे लगता है कि ऐसा इसलिए है क्योंकि लेट्स एन्क्रिप्टेड सर्टिफिकेट अभी तक डिफॉल्ट भरोसेमंद सर्टिफिकेट स्टोर्स में नहीं है।

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