Es muy común encontrarse en nuestra cuenta de correo con un mensaje similar al siguiente:
################# SSL Certificate Warning ################
Certificate for hostname 'nombre_de_mi_host.localdomain', in file (or by nickname):
/etc/pki/tls/certs/localhost.crt
The certificate needs to be renewed; this can be done
using the 'genkey' program.
Browsers will not be able to correctly connect to this
web site using SSL until the certificate is renewed.
##########################################################
Generated by certwatch(1)
Como se menciona esto es generado por el programa certwatch que corre diariamente por crond debido al archivo que se encuentra en /etc/cron.daily/certwatch, el cual nos advierte que el certificado esta por espirar o ya ha expirado.
Como se ve nos dice que el certificado localhost.crt es un *.crt o Certificado Auto Firmado (del ingles self signed certificate), por lo tanto la solución es:
Eliminar o renombrar el certificado y la clave:
/etc/pki/tls/certs/localhost.crt
/etc/pki/tls/private/localhost.key
Una vez eliminados o renombrados, ya podemos proceder a crearlos ejecutamos:
genkey localhost
Nota: por defecto el certificado dura un año, si queremos modificar esto, el comando cuanta con el parámetro:
--days xx
Donde debemos remplazar las xx por la cantidad de días que queramos que dure por ejemplo: genkey --days 650 localhost
Al ejecutarlo se no presenta una pantalla que nos dice:
Que se generara un nuevo par de claves que se utilizarán para cifrar todo el tráfico SSL con el servidor llamado localhost. Opcionalmente también puede crear .csr Certificado de Solicitud de Firma y envíelo a una Autoridad de Certificación (CA) para la firma.
La clave se almacenará en:
/etc/pki/tls/private/localhost.key
El certificado almacenado en:
/etc/pki/tls/certs/localhost.crt
y damos clik en NEXT, luego se nos pregunta sobre el tamaño del certificado el cual es directamente proporcional a la seguridad y tiempo de las claves (parámetro --days), por lo general es más que suficiente seleccionar 2048 y luego damos clik en Next. Luego se tomara un tiempo en generar los bits aleatorios (dependiendo de la longitud seleccionada).
Luego nos pregunta:
¿Desea enviar un Certificado de Solicitud de Firma (CSR) a una Autoridad Certificadora (CA) (con lo cual se creara un archivo *.csr)?
Normalmente, se utiliza el Certificado Auto Firmado o *.crt (del ingles self signed certificate) y la clave privada correspondiente (*.key) para la comunicación SSL. Sin embargo, si usted quiere tener sus certificados firmados por una Autoridad Certificadora (AC) de confianza, como VeriSign, usted tendrá que enviar el archivo .csr Certificado de Solicitud de Firma (del ingles Certificate Signing Request) a por ejemplo VeriSign. Por lo tanto en nuestro caso le decimos que NO.
Luego nos pregunta se queremos encriptar la clave privada (localhost.key)
Si decimos encriptarla deberemos establecer una contraseña y esta se tendrá entrar cada vez que el servidor se inicia. La contraseña que se utiliza para cifrar la clave debe ser la misma para todas las claves utilizadas por la instalación del servidor mismo.
Si no cifrar la clave, entonces si alguien entra en su servidor y obtiene el archivo que contiene su clave (localhost.key), será capaz de descifrar todas las comunicaciones hacia y desde el servidor que se negociaron con esa clave. Si su clave se cifra sería mucho más trabajo para alguien a recuperar la clave privada.
Para este ejemplo elegimos que NO
Luego entramos los datos para nuestro certificado, como ver el código del país, la localidad el nombre de la empresa etc. y luego damos clik en Next, con lo cual habremos terminado de generar los certificados y ya podremos establecer comunicaciones más seguras.
muy buenas instrucciones