Usados por Apache para establecer conexiones SSL. En OpenBSD los certificados se almacenan en:
# openssl genrsa -out /etc/ssl/private/server.key 1024
Un CSR es un Certificate Signing Request. Es el fichero que damos a una CA (para que nos lo firme.
# openssl req -new -key /etc/ssl/private/server.key -out /etc/ssl/private/server.csr
# openssl x509 -req -days 365 -in /etc/ssl/private/server.csr \ signkey /etc/ssl/private/server.key -out /etc/ssl/server.crt
/etc/ssl/server.crt
Contiene la clave firmada
/etc/ssl/private/server.key
COntiene la clave privada del servidor en un directorio de acceso restringido
Estos certificados se usan para sustituir a la password en una conexión segura (por ejemplo SSH o SFTP). COnstan de una clave privada que el usuario debe custodiar, y una clave pública que el usuario debe instalar en los sistemas a los que quiera acceder usando certificado.
En los sistemas UNIX, la clave pública se añade al fichero ~/.ssh/authorized_keys correspondiente.
La orden para generar el certificado es una de las siguientes, en función de que queramos usar un certificado RSA o DSA.
# ssh-keygen -t rsa -C usuario@aplicacion # ssh-keygen -t dsa -C usuario@aplicacion
EL proceso nos pide una passphrase opcional, que añade un nivel adicional de seguridad, pues cada vez que usemos el certificado debemos escribir dicha frase. A continuación se nos pide que especifiquemos el directorio donde se van a guardar las claves generadas. Los nombres que se nos proponen son id_dsa o id_rsa para la clave privada, y id_dsa.pub o id_rsa.pub para la clave pública.
La autenticidad de un determinado certificado se puede demostrar si el emisor del certificado hace saber a sus potenciales usuarios las huellas digitales de los certificados que usa. Dado que dichas huellas no son falseables, es una buena práctica publicar las dos posibles huellas de un determinado certificado, la MD5 y la SHA1.
Para obtener dichas huellas podemos teclear este comando, que obtiene las huellas del certificado de servidor situado en /etc/ssl/server.crt:
# openssl x509 -in /etc/ssl/server.crt -noout -fingerprint MD5 Fingerprint=81:8F:04:B9:1F:48:33:98:5E:72:64:6F:8E:35:9F:7D # openssl x509 -sha1 -in /etc/ssl/server.crt -noout -fingerprint SHA1 Fingerprint=DD:FD:8C:BA:66:A5:9C:17:FA:81:E1:B3:65:24:E5:07:E0:9E:74:31