Autoridad de certificación (CA)

Zentyal integra OpenSSL [4] para la gestión de la Autoridad de Certificación y del ciclo de vida de los certificados expedidos por esta.

[4]http://www.openssl.org/

Configuración de una Autoridad de Certificación con Zentyal

En Zentyal, el módulo Autoridad de Certificación es autogestionado, lo que quiere decir que no necesita ser habilitado en Estado del Módulo como el resto sino que para comenzar a utilizar este servicio hay que inicializar la CA. Las funcionalidades del módulo no estarán disponibles hasta que no hayamos efectuado esta acción.

Accederemos a Autoridad de Certificación ‣ General y nos encontraremos con el formulario para inicializar la CA. Se requerirá el Nombre de Organización y el número de Días para expirar. Además, también es posible especificar opcionalmente Código del País (acrónimo de dos letras que sigue el estándar ISO-3166-1 [5]), Ciudad y Estado.

_images/create_ca.png

Crear Certificado de la Autoridad de Certificación

A la hora de establecer la fecha de expiración hay que tener en cuenta que en ese momento se revocarán todos los certificados expedidos por esta CA, provocando la parada de los servicios que dependan de estos certificados.

Una vez que la CA ha sido inicializada, ya podremos expedir certificados. Los datos necesarios son el Nombre Común del certificado y los Días para Expirar. Este último dato está limitado por el hecho de que ningún certificado puede ser válido durante más tiempo que la CA. En el caso de que estemos usando estos certificados para un servicio como podría ser un servidor web o un servidor de correo, el Nombre Común deberá coincidir con el nombre de dominio del servidor. Por ejemplo, si utilizamos el nombre de dominio zentyal.home.lan para acceder al interfaz de administración web de Zentyal, será necesario un certificado con ese Nombre Común. En el caso de que el certificado sea un certificado de usuario, usaremos normalmente su dirección de correo como Nombre Común.

Opcionalmente se pueden definir Subject Alternative Names [6] para el certificado. Estos sirven para establecer nombres comunes a un certificado: un nombre de dominio o dirección IP para dominio virtual HTTP o una dirección de correo para firmar los mensajes de correo electrónico.

Una vez el certificado haya sido creado, aparecerá en la lista de certificados, estando disponible para el administrador y el resto de módulos. A través de la lista de certificados podemos realizar distintas acciones con ellos:

  • Descargar las claves pública, privada y el certificado.
  • Renovar un certificado.
  • Revocar un certificado.
  • Reexpedir un certificado previamente revocado o caducado.
_images/issue.png

Listado de certificados

El paquete con las claves descargadas contiene también un archivo PKCS12 que incluye la clave privada y el certificado y que puede instalarse directamente en otros programas como navegadores web, clientes de correo, etc.

Si renovamos un certificado, el actual será revocado y uno nuevo con la nueva fecha de expiración será expedido. Y si se renueva la CA, todos los certificados se renovarán con la nueva CA tratando de mantener la antigua fecha de expiración. Si esto no es posible debido a que es posterior a la fecha de expiración de la CA, entonces se establecerá la fecha de expiración de la CA.

_images/renew.png

Renovar un certificado

Si revocamos un certificado no podremos utilizarlo más, ya que esta acción es permanente y no se puede deshacer. Opcionalmente podemos seleccionar la razón para revocarlo:

  • unspecified: motivo no especificado,
  • keyCompromise: la clave privada ha sido comprometida,
  • CACompromise: la clave privada de la autoridad de certificación ha sido comprometida,
  • affilliationChanged: se ha producido un cambio en la afiliación de la clave pública firmada hacia otra organización,
  • superseded: el certificado ha sido renovado y por tanto reemplaza al emitido,
  • cessationOfOperation: cese de operaciones de la entidad certificada,
  • certificateHold: certificado suspendido,
  • removeFromCRL: actualmente sin implementar, da soporte a los CRL diferenciales, es decir, listas de certificados cuyo estado de revocación ha cambiado.
_images/revocar.png

Revocar un certificado

Cuando un certificado expire, el resto de módulos serán notificados. La fecha de expiración de cada certificado se comprueba una vez al día y cada vez que se accede al listado de certificados.

[5]http://es.wikipedia.org/wiki/ISO_3166-1
[6]Para más información sobre los Subject Alternative Names véase http://www.openssl.org/docs/apps/x509v3_config.html#Subject_Alternative_Name

Certificados de Servicios

En Autoridad de Certificación ‣ Certificados de Servicios podemos encontrar la lista de módulos de Zentyal que usan certificados para su funcionamiento. Cada módulo genera sus certificados autofirmados, pero podemos remplazar estos certificados por otros emitidos por nuestra CA.

Para cada servicio se puede generar un certificado especificando su Nombre Común. Si no existe un certificado con el nombre especificado, la Autoridad de Certificación lo creará automáticamente.

_images/servicios1.png

Certificados de Servicios

Una vez activado, tendremos que reiniciar el módulo sobre el que hemos activado el certificado para que lo comience a utilizar, al igual que si renovamos el certificado asociado.

Como hemos comentado anteriormente, para la versión segura de varios protocolos (web, mail, etc.) es importante que el nombre que aparece en el Nombre común del certificado coincida con el nombre que ha solicitado el cliente. Por ejemplo, si nuestro certificado web tiene como Nombre común host1.ejemplo.com y el cliente teclea https://www.ejemplo.com, su navegador le mostrará una alerta de seguridad y considerará que el certificado no es válido.