Estoy tratando de configurar SSL en mi servidor web apache2, pero parece que no funciona en absoluto.
He seguido un tutorial para crear archivos cert con openssl y los configuré /etc/apache2/sites-available/default-ssl.conf
correctamente.
Cada vez que intento abrir mi sitio web con https, mi navegador se niega a conectarse debido a problemas de seguridad. Dice que no he configurado mi sitio web correctamente.
En mi /var/log/apache2/error.log
recibo advertencias, que dicen que el certificado de mi servidor no incluye una ID que coincida con el nombre del servidor.
[Mon Apr 10 11:03:24.041813 2017] [mpm_prefork:notice] [pid 1222] AH00169: caught SIGTERM, shutting down
[Mon Apr 10 11:03:30.566578 2017] [ssl:warn] [pid 661] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name
[Mon Apr 10 11:03:31.579088 2017] [ssl:warn] [pid 1194] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name
[Mon Apr 10 11:03:31.592958 2017] [mpm_prefork:notice] [pid 1194] AH00163: Apache/2.4.25 (Raspbian) OpenSSL/1.0.2k configured -- resuming normal operations
[Mon Apr 10 11:03:31.593136 2017] [core:notice] [pid 1194] AH00094: Command line: '/usr/sbin/apache2'
¿Tienes alguna idea sobre cómo resolver esto? Gracias en lo que respecta!
Respuestas:
Bien, noté que esta publicación se ve con bastante frecuencia recientemente, por lo que parece que muchas personas enfrentan el mismo problema que yo. Si es así, esto podría ayudarte.
He seguido un sencillo tutorial paso a paso para crear una certificación SSL para mi servidor web. Al igual que muchos tutoriales, el resultado del tutorial que seguí fue un certificado autofirmado con OpenSSL. Sí , autofirmado , ese era el problema. El navegador no podía confiar en el servidor debido a su certificado firmado por él mismo. Bueno, yo tampoco lo haría ...
Un certificado debe ser firmado por una autoridad de certificación (CA) confiable externa. Así que me topé con Let's Encrypt, que hace todo el trabajo por usted y es aún más fácil de configurar, y lo mejor es: es absolutamente gratis.
Instalación
1) Elimine sus viejos archivos de certificado SSL que ha creado utilizando OpenSSL
2) Abrir backports para obtener el cliente certbot en Debian. ¡Debe saber que esto abrirá un hueco para el software inacabado! Instale solo los paquetes cuando sepa lo que está haciendo.
3) Actualice su sistema Linux
4) Instalar certbot
5) Configurar apache ServerName y ServerAlias
6) Editar el archivo de configuración de apache
7) Verifique la sintaxis correcta
8) Si el archivo de configuración se ve bien, reinicie el servidor apache
9) Configure un certificado usando certbot y siga las instrucciones en pantalla.
Renovación
Todos los certificados de Let's Encrypt son válidos durante 3 meses. Para renovar el puede ejecutar manualmente
O automatizar este servicio como un trabajo cron
e ingrese la siguiente fila para invocar una renovación todos los lunes a las 2:30 a.m.
Puede seguir un tutorial más detallado aquí: https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-debian-8
fuente
Si no ve otros errores SSL, y si ha intentado configurar 'LogLevel debug' en el archivo httpd.conf, este mensaje de error también puede sugerir que falta 'Listen 443' en el archivo httpd.conf.
fuente
Esos no son errores, son advertencias. Es bastante posible ejecutar mod_ssl con un certificado que no coincida con los nombres de servidor definidos siempre que tenga un host ssl predeterminado definido y el nombre común en el certificado coincida con el nombre de host utilizado por los clientes para conectarse.
Esto último no parece ser cierto en su caso. Como dice Jacob, debe especificar el nombre de host correcto como el nombre común (o un alias) cuando crea una CSR .
Para ver qué nombre (s) están actualmente en el certificado:
Si hay varios certificados instalados en la máquina y se sirven en la misma dirección IP, entonces:
(donde los valores $ {...} son marcadores de posición que debe reemplazar con los valores relevantes).
fuente
openssl s_client
muestre el asunto y el emisor del certificado de hoja, que es el único necesita aquí, sin-showcerts
, pero para certificaciones de CA real desde aproximadamente 2010 (y certificaciones de bricolaje por personas competentes ) lo que necesita ver no es asunto sino la extensión SubjectAltName (SAN) y para eso necesitaopenssl s_client -connect h:p [-servername h] | openssl x509 -noout -text
Me encontré con este problema recientemente, cuando mi certificado autofirmado expiró. Busqué en Google y acabo de copiar el comando para crear un nuevo certificado desde un sitio web.
En mi archivo de configuración de apache: /etc/apache2/sites-available/default-ssl.conf. El archivo de certificado y el archivo de clave se refieren al siguiente nombre de archivo.
Por lo tanto, el error visto aquí en mi caso fue una solución más fácil, simplemente al proporcionar la ubicación correcta del archivo de clave de certificado al crear el certificado SSL.
Entonces, aquí está el comando que debería haber usado y escrito correctamente.
fuente
En mi caso, he resuelto esto reemplazado en mi archivo de configuración ssl de apache para cada dominio en cuestión:
por:
Porque mi certificado es para "www.midominio.com" y no para "midominio.com"
archivo completo de apache:
fuente
Tuvimos que agregar ServerName y ServerAlias al archivo default-ssl, no solo el archivo conf para el dominio específico.
Esto eliminó el molesto error para nosotros.
fuente