Tengo problemas para configurar SSL en un servidor Debian 6.0 de 32 bits. Soy relativamente nuevo con SSL, así que tengan paciencia conmigo. Incluyo toda la información que puedo.
Nota: El verdadero nombre de dominio se ha cambiado para proteger la identidad y la integridad del servidor.
Configuración
El servidor se ejecuta con nginx. Está configurado de la siguiente manera:
ssl_certificate /usr/local/nginx/priv/mysite.ca.chained.crt;
ssl_certificate_key /usr/local/nginx/priv/mysite.ca.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_verify_depth 2;
Encadené mi certificado usando el método descrito aquí
cat mysite.ca.crt bundle.crt > mysite.ca.chained.crt
donde mysite.ca.crt
está el certificado que me ha entregado la autoridad de firma y el bundle.crt
certificado de CA que también me ha enviado mi autoridad de firma. El problema es que no compré el certificado SSL directamente de GlobalSign, sino a través de mi proveedor de alojamiento, Singlehop.
Pruebas
El certificado se valida correctamente en Safari y Chrome, pero no en Firefox. La búsqueda inicial reveló que puede ser un problema con la CA.
Exploré la respuesta a una pregunta similar , pero no pude encontrar una solución, ya que realmente no entiendo para qué sirve cada certificado.
Usé s_client de openssl para probar la conexión y recibí un resultado que parece indicar el mismo problema que la pregunta similar . El error es el siguiente:
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=27:certificate not trusted
verify return:1
Puede encontrar un detalle completo de la respuesta de openssl (con certificados e información innecesaria truncada) aquí .
También veo la advertencia:
No client certificate CA names sent
¿Es posible que ese sea el problema? ¿Cómo puedo asegurarme de que nginx envíe estos nombres de CA?
Intentos de resolver el problema
Intenté resolver el problema descargando la CA raíz directamente desde GlobalSign, pero recibí el mismo error. Actualicé las CA raíz en mi servidor Debian usando el update-ca-certificates
comando, pero nada cambió. Es probable que esto se deba a que la CA enviada por mi proveedor era correcta, por lo que el certificado se encadenó dos veces, lo que no ayuda.
0 s:/OU=Domain Control Validated/CN=*.mysite.ca
i:/C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2
1 s:/O=AlphaSSL/CN=AlphaSSL CA - G2
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
2 s:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
Próximos pasos
Por favor, avíseme si hay algo que pueda probar o si tengo todo configurado incorrectamente.
AlphaSSL CA - SHA256 - G2
. Sin embargo, su cadena suministra intermediosAlphaSSL CA - G2
. Creo que debe eliminar el certificado intermedio actual (AlphaSSL CA - G2
) y reemplazarlo con el que tiene la huella digitalae:bf:32:c3:c8:32:c7:d7...
(AlphaSSL CA - SHA256 - G2
). Además, no es necesario enviarGlobalSign Root CA
. El cliente debe arraigar su confianza en su (o en el intermedio).