Integración del complemento EJBCA con Hashicorp Vault

HashiCorp Vault es un producto popular para gestionar secretos. Al usar microservicios a gran escala, hay muchos servicios y secretos que gestionar. HashiCorp Vault incluye una Autoridad de Certificación (CA) integrada; sin embargo, usar esta CA independiente creará una PKI independiente, no conectada a la PKI corporativa. Una PKI independiente no suele ser deseable en las organizaciones, ya que no cumple con los requisitos regulatorios ni de seguridad. Para integrar Vault PKI en una PKI controlada y gestionada por la empresa, puede:

  • Conéctese a su propia CA emisora mediante un complemento de secretos de Vault.

  • Utilice las disposiciones de Vault para acceder a una CA externa en lugar de autofirmar su propio certificado de CA.

El complemento de secretos de Vault EJBCA es un reemplazo directo de la PKI integrada de Vault, que permite integrar Vault con la CA emisora. Este complemento permite usar Vault para emitir certificados, igual que con la CA integrada de Vault, pero la emisión se realiza desde EJBCA.

Otras opciones

También existe un complemento de secretos para Keyfactor Command, que se integra de forma nativa con EJBCA. Disponible para descargar en el GitHub de Keyfactor .

Seguridad

El complemento EJBCA Vault utiliza la API REST de EJBCA para comunicarse con EJBCA, lo que permite que la instancia de EJBCA sea accesible desde cualquier lugar mediante conexiones HTTPS. La API REST de EJBCA utiliza conexiones TLS con autenticación mutua (HTTPS/mTLS).

Para EJBCA, Vault actúa como una Autoridad de Registro (RA) de PKI y el control de acceso basado en roles de EJBCA permite controlar detalladamente las capacidades de Vault en la instancia de EJBCA. Vault no podrá emitir certificados de otras CA administradas que no estén permitidas en la instancia de EJBCA.

Requisitos de EJBCA

Para emitir certificados de EJBCA a través de Vault, EJBCA tiene los mismos requisitos que la emisión a través de cualquier RA.

  • Una CA en EJBCA que puede emitir el tipo de certificados deseado, utilizando el algoritmo deseado.

  • Un perfil de certificado , configurado para emitir el tipo de certificados deseado desde la CA.

  • Un perfil de entidad final , configurado para emitir certificados con los campos de asunto deseados de la CA, utilizando el perfil de certificado.

  • Un rol con reglas de acceso que describen lo que Vault puede emitir.

  • Un miembro del rol (para Vault) que pertenece al rol correspondiente.

  • Un certificado de cliente y una clave privada, utilizados para autenticar al miembro del rol a través de TLS autenticado mutuamente.

Características

El complemento EJBCA Vault es fácil de configurar y le permite:

  • Configurar múltiples instancias en Vault, para emitir diferentes tipos de certificados, es decir, de diferentes CA y perfiles.

  • Emitir certificados a partir de un CSR generado por el cliente.

  • Enumere los certificados emitidos y disponibles en Vault.

  • Revocar certificados, eliminándolos también de la lista de Bóveda.

Instalación y uso

A continuación se ofrecen comandos de ejemplo. Para obtener más información sobre la instalación y el uso del complemento EJBCA Vault, consulte el GitHub de Keyfactor, donde también puede descargarlo.

Comandos de ejemplo

Configuración de instancia

Comando de ejemplo para configurar una instancia del complemento en Vault:

vault write ejbca/config/TLSServer pem_bundle=@admin-bundle.pem url=https://ejbca.example.com:8443/ejbca/ejbca-rest-api/v1 cacerts=@admin-TLS-chain.pem caname=TLSAssuredCA certprofile=TLSServer eeprofile=InternalTLSServer

La operación de escritura anterior se conectará a EJBCA para una prueba de conexión y establecerá las propiedades de configuración para la emisión.

La operación de lectura mostrará las siguientes propiedades de configuración (tal como están escritas en JSON en Vault).

lectura de bóveda ejbca/config/TLSServer

Uso

Ejemplo de comando para emitir un certificado a través de Vault:

vault write ejbca/enrollCSR/TLSServer csr=@csr.pem username=user

Los certificados emitidos se almacenan en la ruta de emisión en Vault. La operación de lista devolverá los números de serie de todos los certificados en el motor de secretos para el perfil de CA específico.

lista de bóvedas ejbca/issued/TLSServer

Ejemplo de comando para revocar un certificado a través de Vault:

vault write ejbca/revokeCert/TLSServer serial=2F79E1875F2F6D276BB619EB5FE9B499D71F645E reason=AFFILIATION_CHANGED

Después de la revocación, el certificado se elimina del almacenamiento de Vault.

Para obtener más información y ejemplos de comandos detallados, consulte Keyfactor GitHub .