No puedo configurar SSL. Busqué en Google y encontré algunas soluciones, pero ninguna funcionó para mí. Necesito ayuda por favor...
Aquí está el error que obtengo cuando intento reiniciar nginx:
root@s17925268:~# service nginx restart
Restarting nginx: nginx: [emerg] SSL_CTX_use_PrivateKey_file("/etc/nginx/conf.d/ssl/ssl.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
nginx: configuration file /etc/nginx/nginx.conf test failed
Mi certificado es de StartSSL y es válido por 1 año.
Esto es lo que probé:
- El certificado y la clave privada no tienen espacios finales.
- No estoy usando el archivo server.key predeterminado.
- Verifiqué nginx.conf y las directivas apuntan a la clave privada y al certificado correctos.
También verifiqué el módulo y obtengo un módulo diferente tanto para la clave como para el certificado.
Gracias por tu ayuda. :)
modulus' and the
porciones del exponente público en la clave y el Certificado deben coincidir. Sin duda los archivos son diferentes. La clave se genera para un certificado en particular.Una vez que haya establecido que no coinciden, todavía tiene un problema: qué hacer al respecto. A menudo, el certificado puede simplemente estar ensamblado incorrectamente. Cuando una CA firma su certificado, le envían un bloque que se parece a
también le enviarán un paquete (a menudo dos certificados) que representan su autoridad para otorgarle un certificado. esto se verá algo así como
excepto que, lamentablemente, no estarán tan claramente etiquetados.
una práctica común, entonces, es agruparlos en un solo archivo: su certificado, luego los certificados de firma. Pero como no se distinguen fácilmente, a veces sucede que alguien accidentalmente los coloca en el otro orden (firmando certificados, luego el certificado final) sin darse cuenta. En ese caso, su certificado no coincidirá con su clave.
Puede probar para ver lo que el certificado cree que representa ejecutando
Cerca de la parte superior, debería ver "Asunto:" y luego cosas que se parecen a sus datos. Si por el contrario se parece a su CA, su paquete probablemente esté en el orden incorrecto; puede intentar hacer una copia de seguridad y luego mover el último certificado al principio, con la esperanza de que sea el que sea su certificado.
Si esto no funciona, es posible que deba volver a emitir el certificado. Cuando hago una CSR, me gusta etiquetar claramente para qué servidor es (en lugar de solo ssl.key o server.key) y hacer una copia con la fecha en el nombre, como mydomain.20150306.key, etc. de esa manera Es poco probable que los pares de claves públicas y privadas se mezclen con otro conjunto.
fuente
Verifique un hash MD5 de la clave pública para asegurarse de que coincida con lo que está en una clave privada
fuente
Tuve este problema porque estaba agregando el paquete y el certificado en el orden incorrecto, por lo que tal vez esto podría ayudar a otra persona.
Antes (que está mal):
Después (que es correcto)
Y no olvide actualizar el conf apropiado (ssl_certificate ahora debe apuntar al crt encadenado) como
Desde la página de manual de nginx :
fuente
Si esto sucede y está utilizando Let's Encrypt / certbot, lo más probable es que haya utilizado en
chain.pem
lugar defullchain.pem
.Debería ser algo como esto:
Consulte los documentos de certbot "¿Dónde están mis certificados?"
fuente
Tuve el mismo problema y finalmente lo resolví cambiando el orden de los bloques pem en el archivo de certificado.
El bloque cert debe colocarse al principio del archivo, luego los bloques intermedios y luego el bloque raíz.
Me di cuenta de este problema al comparar un archivo de certificado problemático con un archivo de certificado de trabajo.
fuente
Mis 5 centavos sobre el tema:
Tuve el mismo problema. Después de aproximadamente 1 hora de cuidarlo, descubrí que pegué el certificado incorrectamente.
Si tiene un error como este, verifique su certificado.
fuente
En mi caso he querido cambiar el certificado SSL, porque cambié mi servidor así que tuve que crear una nueva CSR con este comando:
Envié el archivo mysite.csr al proveedor de SSL de la empresa y, después de recibir el certificado crt, reinicié nginx y obtuve este error.
Después de mucha investigación, el error fue que el módulo del archivo clave no era el mismo que el del archivo crt
Entonces, para que funcione, he creado un nuevo archivo csr pero tengo que cambiar el nombre del archivo con este comando
Luego recibí un nuevo archivo crt del proveedor de la compañía, reinicié nginx y funcionó.
fuente
Esto también puede suceder cuando su CA emite un certificado intermedio
Me encontré con este problema (dos veces) con nginx y ninguna de las soluciones en esta publicación explicó el problema. La publicación del blog aquí de un amable caballero llamado Marco lo clavó, y lo estoy pegando aquí para cualquiera que también se encuentre con lo que estaba viendo. https://medium.com/@mrkdsgn/steps-to-install-a-go-daddy-ssl-certificate-on-nginx-on-ubuntu-14-04-ff942b9fd7ff
En mi caso, go-daddy era el CA y esto es específico de cómo emiten el certificado y los paquetes de certificados intermedios.
Aquí está el extracto de la publicación del blog de Marco
Con Nginx, si su CA incluyó un certificado intermedio, debe crear un único archivo de certificado encadenado que contenga su certificado y los certificados intermedios de la CA.
Puede utilizar este comando para crear un archivo combinado llamado example.com.chained.crt:
cat example.com.crt intermediate.crt > example.com.chained.crt
fuente
En mi caso, el problema fue que en lugar de eso creé certificados sin ingresar ningún dato en la interfaz cli. Cuando regeneré los certificados y entré en todos los campos: ciudad, estado, etc., todo quedó bien.
fuente
Me pasó cuando combiné bundle.crt y main cert. La razón fue que copié el certificado principal debajo del bundle.crt. Debería ser de otra manera
1 / certificado principal 2 / bundle.crt
fuente
Para Nginx:
openssl req -newkey rsa:2048 -nodes -keyout domain.com.key -out domain.com.csr
Archivo SSL
domain_com.crt
ydomain_com.ca-bundle
archivos, luego copie el archivo nuevo y peguedomain.com.chained.crt
.3: agregue archivos nginx:
ssl_certificate /home/user/domain_ssl/domain.com.chained.crt;
ssl_certificate_key /home/user/domain_ssl/domain.com.key;
Últimamente reinicia Nginx.
fuente
Este error puede ocurrir, cuando la clave privada del certificado (
ssl_certificate_key
por ejemplo.key
o.pem
archivos) no coincide con el archivo de certificado público (ssl_certificate
) en la configuración de Nginx (chequenginx.conf
osites-enabled/
). Asegúrese de que ambos archivos coincidan.Consulte los registros de errores de Nginx para obtener más detalles (p
/var/log/nginx/error.log
. Ej .).fuente
En mi caso tengo que concatenar los certificados de mi dominio.
Y en el archivo de configuración /etc/nginx/nginx.conf
Reinicie el servicio y todo bien.
Paso 2 de la fuente: https://www.namecheap.com/support/knowledgebase/article.aspx/9781/2238/nginx-ssl-error0b080074x509-certificate-routines-x509checkprivatekeykey-values-mismatch
fuente