내 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
- 권한 X1을 암호화하자
편집하다:
OCSP: URI: http://ocsp.int-x1.letsencrypt.org/
CA-Issuer: URI: http://cert.int-x1.letsencrypt.org/
답변
표준 nginx 설정에 따라 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;
답변
내가 찾은 튜토리얼을 기반으로 솔루션을 찾았 습니다 .
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 테스트에 의해 선택되지 않습니다. 인증서 암호화하자가 아직 기본 신뢰할 수있는 인증서 저장소에 없기 때문이라고 생각합니다.