En esta sección se ayuda al usuario a configurar la CA de OpenXPKI versión 3.x.x mediante el protocolo EST.
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 testing _Buster_ - Official Snapshot amd64 DVD Binary-1 20190527-04:04]/ buster contrib main # deb cdrom:[Debian GNU/Linux testing _Buster_ - Official Snapshot amd64 DVD Binary-1 20190527-04:04]/ buster contrib main deb http://security.debian.org/debian-security buster/updates main contrib deb-src http://security.debian.org/debian-security buster/updates main contrib # buster-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/ buster-updates main deb-src http://ftp.debian.org/debian/ buster-updates main deb http://ftp.us.debian.org/debian/ buster 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
comando .Agregue el repositorio a la lista de orígenes (buster) mediante
y, a continuación, .Instale el enlace MySQL y Perl MySQL mediante
.Instale apache2.2-common using
.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 .
main: debug: 0 type: MariaDB 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.
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
.Agregue el nombre de usuario y sus contraseñas correspondientes en un archivo
. Para agregar el nombre de usuario y la contraseña, haga lo siguiente:Eche un vistazo a /home/pkiadm y, a continuación, a nano userdb.yaml .
Pegue lo siguiente:
estRA: digest:"{ssha256}somePassword” role: RA Operator
Introduzca el nombre de usuario y la contraseña.
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 web, firmado por el certificado del firmante. Para obtener más información, consulte Configuración del servidor web .
Notas:
Para la versión 3.10 o posterior, puede administrar las claves directamente mediante el comando openxpkiadm alias:
Ejecute mkdir -p /etc/openxpki/local/keys para crear el directorio. La ubicación predeterminada del directorio es /etc/openxpki/local/keys .
Ejecute openxpkictl start para iniciar el servidor.
En este caso, vamos a utilizar el directorio /etc/certs/openxpki_democa/ para la generación de certificados. Sin embargo, puede utilizar cualquier directorio.
El archivo de configuración OpenSSL contiene extensiones X.509 para generar y firmar solicitudes de certificado.
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:https://FQDN of your system/openxpki/CertEnroll/MYOPENXPKI.crl authorityInfoAccess = caIssuers;URI:https://FQDN of your system/download/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:FQDN of est server crlDistributionPoints = URI:https://FQDN of your system/openxpki/CertEnroll/MYOPENXPKI_ISSUINGCA.cr authorityInfoAccess = caIssuers;URI:https://FQDN of your system/download/MYOPENXPKI_ISSUINGCA.crt
Sustituya la dirección IP y el nombre del certificado CA por la información de configuración.
Guarde el archivo.
Ejecute el siguiente comando:
Escriba su contraseña.
Guarde el archivo.
Puede crear un certificado de la CA raíz autofirmado o generar una solicitud de certificado y, a continuación, obtenerlo firmado por la CA raíz.
Ejecute el siguiente comando:
Sustituya el asunto de la solicitud por su información de la CA mediante
.Obtenga el certificado firmado por la CA raíz utilizando
.Vaya a /etc/certs/openxpki_democa donde se guarda ca-root-1.crt .
Ejecute el siguiente comando:
Ejecute el siguiente comando:
Cambie el asunto de la solicitud con la información de CA mediante
.Obtenga el certificado firmado por la CA raíz mediante
.Ejecute el siguiente comando:
Notas:
Ejecute el siguiente comando:
Cambie el asunto de la solicitud con la información de CA mediante
.Ejecute el siguiente comando:
Ejecute el siguiente comando:
Cambie el asunto de la solicitud con la información de CA mediante
.Ejecute el siguiente comando:
Ejecute los siguientes comandos:
Reinicie el servicio Apache mediante apache2 restart .
Ejecute el siguiente comando para comprobar que la importación de los archivos se ha realizado correctamente:
=== functional token === ca-signer (certsign): Alias : ca-signer-2 Identifier: XjC6MPbsnyfLZkI9Poi9vm4Z5rk NotBefore : 2022-04-06 10:03:01 NotAfter : 2032-04-03 10:03:01 vault (datasafe): Alias : vault-2 Identifier: G8ekluAsskGVC0N-jZhB2n9kvdM NotBefore : 2022-04-06 09:53:57 NotAfter : 2025-04-10 09:53:57 scep (scep): not set ratoken (cmcra): not set === root ca === current root ca: Alias : root-2 Identifier: prTHU5vCfcJuCnQWyb5wUknvXQM NotBefore : 2022-04-06 09:40:27 NotAfter : 2032-01-04 09:40:27
Cambie el valor en el archivo
.Quite los comentarios de la caché:
:secret: default: label: Global Secret group export: 0 method: literal value: root cache: daemon
Ejecute el comando
Starting OpenXPKI... OpenXPKI Server is running and accepting requests. DONE.
Acceda al servidor de OpenXPKI:
En un navegador web, escriba
.Agregue los nombres de usuario y las contraseñas correspondientes en un archivo
:Eche un vistazo a /home/pkiadm y nano userdb.yaml .
Pegue lo siguiente:
estRA: digest:"{ssha256}somePassword” role: RA Operator
Para generar la contraseña, escriba
. Aparece un mensaje que muestra la contraseña y una contraseña cifrada con ssha256.Copie la contraseña y péguela en el resumen de cualquier usuario.
Introduzca el nombre de usuario y la contraseña.
Cree una solicitud de certificado y, a continuación, pruébela.
Detenga el servicio OpenXPKI mediante
.En nano /etc/openxpki/config.d/realm/democa/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/democa/profile/default.yaml , actualice lo siguiente:
sección
critical: 0 uri: - https://FQDN of the est/openxkpi/CenrtEnroll/[% ISSUER.CN.0 %].crl - ldap://localhost/[% ISSUER.DN %]
sección
critical: 0 ca_issuers: http://FQDN of the est/download/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/democa/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: https://FQDN of the est/download/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
.Después de crear las CRL, debe publicarlas para que todos puedan acceder a ellas.
Detenga el servicio Apache mediante
.Cree un directorio CertEnroll para la 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
.En /etc/openxpki/config.d/realm/democa/est/default.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
.Ejecute el siguiente comando:
Sustituya
por .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 democa-two .
Cree un directorio, a saber democa2 , para el segundo dominio dentro de /etc/openxpki/config.d/realm .
Copie el árbol de directorios de ejemplo /etc/openxpki/config.d/realm/ca-one en un nuevo directorio ( cp -r /etc/openxpki/config.d/realm.tpl/*/etc/openxpki/config.d/realm/democa2 ) 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 democa: label: Verbose name of this realm baseurl: https://pki.example.com/openxpki/ #democa2: # 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 democa: label: Example.org Demo CA baseurl: https://pki.example.com/openxpki/ democa2: label: Example.org Demo CA2 baseurl: https://pki.example.com/openxpki/
Guarde el archivo.
Puede configurar el punto final EST con una tupla compuesta por la parte de autoridad del URI y la etiqueta opcional (por ejemplo, www.ejemplo.com:80 y arbitraryLabel1). En las siguientes instrucciones, utilizamos dos dominios PKI,
y .Copie el archivo de configuración predeterminado en cp /etc/openxpki/est/default.conf /etc/openxpki/est/democa.conf .
En nano /etc/openxpki/est/democa.conf , cambie el valor de dominio a
.Cree otro archivo de configuración en cp /etc/openxpki/est/default.conf /etc/openxpki/est/democa2.conf .
En nano /etc/openxpki/est/democa2.conf , cambie el valor de dominio a
.Copie el archivo default.yaml en las siguientes ubicaciones:
cp /etc/openxpki/config.d/realm/democa/est/default.yaml
/etc/openxpki/config.d/realm/democa/est/democa.yaml
Copie el archivo default.yaml en las siguientes ubicaciones:
cp /etc/openxpki/config.d/realm/democa2/est/default.yaml
/etc/openxpki/config.d/realm/democa2/est/democa2.yaml
Reinicie el servicio OpenXPKI mediante
.Seleccione las siguientes URL para abrir el servidor de la EST correspondiente a un dominio a través de un navegador web:
— http://ipaddress/est/democa
— http://ipaddress/est/democa2
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.
Las siguientes instrucciones muestran cómo generar un certificado de firmante en el segundo dominio. Puede utilizar los mismos certificados raíz y de almacén que los del primer dominio.
Cree un archivo de configuración OpenSSL en nano /etc/certs/openxpki_democa2/openssl.conf .
Vaya al directorio del certificado del almacén en el primer dominio y, a continuación, importe el certificado desde el primer dominio.
Ejecute el siguiente código:
Ejecute el siguiente comando:
Escriba su contraseña.
Cree un certificado de firmante. Para obtener más información, consulte Creación de un certificado de firmante .
Compruebe que la importación se realiza correctamente mediante openxpkiadm alias --realm democa2 .
Genere las CRL para el segundo 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 Publicación de información de la CRL .
Reinicie el servicio OpenXPKI mediante openxpkictl restart .
Stopping OpenXPKI Stopping gracefully, 3 (sub)processes remaining... DONE. Starting OpenXPKI... OpenXPKI Server is running and accepting requests. DONE.
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/est/< REALM NAME >.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 443 para https. Defina el número de puerto predeterminado para la CA OpenXPKI para evitar conflictos.
En /etc/apache2/ports.conf , modifique el puerto 443 a cualquier otro puerto. Por ejemplo:
Listen 80 <IfModule ssl_module> Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule>
Listen 80 <IfModule ssl_module> Listen 9443 </IfModule> <IfModule mod_gnutls.c> Listen 9443 </IfModule>
En /etc/apache2/sites-available/openxpki.conf , agregue o modifique la sección
para asignar un nuevo puerto. Por ejemplo, a .En /etc/apache2/sites-available/default-ssl.conf , agregue o modifique la sección
para asignar un nuevo puerto. Por ejemplo, cambie a .Reinicie el servidor Apache con
.En tinddopenxpkiweb01.dhcp.dev.lexmark.com:9443 (RSA): , introduzca la frase de contraseña para las claves SSL/TLS .
Para comprobar el estado, ejecute
. La URL de OpenXPKI SCEP es ahora https://ipaddress y la URL web es FQDN:9443/openxpki .Ejecute el siguiente comando:
Cree una cuenta de usuario que tenga acceso al servidor. Introduzca la siguiente información:
htpasswd -c /etc/apache2/.htpasswd <username> New password: Re-type new password: Adding password for user <username>
Vaya al directorio
.En nano openxpki.conf , agregue las siguientes líneas en
:#HTTPS BASIC AUTH FOR LABELS Location /.well-known/est/*/simpleenroll AuthType Basic AuthName "estrealm" AuthUserFile /etc/apache2/.htpasswd require valid-user </Location> #HTTPS BASIC AUTH FOR NO LABEL <Location /.well-known/est/simpleenroll> AuthType Basic AuthName "estrealm" AuthUserFile /etc/apache2/.htpasswd require valid-user </Location>
Agregue
antes de SSLEngine en el mismo bloque de host virtual.ServerAlias * DocumentRoot /var/www/ ErrorDocument 401 %{unescape:%00} SSLEngine On
Inicie el apache2 con service apache2 start .
Vaya al siguiente directorio:
.Para el host requerido en nano openxpki.conf , agregue SSLVerifyClient require .
Por ejemplo, si está utilizando el puerto 443, modifique la sección VirtualHost a:
<VirtualHost *:443> SSLVerifyClient require </VirtualHost>
Elimine el comando SSLVerifyClient optional_no_ca .
Guarde el archivo y, a continuación, escriba
para salir de MySQL.Vaya al siguiente directorio:
.Abra default.yaml y democa.yaml .
Ejecute el siguiente comando:
En la sección authorized_signer , agregue lo siguiente:
authorized_signer: rule2: subject: CN=,.
Por ejemplo, si el nombre del asunto del certificado de cliente es test123 , agregue lo siguiente en la sección
:authorized_signer: rule1: # Full DN subject: CN=.+:pkiclient,. rule2: subject: CN=test123,.*
Guarde el archivo y, a continuación, escriba
para salir de MySQL.Reinicie el servicio OpenXPKI mediante
.Inicie el servicio Apache mediante
.El error de falta de coincidencia de SAN puede ocurrir cuando se activa la información de CRL. Este error indica que la dirección IP o el nombre de host no coinciden con el valor de SAN del certificado web. Para evitar que se produzca este error, utilice el FQDN en la ruta de acceso de la CRL en lugar de la IP. También puede configurar el certificado web y utilizar el FQDN del sistema en el campo SAN.
Si la página Estado del sistema muestra que los tokens ca-signer-1 y vault-1 están sin conexión, haga lo siguiente:
En /etc/openxpki/config.d/realm/realm name/crypto.yaml , cambie el valor de la clave correspondiente.
Reinicie el servicio de OpenXPKI.