Crear certificados para mis sitios web, con los nuevos registros SAN

Vamos a crearnos CERTIFICADOS, para configurar nuestro servidor con HTTPS. Todo esto lo vamos a realizar en debian, usando la linea de comandos. Se supone que esta correctamente instalado, y configurado

Hay que instalar un software, que permita crear, y manejar certificados

apt-get install openssl

Vamos a crearnos, nuestra AUTORIDAD DE CERTIFICACION. Para eso, nos vamos a la carpeta o directorio correcto

cd /etc/ssl/private

Tenemos que crearnos una CLAVE para nuestro certificado, y una vez que tengamos dicha clave, crear el CERTIFICADo, que usaremos como CA, para FIRMAR los certificados que usaremos en APACHE

openssl genrsa -out rootCA.key 2048 -des3

Una vez creada la KEY, queremos crear el certificado que sera realmente el certificado que firmara los dominios https, que le pidamos.

openssl req -x509 -new -nodes -key rootCA.key -days 365 -out rootCA.pem

Hasta aqui, tenemos creado un certificado para poder firmar certificados para nuestros dominios. Los archivos que tenemos que mantener bien guardados, y crearnos una copia de seguridad a ser posible, son

rootCA.key
rootCA.pem

Si queremos que nuestros navegadores, detecten nuestras conexiones https como seguras, deberiamos importar el archivo rootCA.pem en nuestro gestor de certificados raiz de confianza

**************************************

Vamos a ver como crear un certificado, que sera valido con la extension SAN, para nuestros sitios web, que responda tanto al dominio.com, como al www.dominio.com. Para mi ejemplo usare “david.com”

Sigo en el directorio /etc/ssl/private

Creo el archivo de configuracion david.com.cnf

nano david.com.cnf

Quedando asi…. sin los ——
—————————————————-
[ req ]
prompt = no
default_bits = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
[ req_distinguished_name ]
countryName = Es
stateOrProvinceName = Zaragoza
localityName = Spain
organizationName = OrganizacionDavid
commonName = david.com
[ req_ext ]
subjectAltName = @alt_names
[alt_names]
DNS.1 = david.com
DNS.2 = www.david.com
—————————————————–

Usando esa configuracion genero la key y la peticion

openssl req -out david.com.csr -newkey rsa:2048 -nodes -keyout david.com.key -config david.com.cnf

Compruebo la peticion creada que sea correcta

openssl req -noout -text -in david.com.csr

Genero el certificado

openssl x509 -req -in david.com.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out david.com.crt -days 365 -extensions req_ext -extfile david.com.cnf

Solo tenemos que configurar apache, para usar los archivos

david.com.crt
david.com.key

Esto lo configuramos en nuestro virtualhost, con ssl activado

Reiniciamos APACHE