Esta sección contiene instrucciones sobre cómo configurar la CA de OpenXPKI versión 2.5.x mediante el protocolo SCEP (Protocolo de inscripción de certificados simple).
Notas:
Conecte el equipo utilizando PuTTY u otro cliente.
En el cliente, ejecute el comando
para ir al usuario raíz.Introduzca la contraseña raíz.
En nano /etc/apt/sources.list , cambie el origen para la instalación de las actualizaciones.
Actualice el archivo. Por ejemplo:
# # deb cdrom:[Debian GNU/Linux 8.11.1 _Jessie_ - Official amd64 CD Binary-1 20190211-02:10]/ jessie local main # deb cdrom:[Debian GNU/Linux 8.11.1 _Jessie_ - Official amd64 CD Binary-1 20190211-02:10]/ jessie local main deb http://security.debian.org/ jessie/updates main deb-src http://security.debian.org/ jessie/updates main # jessie-updates, previously known as 'volatile' # A network mirror was not selected during install. The following entries # are provided as examples, but you should amend them as appropriate # for your mirror of choice. # deb http://ftp.debian.org/debian/jessie-updates main deb-src http://ftp.debian.org/debian/jessie-updates main deb http://ftp.us.debian.org/debian/jessie main
Guarde el archivo.
Ejecute los siguientes comandos:
Actualice las listas de certificados de CA en el servidor mediante
.Instale en_US.utf8 locale mediante
.Seleccione la configuración regional en_US.UTF-8 UTF-8 y, a continuación, haga que sea la configuración regional predeterminada del sistema.
Compruebe las configuraciones regionales que ha generado mediante
.C C.UTF-8 en_IN en_IN.utf8 en_US.utf8 POSIX
Copie la huella del paquete de OpenXPKI mediante
. En este caso, copie la clave en /home .Escriba
como valor.Ejecute el siguiente comando:
Agregue el paquete utilizando el comando
.Agregue el repositorio a la lista de orígenes (jessie) mediante
y, a continuación, .Instale el enlace MySQL y Perl MySQL mediante
.Instale apache2.2-common mediante
.En nano /etc/apt/sources.list , instale el módulo fastcgi para acelerar la interfaz de usuario.
Agregue la línea
en el archivo y, a continuación, guárdelo.Ejecute los siguientes comandos:
Active el módulo fastcgi mediante
.Instale el paquete principal de OpenXPKI mediante
.Reinicie el Apache Servidor mediante
.Compruebe si la instalación se ha realizado correctamente mediante
.Cree la base de datos vacía y, a continuación, asigne el usuario de la base de datos mediante
.Notas:
CREATE DATABASE openxpki CHARSET utf8; CREATE USER 'openxpki'@'localhost' IDENTIFIED BY 'openxpki'; GRANT ALL ON openxpki.* TO 'openxpki'@'localhost'; flush privileges;
Si el servicio MySQL no se está ejecutando, ejecute
para iniciar el servicio.Escriba
para salir de MySQL.Almacene las credenciales utilizadas en /etc/openxpki/config.d/system/database.yaml .
debug: 0 type: MySQL name: openxpki host: localhost port: 3306 user: openxpki passwd: openxpki
Guarde el archivo.
Para un esquema de base de datos vacío, ejecute
desde el archivo de esquema proporcionado.Introduzca la contraseña de la base de datos.
Descomprima el script de ejemplo para instalar el certificado mediante
.Ejecute el script mediante
.Confirme la configuración mediante
.=== functional token === scep (scep): Alias : scep-1 Identifier: YsBNZ7JYTbx89F_-Z4jn_RPFFWo NotBefore : 2015-01-30 20:44:40 NotAfter : 2016-01-30 20:44:40 vault (datasafe): Alias : vault-1 Identifier: lZILS1l6Km5aIGS6pA7P7azAJic NotBefore : 2015-01-30 20:44:40 NotAfter : 2016-01-30 20:44:40 ca-signer (certsign): Alias : ca-signer-1 Identifier: Sw_IY7AdoGUp28F_cFEdhbtI9pE NotBefore : 2015-01-30 20:44:40 NotAfter : 2018-01-29 20:44:40 === root ca === current root ca: Alias : root-1 Identifier: fVrqJAlpotPaisOAsnxa9cglXCc NotBefore : 2015-01-30 20:44:39 NotAfter : 2020-01-30 20:44:39 upcoming root ca: not set
Compruebe si la instalación se realiza correctamente mediante
.Starting OpenXPKI... OpenXPKI Server is running and accepting requests. DONE.
Realice lo siguiente para acceder al servidor OpenXPKI:
En un navegador web, escriba
.Inicie sesión como Operador . La contraseña predeterminada es
.Cree una solicitud de certificado y, a continuación, pruébela.
Para configurar la CA OpenXPKI de forma manual, debe crear lo siguiente:
Certificado de la CA raíz. Para obtener más información, consulte Creación de un certificado de la CA raíz .
Certificado del firmante de la CA, firmado por la CA raíz. Para obtener más información, consulte Creación de un certificado de firmante .
Certificado de almacén de datos, autofirmado. Para obtener más información, consulte Creación de un certificado de almacén .
Certificado SCEP, firmado por el certificado del firmante.
Notas:
En este caso, vamos a utilizar el directorio /etc/certs/openxpki_ca-one/ para la generación de certificados. Sin embargo, puede utilizar cualquier directorio.
Ejecute el siguiente comando:
# x509_extensions = v3_ca_extensions # x509_extensions = v3_issuing_extensions # x509_extensions = v3_datavault_extensions # x509_extensions = v3_scep_extensions # x509_extensions = v3_web_extensions # x509_extensions = v3_ca_reqexts # not for root self-signed, only for issuing ## x509_extensions = v3_datavault_reqexts # not required self-signed # x509_extensions = v3_scep_reqexts # x509_extensions = v3_web_reqexts [ req ] default_bits = 4096 distinguished_name = req_distinguished_name [ req_distinguished_name ] domainComponent = Domain Component commonName = Common Name [ v3_ca_reqexts ] subjectKeyIdentifier = hash keyUsage = digitalSignature, keyCertSign, cRLSign [ v3_datavault_reqexts ] subjectKeyIdentifier = hash keyUsage = keyEncipherment extendedKeyUsage = emailProtection [ v3_scep_reqexts ] subjectKeyIdentifier = hash [ v3_web_reqexts ] subjectKeyIdentifier = hash keyUsage = critical, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth, clientAuth [ v3_ca_extensions ] subjectKeyIdentifier = hash keyUsage = digitalSignature, keyCertSign, cRLSign basicConstraints = critical,CA:TRUE authorityKeyIdentifier = keyid:always,issuer [ v3_issuing_extensions ] subjectKeyIdentifier = hash keyUsage = digitalSignature, keyCertSign, cRLSign basicConstraints = critical,CA:TRUE authorityKeyIdentifier = keyid:always,issuer:always crlDistributionPoints = URI:http://FQDN of the server/CertEnroll/MYOPENXPKI.crl authorityInfoAccess = caIssuers;URI:http://FQDN of the server/CertEnroll/MYOPENXPKI.crt [ v3_datavault_extensions ] subjectKeyIdentifier = hash keyUsage = keyEncipherment extendedKeyUsage = emailProtection basicConstraints = CA:FALSE authorityKeyIdentifier = keyid:always,issuer [ v3_scep_extensions ] subjectKeyIdentifier = hash basicConstraints = CA:FALSE authorityKeyIdentifier = keyid,issuer [ v3_web_extensions ] subjectKeyIdentifier = hash keyUsage = critical, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth, clientAuth basicConstraints = critical,CA:FALSE subjectAltName = DNS:stlopenxpki.lexmark.com crlDistributionPoints = URI:http://FQDN of the server/CertEnroll/MYOPENXPKI_ISSUINGCA.crl authorityInfoAccess = caIssuers;URI:http://FQDN of the server/CertEnroll/MYOPENXPKI_ISSUINGCA.crt
Cambie la dirección IP y el nombre del certificado de la CA con la información de configuración.
Guarde el archivo.
Ejecute el siguiente comando:
Escriba su contraseña.
Guarde el archivo.
Ejecute los siguientes comandos:
Ejecute el siguiente comando:
Cambie el asunto de la solicitud con la información de la CA mediante
.Obtenga el certificado firmado por la CA raíz mediante
.Notas:
Ejecute el siguiente comando:
Cambie el asunto de la solicitud con la información de la CA mediante
.Ejecute el siguiente comando:
Ejecute los siguientes comandos:
Copie los archivos de clave en /etc/openxpki/ca/ca-one/ .
cp /etc/certs/openxpki_ca-one/ca-signer-1.key /etc/openxpki/ca/ca-one/ cp /etc/certs/openxpki_ca-one/vault-1.key /etc/openxpki/ca/ca-one/ cp /etc/certs/openxpki_ca-one/scep-1.key /etc/openxpki/ca/ca-one/
Cree el enlace simbólico.
ln -s /etc/openxpki/ca/ca-one/ca-signer-1.key /etc/openxpki/ca/ca-one/ca-signer-1.pem ln -s /etc/openxpki/ca/ca-one/scep-1.key /etc/openxpki/ca/ca-one/scep-1.pem ln -s /etc/openxpki/ca/ca-one/vault-1.key /etc/openxpki/ca/ca-one/vault-1.pem
Importe el certificado raíz, el certificado del firmante, el certificado de almacén y el certificado SCEP a la base de datos con los tokens adecuados.
Ejecute los siguientes comandos:
Compruebe que la importación se realiza correctamente mediante
..=== functional token === scep (scep): Alias : scep-1 Identifier: YsBNZ7JYTbx89F_-Z4jn_RPFFWo NotBefore : 2015-01-30 20:44:40 NotAfter : 2016-01-30 20:44:40 vault (datasafe): Alias : vault-1 Identifier: lZILS1l6Km5aIGS6pA7P7azAJic NotBefore : 2015-01-30 20:44:40 NotAfter : 2016-01-30 20:44:40 ca-signer (certsign): Alias : ca-signer-1 Identifier: Sw_IY7AdoGUp28F_cFEdhbtI9pE NotBefore : 2015-01-30 20:44:40 NotAfter : 2018-01-29 20:44:40 === root ca === current root ca: Alias : root-1 Identifier: fVrqJAlpotPaisOAsnxa9cglXCc NotBefore : 2015-01-30 20:44:39 NotAfter : 2020-01-30 20:44:39 upcoming root ca: not set
Ejecute el comando
Starting OpenXPKI... OpenXPKI Server is running and accepting requests. DONE.
Realice lo siguiente para acceder al servidor OpenXPKI:
En un navegador web, escriba
.Inicie sesión como Operador . La contraseña predeterminada es
.Cree una solicitud de certificado y, a continuación, pruébela.
Detenga el servicio OpenXPKI mediante
.En nano /etc/openxpki/config.d/realm/ca-one/publishing.yaml , actualice la sección
para que muestre lo siguiente:class: Connector::Builtin::File::Path LOCATION: /var/www/openxpki/CertEnroll/ file: "[% ARGS.0 %].crl" content: "[% pem %]"
En nano /etc/openxpki/config.d/realm/ca-one/profile/default.yaml , actualice lo siguiente:
sección
critical: 0 uri: - http://FQDN of the server/CertEnroll/[% ISSUER.CN.0 %].crl - ldap://localhost/[% ISSUER.DN %]
sección
critical: 0 ca_issuers: http://FQDN of the server/CertEnroll/MYOPENXPKI.crt ocsp: http://ocsp.openxpki.org/
Cambie la dirección IP y el nombre del certificado de la CA de acuerdo con el servidor de la CA.
En nano /etc/openxpki/config.d/realm/ca-one/crl/default.yaml , realice lo siguiente:
Si es necesario, actualice
y .Agregue
a la siguiente sección:extensions: authority_info_access: critical: 0 # ca_issuers and ocsp can be scalar or list ca_issuers: http://FQDN of the server/CertEnroll/MYOPENXPKI.crt #ocsp: http://ocsp.openxpki.org/
Cambie la dirección IP y el nombre del certificado de la CA de acuerdo con el servidor de la CA.
Inicie el servicio OpenXPKI mediante
.Detenga el servicio Apache mediante
.Cree un directorio CertEnroll para crl en el directorio /var/www/openxpki/ .
Defina openxpki como propietario de este directorio y, a continuación, configure los permisos para permitir a Apache leer y ejecutar, y a otros servicios solo leer.
chown openxpki /var/www/openxpki/CertEnroll
chmod 755 /var/www/openxpki/CertEnroll
Agregue una referencia al archivo alias.conf de Apache mediante
.Después de la sección
, agregue lo siguiente:Alias /CertEnroll/ "/var/www/openxpki/CertEnroll/" <Directory "/var/www/openxpki/CertEnroll"> Options FollowSymlinks AllowOverride None Require all granted </Directory>
Agregue una referencia en el archivo apache2.conf utilizando nano /etc/apache2/apache2.conf .
Agregue lo siguiente en la sección
:<Directory /var/www/openxpki/CertEnroll> Options FollowSymlinks AllowOverride None Allow from all </Directory>
Inicie el servicio Apache mediante
.Detenga el servicio OpenXPKI mediante
.Instale el paquete openca-tools usando
.Inicie el servicio OpenXPKI mediante
.Pruebe el servicio con cualquier cliente; por ejemplo, certnanny con SSCEP.
Para las solicitudes automáticas de certificados, se utilizará la función de certificado Firmante en nombre de un tercero de OpenXPKI.
Detenga el servicio OpenXPKI mediante
.En nano /etc/openxpki/config.d/realm/ca-one/scep/generic.yaml , desde la sección
, agregue una regla para el nombre del sujeto del certificado de firmante.rule1: # Full DN subject: CN=Markvision_.*
Notas:
Guarde el archivo.
Inicie el servicio OpenXPKI mediante
.Detenga el servicio OpenXPKI mediante
.En nano /etc/openxpki/config.d/realm/ca-one/scep/generic.yaml , actualice la sección
:eligible: initial: value@: connector:scep.generic.connector.initial args: '[% context.cert_subject_parts.CN.0 %]' expect: - Build - New
eligible: initial: value: 1 # value@: connector:scep.generic.connector.initial # args: '[% context.cert_subject_parts.CN.0 %]' # expect: # - Build # - New
Notas:
Guarde el archivo.
Inicie el servicio OpenXPKI mediante
.En OpenXPKI, puede configurar varias estructuras PKI en el mismo sistema. En los temas siguientes se muestra cómo crear otro dominio para MVE con el nombre ca-two .
Copie el árbol de directorios de ejemplo /etc/openxpki/config.d/realm/ca-one en un nuevo directorio ( cp -avr /etc/openxpki/config.d/realm/ca-one /etc/openxpki/config.d/realm/ca-two ) dentro del directorio del dominio.
En /etc/openxpki/config.d/system/reinos.yaml , actualice la siguiente sección:
# This is the list of realms in this PKI # You only need to enable the realms which are visible on the server ca-one: label: Verbose name of this realm baseurl: https://pki.example.com/openxpki/ #ca-two: # label: Verbose name of this realm # baseurl: https://pki.acme.org/openxpki/
# This is the list of realms in this PKI # You only need to enable the realms which are visible on the server ca-one: label: CA-ONE baseurl: https://pki.example.com/openxpki/ ca-two: label: CA-TWO baseurl: https://pki.example.com/openxpki/
Guarde el archivo.
En las siguientes instrucciones se muestra cómo generar el certificado de firmante, el certificado de almacén y el certificado SCEP. La CA raíz firma el certificado de firmante y, a continuación, el certificado de firmante firma el certificado SCEP. El certificado de almacén se firma automáticamente.
Genere los certificados y, a continuación, fírmelos. Para obtener más información, consulte Configuración de la CA de OpenXPKI de forma manual .
Copie los archivos de clave en /etc/openxpki/ca/ca-two/ .
cp /etc/certs/openxpki_ca-two/ca-signer-1.key /etc/openxpki/ca/ca-two/ cp /etc/certs/openxpki_ca-two/vault-1.key /etc/openxpki/ca/ca-two/ cp /etc/certs/openxpki_ca-two/scep-1.key /etc/openxpki/ca/ca-two/
Cree el enlace simbólico. Además, cree un enlace simbólico para el certificado de la CA raíz.
ln -s /etc/openxpki/ca/ca-one/ca-root-1.crt /etc/openxpki/ca/ca-two/ca-root-1.crt ln -s /etc/openxpki/ca/ca-two/ca-signer-1.key /etc/openxpki/ca/ca-two/ca-signer-1.pem ln -s /etc/openxpki/ca/ca-two/scep-1.key /etc/openxpki/ca/ca-two/scep-1.pem ln -s /etc/openxpki/ca/ca-two/vault-1.key /etc/openxpki/ca/ca-two/vault-1.pem
Importe el certificado de firmante, el certificado de almacén y el certificado SCEP a la base de datos con los tokens adecuados para
.openxpkiadm certificate import --file /etc/certs/openxpki_ca-two/ca-signer-1.crt --realm ca-two –issuer /etc/openxpki/ca/ca-two/ca-one-1.crt --token certsign openxpkiadm certificate import --file /etc/certs/openxpki_ca-two/scep-1.crt --realm ca-two --token scep openxpkiadm certificate import --file /etc/certs/openxpki_ca-two/vault-1.crt --realm ca-two --token datasafe
Compruebe si la importación se realiza correctamente utilizando
.=== functional token === scep (scep): Alias : scep-1 Identifier: YsBNZ7JYTbx89F_-Z4jn_RPFFWo NotBefore : 2015-01-30 20:44:40 NotAfter : 2016-01-30 20:44:40 vault (datasafe): Alias : vault-1 Identifier: lZILS1l6Km5aIGS6pA7P7azAJic NotBefore : 2015-01-30 20:44:40 NotAfter : 2016-01-30 20:44:40 ca-signer (certsign): Alias : ca-signer-1 Identifier: Sw_IY7AdoGUp28F_cFEdhbtI9pE NotBefore : 2015-01-30 20:44:40 NotAfter : 2018-01-29 20:44:40 === root ca === current root ca: Alias : root-1 Identifier: fVrqJAlpotPaisOAsnxa9cglXCc NotBefore : 2015-01-30 20:44:39 NotAfter : 2020-01-30 20:44:39 upcoming root ca: not set
En este caso, la información de la CA raíz es la misma para
y .Si ha cambiado la contraseña de la clave de certificado durante la creación del certificado, actualice nano /etc/openxpki/config.d/realm/ca-two/crypto.yaml .
Genere las CRL para este dominio. Para obtener más información, consulte Generación de información de la CRL .
Publique las CRL para este dominio. Para obtener más información, consulte Configuración de la accesibilidad de la CRL .
Reinicie el servicio OpenXPKI mediante
.Stopping OpenXPKI Stopping gracefully, 3 (sub)processes remaining... DONE. Starting OpenXPKI... OpenXPKI Server is running and accepting requests. DONE.
Realice lo siguiente para acceder al servidor OpenXPKI:
En un navegador web, escriba
.Inicie sesión como Operador . La contraseña predeterminada es
.El punto final SCEP del dominio predeterminado es http://<ipaddress>/scep/scep . Si tiene varios dominios, configure un punto final SCEP único (archivo de configuración diferente) para cada dominio. En las siguientes instrucciones, utilizamos dos dominios PKI,
y .Copie el archivo de configuración predeterminado en cp /etc/openxpki/scep/default.conf /etc/openxpki/scep/ca-one.conf .
En nano /etc/openxpki/scep/ca-one.conf , cambie el valor de dominio a
.Cree otro archivo de configuración en cp /etc/openxpki/scep/default.conf /etc/openxpki/scep/ca-two.conf .
En nano /etc/openxpki/scep/ca-two.conf , cambie el valor de dominio a
.Reinicie el servicio OpenXPKI mediante
.Los puntos finales SCEP son los siguientes:
— http://ipaddress/scep/ca-one
— http://ipaddress/scep/ca-two
Si desea diferenciar entre credenciales de inicio de sesión y plantillas de certificado predeterminadas para diferentes dominios PKI, puede que necesite una configuración avanzada.
De forma predeterminada, en OpenXPKI sólo puede estar activo un certificado con el mismo nombre de asunto a la vez. Sin embargo, cuando se aplican varios certificados con nombre, deben estar presentes varios certificados activos con el mismo nombre de asunto a la vez.
En /etc/openxpki/config.d/realm/REALM NAME/scep/generic.yaml , en la sección
, cambie el valor de de a .Notas:
Reinicie el servicio OpenXPKI mediante
.De forma predeterminada, Apache escucha en el número de puerto 80. Defina el número de puerto predeterminado para la CA OpenXPKI para evitar conflictos.
En /etc/apache2/ports.conf , agregue o modifique un puerto. Por ejemplo,
.En /etc/apache2/sites-enabled/000-default.conf , agregue o modifique la sección
para asignar un nuevo puerto. Por ejemplo, .Reinicie el servidor Apache con
.Para comprobar el estado, ejecute
. La URL SCEP de OpenXPKI es ahora http://ipaddress:8080/Scep/ca-one y la URL web es http://dirección IP:8080/Openxpki. .De forma predeterminada, OpenXPKI acepta solicitudes sin comprobar la contraseña de comprobación. La solicitud de certificado no se rechaza y la CA y el administrador de la CA determinan si se debe aprobar o rechazar la solicitud. Para evitar posibles problemas de seguridad, desactive esta función de modo que se rechacen inmediatamente todas las solicitudes de certificado que contengan contraseñas no válidas. En MVE, la Contraseña de comprobación solo es necesaria cuando se genera el certificado del agente de inscripción.
En etc/openxpki/config.d/realm/REALM NAME/scep/generic.yaml , en la sección
, cambie el valor de de a .Notas:
Reinicie el servicio OpenXPKI mediante
.En /etc/openxpki/config.d/realm/REALM NAME/profile/I18N_OPENXPKI_PROFILE_TLS_SERVER.yaml , en la sección
cambie el valor de a .Notas:
Reinicie el servicio OpenXPKI mediante
.De forma predeterminada, OpenXPKI solo lee el CN del asunto del certificado que se solicita. El resto de la información, como el país, la localidad y el DC, están codificados. Por ejemplo, si un asunto de certificado es
, , , , , , después de firmar el certificado a través de SCEP, el asunto se cambia a ,En /etc/openxpki/config.d/realm/REALM NAME/profile/I18N_OPENXPKI_PROFILE_TLS_SERVER.yaml , en la sección
, cambie el valor de a lo siguiente:CN=[% CN.0 %][% IF OU %][% FOREACH entry = OU %],OU=[% entry %][% END %][% END %][% IF O %][% FOREACH entry = O %],O=[% entry %][% END %][% END %][% IF L %],L=[% L.0 %][% END %][% IF ST %],ST=[% ST.0 %][% END %][% IF C %],C=[% C.0 %][% END %][% IF DC %][% FOREACH entry = DC %],DC=[% entry %][% END %][% END %][% IF EMAIL %][% FOREACH entry = EMAIL %],EMAIL=[% entry %][% END %][% END %]
Guarde el archivo.
Cree un archivo denominado l.yaml en el directorio /etc/openxpki/config.d/realm/REALM NAME/profile/template .
Agregue lo siguiente:
id: L label: L description: I18N_OPENXPKI_UI_PROFILE_L_DESC preset: L type: freetext width: 60 placeholder: Kolkata
Guarde el archivo.
Cree un archivo denominado st.yaml en el directorio /etc/openxpki/config.d/realm/REALM NAME/profile/template .
Agregue lo siguiente:
id: ST label: ST description: I18N_OPENXPKI_UI_PROFILE_ST_DESC preset: ST type: freetext width: 60 placeholder: WB
Guarde el archivo.
Reinicie el servicio OpenXPKI mediante
.Acceda al servidor OpenXPKI.
En un navegador web, escriba
.Inicie sesión como Operador . La contraseña predeterminada es
.Haga clic en Búsqueda de flujo de trabajo > Buscar ahora .
Haga clic en el certificado que desee revocar y, a continuación, en el enlace del certificado.
En la sección Acción, haga clic en la solicitud de revocación .
Escriba los valores adecuados y, a continuación, haga clic en Continuar > Enviar solicitud .
En la página siguiente, apruebe la solicitud. La revocación del certificado está esperando la siguiente publicación de la CRL.
En la sección Operación PKI, haga clic en Emitir una lista de revocación de certificados (CRL) .
Haga clic en Aplicar creación de listas de revocación > Continuar .
En la sección Operación PKI, haga clic en Publicar CA/CRL .
Haga clic en Búsqueda de flujo de trabajo > Buscar ahora .
Haga clic en el certificado revocado con el tipo certificate_revocation_request_v2 .
Haga clic en Forzar reactivación .
En la nueva CRL, puede encontrar el número de serie y el motivo de revocación del certificado revocado.