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).openssl s_client -connect <server>:<port> -CAfile <GlobalSign Root CA.pem>
. El comando debe completarse con unVerify OK (0)
o similar. Cuando obtiene elVerify OK (0)
, el servidor está configurado correctamente (para este problema).openssl x509 -in gsalphasha2g2.crt -inform DER -out Alpha-SHA256-G2.pem -outform PEM
.i:
ys:
debajos_client
. Una vez que tenga los certificados que necesita, concat todos ellos excepto el root. Debido a que están concatenadas, deben estar en formato PEM. La URL fue útil. Se está volviendo viejo tratar de ayudar a las personas que no brindan información para que podamos verla localmente cons_client
. (Si no proporcionó la URL, habría votado para cerrar).Respuestas:
jww es correcto: está haciendo referencia al certificado intermedio incorrecto.
Como se le ha emitido un certificado SHA256, necesitará el intermedio SHA256. Puede obtenerlo desde aquí: http://secure2.alphassl.com/cacert/gsalphasha2g2r1.crt
fuente
Si es un usuario de Linux Actualice el nodo a una versión posterior ejecutando
Esto debería solucionar tu problema
fuente