security - servidor - revisión de certificado ssl
Error de SSL: no se puede obtener el certificado de emisor local (1)
jww tiene razón: está haciendo referencia al certificado intermedio incorrecto.
Como se le ha emitido un certificado SHA256, necesitará el intermediario SHA256. Puede obtenerlo desde aquí: http://secure2.alphassl.com/cacert/gsalphasha2g2r1.crt
Tengo problemas para configurar SSL en un servidor Debian 6.0 de 32 bits. Soy relativamente nuevo con SSL así que por favor tengan paciencia conmigo. Estoy incluyendo tanta información como puedo.
Nota: El verdadero nombre de dominio ha sido cambiado para proteger la identidad y la integridad del servidor.
Configuración
El servidor se está ejecutando usando 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 here
cat mysite.ca.crt bundle.crt > mysite.ca.chained.crt
donde mysite.ca.crt
es el certificado que me dio la autoridad de firma, y bundle.crt
es el certificado de CA que me envió también mi autoridad de firma. El problema es que no compré el certificado SSL directamente de GlobalSign, sino a través de mi proveedor de hosting, 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.
Utilicé el 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 truncados e información innecesaria) here .
También veo la advertencia:
No client certificate CA names sent
¿Es posible que este sea el problema? ¿Cómo puedo asegurarme de que nginx envíe estos nombres de CA?
Intenta resolver el problema
Intenté resolver el problema descargando la CA raíz directamente de GlobalSign, pero recibí el mismo error. Actualicé las CA raíz en mi servidor Debian utilizando el comando update-ca-certificates
, pero nada cambió. Esto es probable porque la CA enviada por mi proveedor fue correcta, por lo que condujo a que el certificado se encadenara 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 intentar, o si simplemente configuro todo incorrectamente.