Me gustaría habilitar el engrapado OCSP en mi servidor nginx. Estoy usando
- Versión nginx: nginx / 1.6.2
- debian
- Encriptemos el certificado
Realmente no tengo experiencia en este asunto, por lo que podría ser un problema trivial.
Aquí mi configuración de seguridad 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;
Aquí mi sitio / configuración de seguridad del servidor:
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;
Leí que esto sería suficiente para habilitar el engrapado OCSP.
Pero si lo pruebo usando
openssl s_client -connect myexample.org:443 -tls1 -tlsextdebug -status
Obtendré la siguiente respuesta:
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
---
[...]
Especialmente
OCSP response: no response sent
¿Qué estoy haciendo mal?
Jerarquía de certificados:
- DST Root CA X3
- Encriptemos la autoridad X1
- myexample.org
- Encriptemos la autoridad X1
EDITAR:
OCSP: URI: http://ocsp.int-x1.letsencrypt.org/
CA-Issuer: URI: http://cert.int-x1.letsencrypt.org/
fullchain.pem
y loschain.pem
archivos: ¿son iguales? ¿No debería lassl_trusted_certificate
directiva usar también elfullchain.pem
archivo?Respuestas:
Siguiendo la configuración estándar de nginx, no debería necesitar especificar una
ssl_trusted_certificate
cadena. Lo siguiente debería ser suficiente:Ver aquí para más contexto.
fuente
Encontré la solución basada en el tutorial que encontré allí :
y agregue esto a la configuración de su sitio / servidor
Recargue su configuración
IMPORTANTE: Abra su navegador y acceda a su página web una vez.
Luego puede probar su servidor localmente con este cmd:
Lo más probable es que obtenga una respuesta válida como esta
No te preocupes si obtienes un
en la parte inferior también , el certificado Let's Encriptar aún no se encuentra en los almacenes de certificados confiables predeterminados. (No tengo mucha experiencia SSL, así que podría estar equivocado)
El error no aparecerá si ejecuta el siguiente cmd en el servidor:
Después de eso, puede probar su servidor usando:
https://www.digicert.com/help/
Tenga en cuenta que en este momento las respuestas de OCSP no serán recogidas por las pruebas de ssllabs. Supongo que esto se debe a que el certificado Let's Encriptar aún no se encuentra en los almacenes de certificados confiables predeterminados.
fuente