Guía Básica de instalación de un certificado en diferentes servidores


Introducción

En esta página vamos a mostrar unas pequeñas indicaciones para instalación de un certificado en los diferentes tipos de servidores existentes. Nos basaremos en la información que vosotros, como usuarios del servicio, nos proporcionéis.

En todas las indicaciones que se citan a continuación, suponemos que el usuario se encuentra en posesión de los siguientes ficheros:

  • Clave privada asociada al certificado
  • Certificado emitido por el proveedor
  • Cadena de certificación

Hemos recibido solicitudes para incorporar información para los los siguientes servidores:

Tabla de contenido

Debido a que en RedIRIS no contamos con todos los modelos listados anteriormente necesitamos de vuestra colaboración para la realización de esta guía. Iremos incorporando la información a las diferentes secciones a medida que vayamos recibiendo vuestros comentarios.

Mostramos además unas guías de instalación ofreciadas por varios proveedores de certificados, donde podrá encontrar toda la información que no tengamos en esta pequeña guía básica:

 

Web

Apache

  1. Prerequisistos:
    • Tener instalado openssl
    • Tener Apache con ssl habilidado (opción --enable-ssl en el ./configure)
    • No filtrar el tráfico en el puerto 443
  2. Copiar la clave privada del certificado server.key al directorio conf/ssl.key del Apache
  3. Copiar el certificado cert_nnnnnnnn.pem (el fichero .pem que hemos recibido) al directorio conf/ssl.crt. Renombrar el fichero a cert_nnnnnn.pem a server.crt
  4. Descargese el fichero con la cadena de certificación, del proveedor de certificados, y copiarlo al directorio y copiarlo al directorio conf/ssl.crt. Renombrar el fichero bajado a CADENA_PATH.pem
  5. Editar el fichero conf/ssl.conf y modificar las siguientes directivas:
    #   Server Certificate:
    #   Point SSLCertificateFile at a PEM encoded certificate.  If
    #   the certificate is encrypted, then you will be prompted for a
    #   pass phrase.  Note that a kill -HUP will prompt again.  Keep
    #   in mind that if you have both an RSA and a DSA certificate you
    #   can configure both in parallel (to also allow the use of DSA
    #   ciphers, etc.)
    SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt
    
    #   Server Private Key:
    #   If the key is not combined with the certificate, use this
    #   directive to point at the key file.  Keep in mind that if
    #   you've both a RSA and a DSA private key you can configure
    #   both in parallel (to also allow the use of DSA ciphers, etc.)
    SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key
    
    #   Server Certificate Chain:
    #   Point SSLCertificateChainFile at a file containing the
    #   concatenation of PEM encoded CA certificates which form the
    #   certificate chain for the server certificate. Alternatively
    #   the referenced file can be the same as SSLCertificateFile
    #   when the CA certificates are directly appended to the server
    #   certificate for convinience.
    SSLCertificateChainFile /usr/local/apache2/conf/ssl.crt/CADENA_PATH.pem
    
  6. Reiniciar el Apache: service httpd restart
  7. Muchas gracias a Antoni Borràs por tomarse la molestia de crear esta guía

Internet Information Services

Si ha descargado sólo el certificado (x509) y lo salvó en formato PEM, para poder importarlo en IIS, deberá seguir los pasos que se detallan más adelante.

Microsoft IIS users can install the attached file by renaming it with a .crt 
extension. You then follow the IIS Import wizard to install the certificate.

Ahora deberá importar toda la cadena de certificación en el IIS.

Pasos para convertir el certificado de formato PEM a PKCS12

  1. Recepción del certificado firmado.
  2. Descarga de la cadena de certificación del proveedor de certificados.
  3. Exportación a formato pfx desde linux:
    #$> openssl  pkcs12 -export -certfile SCS_CAs.pem -in certificado.pem -inkey clave-privada.key -out archivo.pfx -keysig -keyex
        
  4. Este archivo se ha de llevar al servidor, se hace doble click en el archivo de formato pfx y se instala el certificado, unicamente nos pide la clave de importación pues la de encriptación de la clave privada fue quitada.
  5. La importación del certificado debe hacerse usando la consola de Windows (Microsoft Management Console):
    (mmc)> Certificados > Certificados Equipo local > Personal > Certificados> desplegar menu alterno > todas las tareas > importar  
        

El certificado es válido y la cadena PKI también, así como el CN, el nombre DNS y propósito.
Hay que tener en cuenta que si se mueve un certificado del repositorio en Windows la clave privada no le acompaña. Y por lo tanto, el tunel SSL no se levantará.

Tomcat

Como desde RedIRIS recomendamos generar las CSRs (y por tanto las claves privadas) mediante OpenSSL, esto complica la forma de importar un certificado y su clave privada en un KeyStore Java. Así que vamos a explicar detalladamente como generar un KeyStore con el certificado en cuestión, su clave privada y su cadena de certificación.

Debido a que la explicación hace uso de una caracteristica muy reciente de la herramiente keytool, necesitamos Java 6 para poder crear un KeyStore con el certificado.

Necesitamos los siguientes certificados y clave: Certificado RAIZ: AddTrust_External_CA_Root.pem Certificado intermedio 1: UTN_USERFirst_Hardware.pem Certificado intermedio 2: TERENA_SSL_CA.pem Certificado de servidor en cuestion: server.certificate.pem Clave privada del certificado de servidor: server.key.pem

  1. Generamos un PEM con el certificado del servidor y la cadena de certificación:
    cat server.certificate.pem intermediate.pem root.pem > server.certificateandchain.pem
    
  2. Generamos un PKCS12 con el certificado del servidor y la cadena de certificación completa, y su clave
    $> openssl pkcs12 -export -inkey server.key.pem -in server.certificateandchain.pem -out server.p12 -name aliaselegido
    Enter Export Password: palabradepaso
    Verifying - Enter Export Password: palabradepaso
    

    OpenSSL hace "echo off" por lo que al teclear palabra de paso no lo veréis.

  3. Creamos el keystore con el PKCS12 que acabamos de crear. Recordad usar el de Java 6
    $> keytool -importkeystore -deststorepass AAAAAA -destkeypass BBBBBB -destkeystore myKS.jks -srckeystore server.p12 -srcstoretype PKCS12 -srcstorepass palabradepaso -alias aliaselegido
    

    donde AAAAAA es la palabra de paso del keystore, BBBBBB es la palabra de paso de la clave que se va a añadir, myKS.jks es el keystore, palabradepaso es la palabra de paso del PKCS12 que hemos creado en el paso 2.

  4. Añadimos la CA Raíz
    $> keytool -importcert -alias rootCA -trustcacerts -file AddTrust_External_CA_Root.pem -keystore myKS.jks
    

    Escriba la contraseña del almacén de claves: AAAAAA
    El certificado ya existe en el almacén de claves de la CA del sistema, con el alias <keychainrootca-41>
    ¿desea agregarlo a su propio almacén de claves? [no]: si
    Se ha añadido el certificado al almacén de claves

  5. Añadimos la primera CA intermedia
    $> keytool -importcert -alias intermediate0 -trustcacerts  -keystore myKS.jks  -file UTN_USERFirst_Hardware.pem
    

    Escriba la contraseña del almacén de claves: AAAAAA
    Se ha añadido el certificado al almacén de claves

  6. Añadimos la segunda CA intermedia
    $> keytool -importcert -alias intermediate1 -trustcacerts  -keystore myKS.jks  -file TERENA_SSL_CA.pem
    

    Escriba la contraseña del almacén de claves: AAAAAA
    Se ha añadido el certificado al almacén de claves

Y ya tenemos un keystore con el certificado, la clave privada y la cadena de certificación completa para proporcionarselo al GatoTom (tomcat).

Radius

En construcción. A la espera de vuestras experiencias

FreeRADIUS

Puede ser necesario instalar junto con el certificado emitido para el servicio, la cadena de certificados que han firmado dicho certificado.

La configuración quedaría:

private_key_file = ${raddbdir}/certs/certificado.key
certificate_file = ${raddbdir}/certs/certificado.pem
CA_file = ${raddbdir}/certs/CApath.pem
Donde certificado.key es el fichero con la clave privada del certificado sin palabra de paso. certificado.pem es el certificado que se ha solicitado para el servicio. Y CApath.pem es la cadena con los certificados del proveedor.

Microsoft Radius

En construcción. A la espera de vuestras experiencias

Jabber

jabberd

En construcción. A la espera de vuestras experiencias

Correo

Postfix

En construcción. A la espera de vuestras experiencias

Dovecot

En construcción. A la espera de vuestras experiencias

LDAP

RedHat/CentOS/Fedora Directory Server

El SSL/TLS de Netscape que trae el RedHat/CentOS/Fedora Directory Server, también conocido como 389, requiere que las autoridades de certificación estén cargadas en la base de datos de certificados antes de poder usar certificados emitidos por ellas.

Los certificados de las autoridades se deben cargar de uno en uno, no se puede cargar toda la cadena de un golpe, porque solo coge el primero.

Hecho esto, se puede cargar y usar el certificado SCS de servidor.

Por Victoriano Giralt de la Universidad de Málaga

OpenLDAP

En construcción. A la espera de vuestras experiencias

VPM

Nortel SSL-VPN

Para un Alteon VPN 3050 con OS 6.0.3:

  1. Se deben crear varios certificados (comando /cfg/cert ), uno para cada 'entrada' de la cadena de certificación. Para ello se usa la clave PKCS7 y se selecciona una 'entrada' distinta cada vez.
  2. He añadido la clave privada al certificado emitido para el servidor (comando /cfg/cert #/key). En los otros, por motivos obvios, no se puede poner.
  3. Se configura el certificado emitido en el servidor sslvpn (comando /cfg/vpn #/server/ssl/cert)
  4. Se configura la cadena de certificados con el RESTO de entradas de la cadena de certificación (comando /cfg/vpn #/server/ssl/cachain)
Se aplican cambios y ... suerte !!

Por Marc Vives de la Universitat Pompeu Fabra.

Cisco ASA

Guía básica de generación e instalación de certificados para ASA 8.0

Por José Ramón García Valdés de la Universidad Miguel Hernández.

WLC

Instalar certificado para webauth del portal cautivo en controlador wifi Cisco WLC

Por Juan Antonio Llamas Mantecón de la Univesidad de Málaga.