Interoperabilidad CMP

A continuación se describe la interoperabilidad de EJBCA con diversos clientes, dispositivos y bibliotecas. Para obtener información más general sobre el Protocolo de Gestión de Certificados (CMP) y su funcionamiento con EJBCA, consulte CMP .

Cmpclient de EJBCA

EMPRESA Esta es una característica de EJBCA Enterprise.

EJBCA Enterprise incluye un cliente de línea de comandos Java para CMP, que se utiliza para solicitar, renovar y revocar certificados.

Para crear y ejecutar el cliente cmpclient, utilice lo siguiente:

$ ant cmpclient
$ cd dist /cmpclient
$ java -jar cmpclient.jar
$ java -jar cmpclient.jar crmf --help
$ java -jar cmpclient.jar p10cr --help

Un ejemplo de flujo de trabajo cuando tiene un alias de CMP en modo RA (raalias), utilizando autenticación basada en contraseña de RA, y otro alias de CMP (clientupdate) en modo cliente que permite actualizaciones mediante autenticación de certificado.

/cmpProxy/raalias $ java -jar cmpclient.jar crmf --dn .168.122.230:8080 "CN=tomas" //192 --url http: --authparam password --reqnewkeyspec RSA2048
$ openssl pkcs12 - export -inkey dest /tomas-key .pem - in dest /tomas .pem -certfile ManagementCA.cacert.pem -name tomas -out dest /tomas .p12
$ java -jar cmpclient.jar update --dn .168.122.230:8080 "CN=tomas" --url http: //192 /cmpProxy/clientupdate --keystore dest /tomas .p12 --keystorepwd foo123 --extraCertsFriendlyName tomas --includepopo --reqnewkeyspec RSA2048
$ openssl x509 - in dest /tomas .pem -text
/cmpProxy/raalias $ java -jar cmpclient.jar revoke --issuer .168.122.230:8080 "CN=ManagementCA,O=EJBCA Sample,C=SE" --serno 17b9a7b8ce44b3fa //192 --serno 17b9a7b8ce44b3fa --url http: --authparam password

También se puede realizar un flujo de trabajo similar con el comando p10cr, que envía un cuerpo de solicitud P10CR para la creación del certificado. El siguiente ejemplo utiliza un alias CMP en modo RA (cmpalias) con autenticación por contraseña y un alias CMP en modo cliente (cmpupdate) con EndEntityCertificate habilitado en el módulo de autenticación.

# Using a CSR created with OpenSSL.
$ openssl req -newkey rsa:2048 -keyout your-key.key -out your-request.csr
$ java -jar cmpclient.jar p10cr --dn "CN=yourCN" --csr "your-request.csr" --url http: //localhost :8080 /ejbca/publicweb/cmp/cmpalias --authparam password
# Or without CSR, where a signature algorithm is required to be added to the command.
$ java -jar cmpclient.jar p10cr --dn "CN=yourCN" --sigalgorithm "SHA256WithRSA" --url http: //localhost :8080 /ejbca/publicweb/cmp/cmpalias --authparam password
# Using update command and previously acquired certificate for authentication.
# (End Entity status must be changed from Generated to New, Failed or In Process before this step.)
$ openssl pkcs12 - export -inkey dest /yourCN-key .pem - in dest /yourCN .pem -certfile ManagementCA.cacert.pem -name yourCN -out dest /yourCN .p12
$ java -jar cmpclient.jar update --dn "CN=yourCN" --url http: //localhost :8080 /ejbca/publicweb/cmp/cmpupdate --keystore dest /yourCN .p12 --keystorepwd foo123 --extraCertsFriendlyName yourCN --includepopo --reqnewkeyspec RSA2048
# Revoking the certificate
$ openssl x509 - in dest /yourCN .pem -text
$ java -jar cmpclient.jar revoke --issuer "CN=ManagementCA,O=EJBCA Sample,C=SE" --serno 17b9a7b8ce44b3fa --url http: //localhost :8080 /ejbca/publicweb/cmp/cmpalias --authparam password

Puede usar una URL https con cmpclient, pero es posible que deba proporcionar un almacén de confianza a Java para que el cliente verifique el certificado del servidor. El almacén de confianza contiene el certificado de la CA raíz de la cadena de certificados del servidor.

java -Djavax.net.ssl.trustStore=truststore.jks -jar cmpclient.jar crmf --dn "CN=tomas" --url https: //ejbca.example.com:8442/ejbca/publicweb/cmp/cmpra --authparam password --reqnewkeyspec RSA2048

AET BlueX

CMP se ha probado con BlueX de AET Europe . Desde la perspectiva de EJBCA, BlueX funciona como una RA con las mismas opciones de configuración que jCert.

Aventra

CMP se ha probado con el sistema de gestión de tarjetas Aventra . Misma configuración que la anterior.

Castillo hinchable

CMP se ha probado con las clases CMP de BouncyCastle , disponibles en BC 1.46 o posterior. Tanto el modo cliente como el modo RA deberían funcionar. Para ejemplos de implementación de mensajes de cliente con BouncyCastle, consulte la Guía de Operaciones de CMP .

CMP para OpenSSL

OpenSSL incluye CMP desde la versión 3.0, es decir, cmpforopenssl a continuación se fusiona con la versión principal de OpenSSL y está disponible en OpenSSL Git (o en una versión cuando esté disponible en su plataforma).

CMP se ha probado con cmpforopenssl. cmpforopenssl se ha enviado para su inclusión en OpenSSL y el código está disponible en GitHub en https://github.com/mpeylo/cmpossl . Para consultar la documentación del comando, consulte https://github.com/mpeylo/cmpossl/blob/cmp/doc/man1/cmp.pod . Para consultar una guía de inicio rápido, probada con EJBCA, consulte https://github.com/mpeylo/cmpossl/wiki/Quick-Start .

La antigua herramienta cliente de cmpforopenssl se llamaba cmpclient, mientras que la nueva se encuentra en el propio comando openssl . Aquí solo se documenta la nueva. Funciona con EJBCA CMP tanto en modo RA como en modo cliente.

Consulte la Guía de operaciones de CMP para obtener más información sobre los comandos para cmpforopenssl.

Criptografía

CMP ha sido probado con CryptLib .

Huawei Pico 3GPP

Se confirma que la celda Huawei Pico recibe exitosamente certificados de operador usando CMPv2.

Para autenticar la celda Pico durante el registro inicial, se debe importar la CA del proveedor de Huawei en EJBCA. Vaya a "Autoridades de certificación" en la interfaz gráfica de usuario del administrador e importe la CA raíz del equipo de Huawei como autoridad de certificación externa haciendo clic en "Importar certificado de CA" .

Configuración de alias de CMP

  • Modo operativo CMP - Cliente

  • Módulo de autenticación CMP: solo EndEntityCertificate

  • Extraer componente de nombre de usuario - CN

  • Modo de certificado de proveedor: uso

  • Lista de CA de proveedores - CA raíz de equipos Huawei

  • Protección de respuesta de CMP - Firma

  • Certificados de CA adicionales de respuesta de CMP: dejar en blanco

  • Respuesta de mensaje PKI Certificados de CA adicionales: dejar en blanco

  • Confirmación de certificado CA predeterminada: utilice cualquier CA configurada en la entidad final

  • Actualización automática de claves - Marcado

  • Renovación de certificado con las mismas claves - Marcado

  • Permitir claves generadas por el servidor - Sin marcar

  • Ruta de certificados de confianza de mensajes anidados: dejar en blanco

Configuración del perfil de entidad final

  • Generación por lotes - Uso

  • Atributos DN del sujeto, CN - Obligatorio

  • Perfiles de certificado predeterminados y disponibles: configúrelos según su perfil de certificado CMP

  • CA predeterminadas y disponibles: configúrelas como la CA emisora que haya configurado en la CA predeterminada de confirmación de certificado CMP

  • Token predeterminado - Generado por el usuario

Configuración del perfil del certificado

  • CA disponibles: establezca la CA emisora que haya establecido en la CA predeterminada de confirmación de certificado CMP

Configuración de Apache

Algunos dispositivos Pico no permiten una URL a un host CMP. En este caso, recomendamos ejecutar Apache delante del servidor de aplicaciones EJBCA JBoss/WildFly. Puede añadir esta configuración a Apache para que redirija a la URL EJBCA CMP.

Listen 8080
<VirtualHost *: 8080 >
DocumentRoot /var/www/html/
# Disallow any HTTP method that is not HEAD, GET or POST
RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^(HEAD|GET|POST)$ [NC]
RewriteRule .* - [F,L]
#Since we are adding an additional port we can redirect all traffic to the CMP alias
ProxyPass "/" "ajp://localhost/ejbca/publicweb/cmp/3gpp" keepalive=On ping=500ms retry= 1 timeout= 300
ProxyPassReverse "/" "ajp://localhost/ejbca/publicweb/cmp/3gpp"
</VirtualHost>

Certificado RSA jCert

CMP se ha probado con el kit de herramientas RSA jCert para solicitudes de inicialización. Para ejecutarlo como una RA, configure CMP como se indica a continuación:

  • Modo operativo CMP: Modo RA

  • Permitir que RA verifique la prueba de posesión: habilitado

  • Protección de respuesta de CMP: pbe

  • Módulo de autenticación CMP: HMAC

  • Parámetros de autenticación de CMP: su contraseña compartida

  • y otras configuraciones que desees para tu RA.

Contenido relacionado