Generar petición CSR para HTTPS

11 enero 2012 at 20:17 by Adrián Pérez

Apache HTTPSi se quiere montar un servidor que soporte HTTPS, se deberá contar un certificado válido para el sitio web. Para ello, una opción es directamente, comprar dicho certificado, en alguno de los múltiples sitios web que ofrecen esta opción, como GoDaddy, los cuales, ya tienen las instrucciones para generar la petición del certificado aquí:

Para generar la petición para el certificado, se deberán seguir una serie de pasos:

  • Crear el certificado y la petición CSR (Solicitud para Firma del Certificado), ejecutando en el servidor web, el siguiente comando (NOTA: yourdomain puede ser cualquier texto, por ejemplo, para dominio.com podríamos usar dominio.key y dominio.csr respectivamente):

openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr

Ej. openssl req -new -newkey rsa:2048 -nodes -keyout www_domain_com.key -out www_domain_com.csr

  • Al ejecutarlo, preguntará una serie de detalles para generar el certificado, los cuales deberemos rellenar convenientemente

- Country Name: ES
- State: Barcelona
- Locality Name: Barcelona
- Organization Name: Mi Ornanizacion SL
- Organizational Unit Name: Dept. Sistemas
- Common Name: www.dominio.com
- Email Address: mi_mail@mi_otro_dominio.com

Es especialmente importante introducir en el Common Name, el nombre del dominio (o subdominio) al cual asociaremos el certificado (es decir, el dominio que resolverá una petición https).

No hará falta introducir una contraseña para el certificado.

  • Al acabar el proceso, se habrán generado tanto el fichero .key como el .csr, ambos necesarios para crear el certificado, directamente en la página del proveedor (como GoDaddy).
  • Desde el proveedor, al intentar crear el certificado mediante el CSR, se enviará un mail al contacto administrativo del dominio asociado al certificado (parámetro "Common Name" durante la creación del CSR), que deberá autorizar la creación del certificado.
  • Finalmente, el proveedor nos proporcionará dos archivos:
  1. bundle.crt (el certificado intermedio)
  2. dominio.com.crt (el certificado)
  • Deberemos incluir estos dos archivos, junto con el archivo con la clave privada (.key) generado al crear la petición CSR, en la carpeta donde guardemos los certificados en el servidor web y configurar el virtual host convenientemente para empezar a usar nuestro nuevo certificado.

Actualización: Así por ejemplo, para entornos tipo Red Hat, y tras modificar los permisos para los ficheros del certificado a 644 y root:root, creariamos un vhost donde especificaríamos la ubicación de los ficheros tal y como sigue:

<VirtualHost *:443>
[...]
SSLEngine on
SSLCertificateFile /etc/httpd/crt/dominio.com.crt
SSLCertificateKeyFile /etc/httpd/crt/dominio.com.key
SSLCertificateChainFile /etc/httpd/crt/gd_bundle.crt
[...]
</VirtualHost>

Flickr! Foto por US Mission Geneva