Para nosotros
- Generamos la key
openssl genrsa -des3 -out ca.key 4096
- Creamos nuestro certificado CRT con esa llave. Tendremos que responder varias preguntas que deben ser las mismas que si en un futuro lo queremos renovar (la renovación es la generación en sí de uno nuevo)
Generaropenssl req -new -x509 -days 365 -key ca.key -out ca.crt
Ver información introducidaopenssl x509 -in ca.crt -noout -text
Para cada cliente
- Generamos la key para el cliente
openssl genrsa -des3 -out ayuntamientoquesea.key 4096
- Generamos su certificado CSR. Hay que responder varias preguntas; responde a cada una, incluido el nombre común (CN) y la dirección de correo electrónico.
openssl req -new -key ayuntamientoquesea.key -out ayuntamientoquesea.csr
- Firmar el CSR con nuestro certificado y llave. Por lo general, hay que incrementar el número de serie con cada firma. Una vez que el certificado caduca, no es necesario volver a crear una nueva CSR; se puede firmar el mismo, lo que creará un nuevo certificado vinculado a esa clave pública. Si queremos 14 meses serían 410 días.
openssl x509 -req -days 365-in ayuntamientoquesea.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out ayuntamientoquesea.crt
- Crear el PFX que pueda importar el usuario en el navegador
openssl pkcs12 -export -out ayuntamientoquesea.pfx -inkey ayuntamientoquesea.key -in ayuntamientoquesea.crt -certfile ca.crt
Configurar NGINX para DOBLE FACTOR
Las líneas básicas para activar el doble factor deben aplicar en cada fichero de cada web del sites_availables, indicando la ruta exacta de donde está ubicado el certificado propio nuestro.
Si estamos usando HestiaCP hay que tocar las plantillas y configurar el sitio para que use esta plantilla. Normalmente lo que se suele hacer es clonar la plantilla que estamos usando (por ejemplo laravel) y a esa plantilla clonada meterle estas líneas. Las plantillas en hestia se encuentran en
cd /usr/local/hestia/data/templates/web/nginx/php-fpm/
Las líneas son las siguientes, a completar con lo indicado en el ENS
ssl_client_certificate /etc/nginx/innova/ca.crt;
ssl_verify_client on;
El nombre del ayuntamiento hay que meterlo en Section
El nombre de swpolicial en «Unidad Organizativa Software«
En el «asunto» que es «Company» hay que poner el «nombre del ayuntamiento – swpolicial«
El emisor si está bien poner «SWPOLICIAL»
El número de serie podría ser el 0000 (0007 almonte) IDAYUNTAMIENTO YMD de cuando se genera