Cacert.org
Sumario
Enlaces y referencias
Conceptos
Cacert.org es una autoridad certificadora gestionada por una comunidad de usuarios cuyo propósito es emplear la criptografía para promover la educación sobre seguridad en computación.
Como resultas de ello también proporcionan -sin coste- certificados digitales que pueden emplearse en servidores web o de correo, con la única condición de que se instale el certificado raíz en el sistema cliente, concretamente dentro de la lista de autoridades certificadoras.
Crear un certificado de servidor
Los pasos son bastante similares a los de cualquier CA:
- Definir el servidor en el panel de control
- Preparar un Certificate Signing Request (petición de firma de certificado)
- Enviarlo a la autoridad certificadora para que lo firme
- Descargar el certificado e instalarlo
- Configurar los servidores que vayan a utilizarlo
Preparar un CSR
Existe un pequeño programa que ayuda en la preparación del certificado. Una vez descarga se ejecuta y se responde a las preguntas cuidadosamente el programa creará un archivo de nombre $HOME/example_csr.pem
que tendremos que enviar al servidor para que lo firme.
Private Key and Certificate Signing Request Generator This script was designed to suit the request format needed by the CAcert Certificate Authority. www.CAcert.org . Short Hostname (ie. imap big_srv www2): example FQDN/CommonName (ie. www.example.com) : example.net Type SubjectAltNames for the certificate, one per line. Enter a blank line to finish SubjectAltName: DNS:www.example.net SubjectAltName: DNS:admin.example.net SubjectAltName: DNS:mail.example.net SubjectAltName: DNS:sync.example.net SubjectAltName: DNS:static.example.net SubjectAltName: DNS: Running OpenSSL... Generating a 2048 bit RSA private key ...........+++ .........................+++ writing new private key to '/root/example_privatekey.pem' ----- Copy the following Certificate Request and paste into CAcert website to obtain a Certificate. When you receive your certificate, you 'should' name it something like example_server.pem . -----BEGIN CERTIFICATE REQUEST----- MIIC0zCCAbsCAQAwFjEUMBIGA1UEAxMLdmVuZXhtYS5uZXQwggEiMA0GCSqGSIb3 DQEBAQUAA4IBDwAwggEKAoIBAQDTD1hErWAj4IPvBBN9KFFF/aXuE/tyNem47FEK tQFG8r1jUtHwXUh6+Hhb8W+weXnQN+lk63xSmlULN2KzI/mpV652fM30uO4JZDOa
Es necesario indicar todos aquellos nombres alternativos para los que el certificado debe servir. Antes no era posible tener en una misma dirección IP a varios dominios con un mismo certificado, pero como con las versiones modernas de Apache sí es posible, tenemos que examinar los distintos host virtuales que vamos a poner en línea para que cada uno pueda compartir el mismo certificado final. Si nos dejamos uno fuera tendremos que repetir el proceso.
Si existen servidores no web como los de correo respondiendo a las mismas direcciones también podemos emplear el certificado para abrir conexiones seguras con ellos.
En total existen varios archivos importantes:
- $HOME/example_csr.pem
- Petición de firma de certificado
- $HOME/example_privatekey.pem
- Clave privada con la que se ha firmado la petición y que acompaña luego al certificado
- Archivo con el certificado descargado
- que tendremos que situar en un directorio concreto con suficientes permisos para que accedan a él los distintos servidores.
Usar el certificado en servidores propios
En muchos casos el certificado del servidor debe ir acompañado de la clave privada (sin contraseña, a menos que queramos estar presentes en la consola en todo momento para introducirla) por lo que ésta debe tener los permisos más restrictivos posibles. Si el servidor arranca como superusuario como es el caso de Apache y CUPS lo mejor es que el archivo sólo tenga lectura por root.
El resto es sencillo. Basta con copiar o crear un enlace a los archivos (que podemos haber guardado perfectamente en /etc/cacert
) del certificado y la clave en el directorio donde habitualmente el servidor espera encontrarlos
- Apache:
/etc/apache2/ssl
- CUPS:
/etc/cups/ssl
y recargar los servicios.
También existe la posibilidad de que el programa quiera tener acceso al certificado raíz que firmó el nuestro. En ese caso tendremos que descargarlo de la página de la organización teniendo en cuenta que Cacert emplea una cadena de firmas y que el que necesitemos posiblemente sea el de clase 3.