Fecha de última modificación:

4 Abril, 2014 - 04:17

¿Como renovar los certificados?

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.

Leer más sobre: 

¿Te resulto útil?: 

5

Comentarios

muy buenas instrucciones

me parece muy bueno el post, me prodias ayudar tengo apache tomcat, y quiero implementar en certificado ssl deprueba ya seade versign, geotrust o dyndns. la preguntaseria al crear el csr donde se espefifica el nombre del dominio, es correcto poner localhost:8080/Prueba/hola.html para ahcer una prueba en mi equipo de forma local, o comopuedo hacer esto, prodrias recomendarme alguna feunte, o ayudarme

El certificado, propio, de mi web lo he renovado con las siguientes instrucciones:

openssl genrsa -out /etc/ssl/certs/server.key 1024
openssl req -new -key /etc/ssl/certs/server.key -out /etc/ssl/certs/server.csr
openssl rsa -in /etc/ssl/certs/server.key -out /etc/ssl/private/server_nopass.key
chown root:root /etc/ssl/private/server_nopass.key
chmod 400 /etc/ssl/private/server_nopass.key
openssl x509 -req -days 3650 -in /etc/ssl/certs/server.csr -signkey /etc/ssl/private/server_nopass.key -out /etc/ssl/certs/server.crt

En la configuración del apache hago referencia a ellos como:

SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server_nopass.key

Espero que os sirva (y a mi dentro de 10 años ;-)

Melvex

tengo un problema para generar cetificados en el FTP de REDHAT ya que el me reconoce la clave y el certificado se solicutud de firma pero al probarlo por filezila no me conecta por ssl ??? que hago??

Muy buenas instrucciones, Gracias..

Envíanos tús preguntas, comentarios o sugerencias

 

Solicita Asistencia

Llámenos al:+54-9-11-32788353

Envíenos un e-mail: consultas@ ---Para enviar el SPAM--- francisconi.org

Skype Status for francisconi.hugo.adrian
 

Suscríbete

Suscríbete y recibe las últimas actualizaciones, noticias y más ...
Zircon - This is a contributing Drupal Theme
Design by WeebPal.