OpenSSL: generar un CSR a partir de un fichero .conf

OpenSSL ofrece la posibilidad de generar un CSR (Certificate Signing Request) a partir de un archivo de configuración. Esto es útil tanto para automatización como para forzar a quien genera el CSR a utilizar determinados parámetros y datos.

A continuación podéis observar un ejemplo básico de como sería un archivo de configuración para la generación de un CSR con OpenSSL:

[ req ]
default_bits       = 2048
default_md         = sha512
default_keyfile    = foo.com.key
prompt             = no
encrypt_key        = no
distinguished_name = req_distinguished_name # distinguished_name
[ req_distinguished_name ]
countryName            = "ES"              
localityName           = "Madrid"          
organizationName       = "foo company"       
organizationalUnitName = "foo Department"    
commonName             = "foo.com"           
emailAddress           = "foo@domain.com"          

De este modo, cuanto generamos la private key y el CSR, se utilizan todos los datos especificados en el archivo de configuración csr.conf. La sintaxis de OpenSSL es la siguiente:

$ openssl genrsa -out foo.com.key 2048
$ openssl req -config csr.conf -new  -key foo.com.key -out foo.com.csr -verbose

En el sitio web oficial de OpenSSL encontraréis la página man del archivo de configuración con más ejemplos y detalle del significado de cada parámetro.