Chciałbym włączyć zszywanie OCSP na moim serwerze nginx. używam
- Wersja nginx: nginx / 1.6.2
- debian
- Zaszyfrujmy certyfikat
Jestem naprawdę niedoświadczony w tej sprawie, więc może to być trywialna kwestia.
Oto moja konfiguracja bezpieczeństwa 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;
Tutaj moja konfiguracja bezpieczeństwa strony / serwera:
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;
Przeczytałem, że to wystarczy, aby umożliwić zszywanie OCSP.
Ale jeśli przetestuję to za pomocą
openssl s_client -connect myexample.org:443 -tls1 -tlsextdebug -status
Otrzymam następującą odpowiedź:
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
---
[...]
Szczególnie
OCSP response: no response sent
Co ja robię źle?
Hierarchia certyfikatów:
- DST Root CA X3
- Let's Encrypt Authority X1
- myexample.org
- Let's Encrypt Authority X1
EDYTOWAĆ:
OCSP: URI: http://ocsp.int-x1.letsencrypt.org/
CA-Issuer: URI: http://cert.int-x1.letsencrypt.org/
fullchain.pem
ichain.pem
pliki - czy są takie same? Czyssl_trusted_certificate
dyrektywa nie powinna również wykorzystywaćfullchain.pem
pliku?Odpowiedzi:
Zgodnie ze standardową konfiguracją nginx nie trzeba określać
ssl_trusted_certificate
łańcucha. Powinno wystarczyć:Zobacz tutaj dla dalszego kontekstu.
źródło
Znalazłem rozwiązanie na podstawie samouczka, który tam znalazłem :
i dodaj to do konfiguracji strony / serwera
Załaduj ponownie swoją konfigurację
WAŻNE: Otwórz przeglądarkę i uzyskaj dostęp do strony internetowej jeden raz.
Następnie możesz przetestować serwer lokalnie za pomocą tego polecenia cmd:
Najprawdopodobniej otrzymasz prawidłową odpowiedź w ten sposób
Nie martw się, jeśli dostaniesz
na dole , jak również , szyfrowania certyfikat niech nie jest jeszcze w domyślnym zaufanych sklepów certyfikatów. (Nie mam dużego doświadczenia ssl, więc mogę się mylić)
Błąd nie pojawi się, jeśli uruchomisz następujące polecenie cmd na serwerze:
Następnie możesz przetestować serwer za pomocą:
https://www.digicert.com/help/
Pamiętaj, że teraz odpowiedzi OCSP nie zostaną wykryte przez testy ssllabs. Zakładam, że dzieje się tak, ponieważ certyfikat Let's encrypt nie znajduje się jeszcze w domyślnych zaufanych magazynach certyfikatów.
źródło