¿Se puede renovar el certificado SSL autofirmado? ¿Cómo?


18

Soy bastante nuevo en los certificados SSL y me gustaría saber si un certificado autofirmado que utilizo para HTTPS puede renovarse para extender su fecha de vencimiento sin que todos los clientes del sitio tengan que pasar por el proceso de "permitir excepción" que tienen hacer cuando visitan el sitio por primera vez o, como cuando emiten un nuevo certificado autofirmado creado desde cero.

Me encontré con el siguiente tutorial que muestra cómo renovar un certificado autofirmado utilizando openssl, pero yo no era capaz de utilizarlo de manera que mi navegador en silencio lo acepta sin demostrar que "Sitio no es de confianza" pantalla de advertencia:

  # cd /etc/apache2/ssl
  # openssl genrsa -out togaware.com.key 1024
  # chmod 600 togaware.com.key
  # openssl req -new -key togaware.com.key -out togaware.com.csr
    AU
    ACT
    Canberra
    Togaware
    Data Mining
    Kayon Toga
    Kayon.Toga@togaware.com
    (no challenge password)
  # openssl x509 -req -days 365 -in togaware.com.csr \
            -signkey togaware.com.key -out togaware.com.crt
  # mv apache.pem apache.pem.old
  # cp togaware.com.key apache.pem 
  # cat togaware.com.crt >> apache.pem 
  # chmod 600 apache.pem
  # wajig restart apache2

Mi configuración es más o menos como se describe en esta respuesta y estoy usando archivos CRT y KEY (de este tutorial ) en lugar de un archivo PEM, por lo que tal vez me equivoqué al tratar de aplicarlo a mi caso.

Por otra parte, encontré muchas entradas en el foro que sugieren que es completamente imposible renovar un certificado autofirmado y tengo que crear uno nuevo desde cero.

Cualquier ayuda sería apreciada ... ¿o esta pregunta sería mejor para /server// o /superuser// ?


77
En lugar de rechazar esta pregunta, brinde consejos específicos sobre qué mejorar al respecto.
FriendFX

Respuestas:


23

Por definición, se puede confiar en un certificado autofirmado solo a través de la confianza directa , es decir, lo que los navegadores web como Firefox muestran como el proceso de "permitir excepción". Un certificado muy específico, hasta el último bit, se declara como "confiable". No se puede cambiar nada en un certificado sin salir de este modelo y, en particular, la fecha de vencimiento, que es parte de los datos contenidos en el certificado.

Puede imaginar la renovación como una especie de cosa familiar: cuando un certificado se "renueva", en realidad lo reemplaza un hermano menor. Los clientes aceptan el nuevo certificado en silencio porque comparte la misma ascendencia que el certificado anterior. Los certificados autofirmados son huérfanos intrínsecos: no tienen ascendencia. Por lo tanto, no hay hermanos y no hay transmisión automática.

(Aparte de esta cuestión ancestral, la renovación es la creación de un nuevo certificado. Los certificados son inmutables . La "renovación" es una forma de pensar sobre la relación entre los certificados antiguos y los nuevos).

Si usted quiere ser capaz de hacer renovaciones en silencio, entonces usted necesita un auto firmado CA certificado . Emite certificados para su servidor (s) de esa CA y le pide a sus clientes que confíen en esa CA. Por supuesto, esto está pidiendo mucho: una CA en la que confía es una CA que puede simular todo Internet en sus ojos. Básicamente, esta solución se trata de crear y mantener su propia CA, que es una responsabilidad y algo de trabajo.


La próxima vez que produzca un certificado autofirmado, hágalo de larga duración. Los certificados caducan principalmente para que la revocación funcione (la caducidad del certificado evita que CRL crezca indefinidamente). Para un certificado autofirmado, no hay revocación, por lo que puede hacer que el certificado sea válido por 20 años. O para 2000 años, para el caso (aunque el problema del año 2038 podría aparecer en algún momento, dependiendo del software del cliente).


Gracias por la extensa respuesta! Sin embargo, me pregunto qué significa eso en relación con el tutorial al que me vinculé. ¿Es solo para certificados CA autofirmados? Supongo que esperaba (y pensé después de leer el tutorial) que había una manera de leer en la clave privada de la anterior y crear una nueva, "compatible" ... una que pareciera un "niño" en lugar de un "huérfano". Buena analogía, por cierto!
FriendFX

@FriendFX: lo que quieres no es posible. Tom tiene razón, la renovación genera un nuevo certificado.
Ramhound

@Ramhound: lo entiendo. La única pregunta abierta es: ¿cuál es el propósito de ese tutorial entonces?
FriendFX

@FriendFX: fue escrito por un tipo aleatorio en Internet solo porque tienen un blog, no significa que entiendan de qué están escribiendo. El autor simplemente no explica que el tutorial dará como resultado un nuevo certificado
Ramhound

3
@FriendFX Sí, ese tutorial solo funcionará para certificados CA autofirmados. Si utiliza el mismo par de claves y el mismo tema, puede crear múltiples certificados de CA que satisfarán cada uno como un emisor válido para los certificados emitidos; estos certificados incluso pueden ser emitidos por diferentes CA principales, lo que se denomina "encadenamiento cruzado".
Calrion

3

Respuesta corta: no.

Confiar en un certificado autofirmado es como confiar en un pasaporte individual en lugar del país que lo emite. Si obtiene un pasaporte nuevo, alguien que confió en el anterior no confiará automáticamente en él, específicamente porque es una cosa diferente con diferentes atributos (número de pasaporte, fechas, etc.); no hay base para que alguien confíe explícitamente en el pasaporte antiguo para saber que se puede confiar en el nuevo.


0

Si usa certificados autofirmados (recomiendo usar xca en Windows), simplemente puede establecer la fecha de vencimiento en 7999-12-31 (ese es el tiempo máximo para UTC) y la fecha inicial para 1970-01-01 (para compatibilidad con fecha / hora mal configurada en PC)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.