Creando certificados CA en Linux
La siguiente es una guía paso a paso de cómo crear sus propios CA (Certificados de Autoridad) con OpenSSL en Linux.
Creando Certificados:
El primer paso es hacer el par llave privada CA y certificado CA
openssl genrsa -des3 -out ca.key 4096 openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
Nota: Durante este proceso se le pedirá que ingrese algunos datos como Nombre, Organización, Estado o Provincia, etc.
El CA certificado/llave creado será valido por 10 años (3650 días)
Ahora se crea el certificado de llave privada/certificado para el servidor:
openssl genrsa -des3 -out server.key 4096 openssl req -new -key server.key -out server.csr openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt
Nota: Durante este proceso se le pedirá que ingrese algunos datos como Nombre (Common Name -CN-), Organización, Estado o Provincia, etc. Recuerde cuando se ingrese los datos, que éstos no sean los mismos que para el CA (Certificados de Autoridad) sino ocurrirá una colisión de datos. El CA certificado/llave creado será valido por 10 años (3650 días).
El Common Name (CN) o Nombre debería ser el nombre DNS o la dirección IP del servidor de otra manera se obtendrá «domain mismatch«. Por ejemplo el cliente Windows SSTP no se conectará al servidor.
La creación del par llave cliente/certificado es similar al servidor. Recordar especificar valores CN únicos.
openssl genrsa -des3 -out client.key 4096 openssl req -new -key client.key -out client.csr openssl x509 -req -days 3650 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt
Para examinar el certificado ejecutar el siguiente comando:
openssl x509 -noout -text -in server.crt -purpose
Importando certificado:
Para importar el certificado creado recientemente en el router, primero de debe subir los archivos server.crt y server.key en el router vía FTP.
Ahora hay que ir al submenu /certificate
y ejecutar el siguiente comando:
[admin@test_host] /certificate> import file-name=server.crt passphrase: certificates-imported: 1 private-keys-imported: 0 files-imported: 1 decryption-failures: 0 keys-with-no-certificate: 0 [admin@test_host] /certificate> import file-name=server.key passphrase: certificates-imported: 0 private-keys-imported: 1 files-imported: 1 decryption-failures: 0 keys-with-no-certificate: 0
Si todo ha sido importado correctamente entonces el certificado debería mostrar el flag KR.
[admin@test_host] /certificate> print Flags: K - decrypted-private-key, Q - private-key, R - rsa, D - dsa 0 KR name="cert1" subject=C=LV,ST=RI,L=Riga,O=MT,CN=server,emailAddress=xxx@mt.lv issuer=C=LV,ST=RI,L=Riga,O=MT,CN=MT CA,emailAddress=xxx@mt.lv serial-number="01" email=xxx@mt.lv invalid-before=jun/25/2008 07:24:33 invalid-after=jun/23/2018 07:24:33 ca=yes
Nota: Si se quiere usar el certificado para OpenVPN o SSTP y además la verificación del certificado cliente, el certificado CA debería ser importado también.
Por: Maximiliano Dobladez Fuente: Mikrotik Bajo Licencia CC 2.5 - Attribution-Noncommercial-No Derivative