Administración de certificados mediante la autoridad certificadora de OpenXPKI a través de EST

En esta sección se ayuda al usuario a configurar la CA de OpenXPKI versión 3.x.x mediante el protocolo EST.

Notas:

Configuración de la CA de OpenXPKI

Instalación de la CA OpenXPKI

  1. Conecte el equipo utilizando PuTTY u otro cliente.

  2. En el cliente, ejecute el comando sudo su - para ir al usuario raíz.

  3. Introduzca la contraseña raíz.

  4. En nano /etc/apt/sources.list , cambie el origen para la instalación de las actualizaciones.

  5. 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
    
  6. Guarde el archivo.

  7. Ejecute los siguientes comandos:

    • apt-get update

    • apt-get upgrade

  8. Actualice las listas de certificados de CA en el servidor mediante apt-get install ca-certificates .

  9. Instale en_US.utf8 locale mediante dpkg-reconfigure locales .

  10. 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.

    Nota:  Utilice las teclas de tabulación y barra espaciadora para seleccionar y desplazarse por el menú.
  11. Compruebe las configuraciones regionales que ha generado mediante locale –a .

    Salida de ejemplo
    C
    C.UTF-8
    en_IN
    en_IN.utf8
    en_US.utf8
    POSIX
  12. Copie la huella del paquete de OpenXPKI mediante nano /home/Release.key . En este caso, copie la clave en /home .

  13. Escriba 55D89776 006F632B E0196E3E D2495509 BAFDDC74 22FEAAD2 F055074E 0FE3A724 como valor.

  14. Ejecute el siguiente comando:

    gpg --print-md sha256 /home/Release.key

  15. Agregue el paquete utilizando el comando wget https: comando //packages.openxpki.org/v3/debian/Release.key -O - | apt-key add - .

  16. Agregue el repositorio a la lista de orígenes (buster) mediante echo "deb http://packages.openxpki.org/v3/debian/ buster release" > /etc/apt/sources.list.d/openxpki.list y, a continuación, apt update .

  17. Instale el enlace MySQL y Perl MySQL mediante apt install mariadb-server libdbd-mariadb-perl .

  18. Instale apache2.2-common using apt install apache2 .

  19. En nano /etc/apt/sources.list , instale el módulo fastcgi para acelerar la interfaz de usuario.

    Nota:  Recomendamos que se utilice mod_fcgid .
  20. Agregue la línea deb http://http.us.debian.org/debian/ buster main en el archivo y, a continuación, guárdelo.

  21. Ejecute los siguientes comandos:

    apt-get update

    apt install libapache2-mod-fcgid

  22. Active el módulo fastcgi mediante a2enmod fcgid .

  23. Instale el paquete principal de OpenXPKI mediante apt install libopenxpki-perl openxpki-cgi-session-driver openxpki-i18n .

  24. Reinicie el Apache Servidor mediante service apache2 restart .

  25. Compruebe si la instalación se ha realizado correctamente mediante openxpkiadm version .

    Nota:  Si la instalación se ha realizado correctamente, el sistema muestra la versión de OpenXPKI instalada. Por ejemplo, Version (core): 3.18.2 .
  26. Cree la base de datos vacía y, a continuación, asigne el usuario de la base de datos mediante mariadb -u root -p .

    Notas:

    • Este comando debe escribirse en el cliente. De lo contrario, no podrá introducir la contraseña.
    • Escriba la contraseña para MySQL. En este caso, root es el usuario MySQL.
    • openxpki es el usuario en el que está instalado OpenXPKI.
    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 /etc/init.d/mysql start para iniciar el servicio.

  27. Escriba quit para salir de MySQL.

  28. Almacene las credenciales utilizadas en /etc/openxpki/config.d/system/database.yaml .

    Contenido de archivo de ejemplo
    main:
    debug: 0
    type: MariaDB
    name: openxpki
    host: localhost
    port: 3306
    user: openxpki 
    passwd: openxpki
    Nota:  Cambie user y passwd para que coincidan con el nombre de usuario y la contraseña de MariaDB.
  29. Guarde el archivo.

  30. Para un esquema de base de datos vacío, ejecute zcat /usr/share/doc/libopenxpki-perl/examples/schema-mariadb.sql.gz | \ mysql -u root --password --database openxpki desde el archivo de esquema proporcionado.

  31. Introduzca la contraseña de la base de datos.

Configuración de la CA de OpenXPKI mediante el script predeterminado

Nota:  El script predeterminado solo configura el dominio predeterminado, ca-one . El CDP y las CRL no se configuran.
  1. Ejecute el script mediante bash /usr/share/doc/libopenxpki-perl/examples/sampleconfig.sh .

  2. Confirme la configuración mediante openxpkiadm alias --realm democa .

    Salida de ejemplo
    === 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
  3. Compruebe si la instalación se realiza correctamente mediante openxpkictl start .

    Salida de ejemplo
    Starting OpenXPKI...
    OpenXPKI Server is running and accepting requests.
    DONE.
  4. Realice lo siguiente para acceder al servidor OpenXPKI:

    1. En un navegador web, escriba http://ipaddress/openxpki/ .

    2. Agregue el nombre de usuario y sus contraseñas correspondientes en un archivo userdb.yaml . 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
        Nota:  En este caso, estRA hace referencia al nombre de usuario. Para generar la contraseña, escriba openxpkiadm hashpwd . Cuando aparezca un mensaje solicitando la contraseña y aparezca una contraseña cifrada ssha256, cópiela y péguela en el resumen de cualquier usuario.
      Nota:  Las funciones disponibles en el inicio de sesión del operador son Operador de RA, Operador de CA y usuario.
  5. Introduzca el nombre de usuario y la contraseña.

  6. Cree una solicitud de certificado y, a continuación, pruébela.

Configuración de la CA de OpenXPKI de forma manual

Descripción general

Nota:  Antes de comenzar, asegúrese de que tiene conocimientos básicos sobre la creación de certificados OpenSSL.

Para configurar la CA OpenXPKI de forma manual, debe crear lo siguiente:

  1. Certificado de la CA raíz. Para obtener más información, consulte Creación de un certificado de la CA raíz .

  2. 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 .

  3. Certificado de almacén de datos, autofirmado. Para obtener más información, consulte Creación de un certificado de almacén .

  4. 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:

En este caso, vamos a utilizar el directorio /etc/certs/openxpki_democa/ para la generación de certificados. Sin embargo, puede utilizar cualquier directorio.

Creación de un archivo de configuración de OpenSSL

El archivo de configuración OpenSSL contiene extensiones X.509 para generar y firmar solicitudes de certificado.

  1. Ejecute el siguiente comando:

    nano /etc/certs/openxpki_democa/openssl.conf

    Nota:  Si se puede acceder al servidor mediante el nombre de dominio completo (FQDN), utilice el DNS del servidor en lugar de su dirección IP.
    Archivo de ejemplo
    # 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
    
  2. Sustituya la dirección IP y el nombre del certificado CA por la información de configuración.

  3. Guarde el archivo.

Creación de un archivo de contraseña para claves de certificado

  1. Ejecute el siguiente comando:

    nano /etc/certs/openxpki_democa/pd.pass

  2. Escriba su contraseña.

  3. Guarde el archivo.

Creación de un certificado de la CA raíz

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.

Nota:  Sustituya la longitud de clave, el algoritmo de firma y el nombre del certificado por los valores adecuados.
  1. Ejecute el siguiente comando:

    openssl genrsa -out /etc/certs/openxpki_democa/ca-root-1.key -passout file:/etc/certs/openxpki_democa/pd.pass 4096

  2. Sustituya el asunto de la solicitud por su información de la CA mediante openssl req -new -key /etc/certs/openxpki_democa/ca-root-1.key -out /etc/certs/openxpki_democa/ca-root-1.csr .

  3. Obtenga el certificado firmado por la CA raíz utilizando openssl req -config /etc/certs/openxpki_democa/openssl.conf -extensions v3_ca_extensions - x509 -days 3560 -in /etc/certs/openxpki_democa/ca-root-1.csr -key /etc/certs/openxpki_democa/ca-root-1.key -out /etc/certs/openxpki_democa/ca-root-1.crt - sha256 .

  4. Vaya a /etc/certs/openxpki_democa donde se guarda ca-root-1.crt .

  5. Ejecute el siguiente comando:

    openxpkiadm certificate import --file ca-root-1.crt

Creación de un certificado de firmante

Nota:  Sustituya la longitud de clave, el algoritmo de firma y el nombre del certificado por los valores adecuados.
  1. Ejecute el siguiente comando:

    openssl genrsa -out /etc/certs/openxpki_democa/ca-signer-1.key -passout file:/etc/certs/openxpki_democa/pd.pass 4096

  2. Cambie el asunto de la solicitud con la información de CA mediante openssl req -config /etc/certs/openxpki_democa/openssl.conf -reqexts v3_ca_reqexts -new -key /etc/certs/openxpki_democa/ca-signer-1.key -subj /DC=COM/DC=LEXMARK/DC=DEV/DC=CA-ONE/CN=MYOPENXPKI_ISSUINGCA -out / etc/certs/openxpki_democa/ca-signer-1.csr .

  3. Obtenga el certificado firmado por la CA raíz mediante openssl x509 -req -extfile /etc/certs/openxpki_democa/openssl.conf -extensions v3_issuing_extensions -days 3650 -in /etc/certs/openxpki_democa/ca-signer-1.csr -CA /etc/certs/openxpki_democa/ca-root-1.crt -CAkey /etc/certs/openxpki_democa/ca-root-1.key -CAcreateserial -out /etc/certs/openxpki_democa/ca-signer-1.crt -sha256 .

  4. Ejecute el siguiente comando:

    openxpkiadm alias --realm democa --token certsign --file ca-signer-1.crt --key ca-signer-1.key

Creación de un certificado de almacén

Notas:

  1. Ejecute el siguiente comando:

    openssl req -new -x509 -keyout vault.key -out vault.crt -days 1100 -config /etc/certs/openxpki_democa/openssl.conf

  2. Cambie el asunto de la solicitud con la información de CA mediante openxpkiadm certificate import --file vault.crt .

  3. Ejecute el siguiente comando:

    openxpkiadm alias --realm democa --token datasafe --file vault.crt --key vault.key

    Nota:  Proporcione los valores necesarios, pero mantenga /CN=DataVault como asunto.

Creación de un certificado web

  1. Ejecute el siguiente comando:

    archivo openssl genrsa -out /etc/certs/openxpki_democa/web-1.key -passout:/etc/certs/openxpki_democa/pd.pass 4096

  2. Cambie el asunto de la solicitud con la información de CA mediante openssl req -config /etc/certs/openxpki_democa/openssl.conf -reqexts v3_web_reqexts -new -key /etc/certs/openxpki_democa/web-1.key -subj /DC=COM/DC=LEXMARK/DC=DEV/DC=CA-ONE/CN=FQDN of your system -out /etc/certs/openxpki_democa/web-1.csr .

  3. Ejecute el siguiente comando:

    openssl x509 -req -extfile /etc/certs/openxpki_democa/openssl.conf -extensions v3_web_extensions -days 900 -in /etc/certs/openxpki_democa/web-1.csr -CA /etc/certs/openxpki_democa/ca-signer-1.crt -CAkey /etc/certs/openxpki_democa/ca-signer-1.key -CAcreateserial -out /etc/certs/openxpki_democa/web-1.crt -sha256

Configuración del servidor web

  1. Ejecute los siguientes comandos:

    a2enmod ssl rewrite headers

    a2ensite openxpki

    a2dissite 000-default default-ssl

    mkdir -m755 -p /etc/openxpki/tls/chain

    cp /etc/certs/openxpki_democa/ca-root-1.crt /etc/openxpki/tls/chain/

    cp /etc/certs/openxpki_democa/ca-signer-1.crt /etc/openxpki/tls/chain/

    c_rehash /etc/openxpki/tls/chain/

    mkdir -m755 -p /etc/openxpki/tls/endentity

    mkdir -m700 -p /etc/openxpki/tls/private

    cp /etc/certs/openxpki_democa/web-1.crt /etc/openxpki/tls/endentity/openxpki.crt

    cat /etc/certs/openxpki_democa/ca-signer-1.crt >> /etc/openxpki/tls/endentity/openxpki.crt

    archivo openssl rsa -in /etc/certs/openxpki_democa/web-1.key -passin:/etc/certs/openxpki_democa/pd.pass -out /etc/openxpki/tls/private/openxpki.pem

    chmod 400 /etc/openxpki/tls/private/openxpki.pem

  2. Reinicie el servicio Apache mediante apache2 restart .

  3. Ejecute el siguiente comando para comprobar que la importación de los archivos se ha realizado correctamente:

    openxpkiadm alias --realm democa

    Salida de ejemplo
    === 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
    

Poner la contraseña de la clave de certificado a disposición de OpenXPKI

  1. Cambie el valor en el archivo nano /etc/openxpki/config.d/system/crypto.yaml .

  2. Quite los comentarios de la caché: daemon under secret: default :

    secret:
      default:
        label: Global Secret group
        export: 0
        method: literal
        value: root
        cache: daemon

Inicio de OpenXPKI

  1. Ejecute el comando openxpkictl start

    Salida de ejemplo
    Starting OpenXPKI...
    OpenXPKI Server is running and accepting requests.
    DONE.
  2. Acceda al servidor de OpenXPKI:

    1. En un navegador web, escriba http://ipaddress/openxpki/ .

    2. Agregue los nombres de usuario y las contraseñas correspondientes en un archivo userdb.yaml :

      • Eche un vistazo a /home/pkiadm y nano userdb.yaml .

      • Pegue lo siguiente:

        estRA:  
               digest:"{ssha256}somePassword”
               role: RA Operator
        Nota:  Aquí estRA hace referencia al nombre de usuario.
      • Para generar la contraseña, escriba openxpkiadm hashpwd . 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.

      Nota:  El inicio de sesión del operador tiene dos funciones preconfiguradas disponibles: Operador de RA, Operador de CA y usuario.
  3. Introduzca el nombre de usuario y la contraseña.

  4. Cree una solicitud de certificado y, a continuación, pruébela.

Generación de información de la CRL

Nota:  Si se puede acceder al servidor mediante el FQDN, utilice el DNS del servidor en lugar de su dirección IP.
  1. Detenga el servicio OpenXPKI mediante openxpkictl stop .

  2. En nano /etc/openxpki/config.d/realm/democa/publishing.yaml , actualice la sección connectors: cdp para que muestre lo siguiente:

    class: Connector::Builtin::File::Path
    LOCATION: /var/www/openxpki/CertEnroll/
    file: "[% ARGS.0 %].crl"
    content: "[% pem %]"
    1. En nano /etc/openxpki/config.d/realm/democa/profile/default.yaml , actualice lo siguiente:

      • crl_distribution_points: sección

        critical: 0
        uri:
            - https://FQDN of the est/openxkpi/CenrtEnroll/[% ISSUER.CN.0 %].crl
            - ldap://localhost/[% ISSUER.DN %]
        
      • authority_info_access: 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.

      Nota:  La ruta authority_info_access (AIA) se guarda en la carpeta Download, pero puede establecer la ubicación según sus preferencias.
    2. En nano /etc/openxpki/config.d/realm/democa/crl/default.yaml , realice lo siguiente:

      • Si es necesario, actualice nextupdate y renewal .

      • Agregue ca_issuers 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.

  3. Inicie el servicio OpenXPKI mediante openxpkictl start .

Publicación de información de la CRL

Después de crear las CRL, debe publicarlas para que todos puedan acceder a ellas.

  1. Detenga el servicio Apache mediante service apache2 stop .

  2. Cree un directorio CertEnroll para la CRL en el directorio /var/www/openxpki/ .

  3. 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

  4. Agregue una referencia al archivo alias.conf de Apache mediante nano /etc/apache2/mods-enabled/alias.conf .

  5. Después de la sección <Directory "/usr/share/apache2/icons"> , agregue lo siguiente:

            	Alias /CertEnroll/ "/var/www/openxpki/CertEnroll/"
             	<Directory "/var/www/openxpki/CertEnroll">
                   Options FollowSymlinks
                   AllowOverride None
                   Require all granted
             	</Directory>
  6. Agregue una referencia en el archivo apache2.conf utilizando nano /etc/apache2/apache2.conf .

  7. Agregue lo siguiente en la sección Apache2 HTTPD server :

             	<Directory /var/www/openxpki/CertEnroll>
                   Options FollowSymlinks
                   AllowOverride None
                   Allow from all
             	</Directory>
  8. Inicie el servicio Apache mediante service apache2 start .

Activación de la aprobación automática de solicitudes de certificado en la CA OpenXPKI

  1. Detenga el servicio OpenXPKI mediante openxpkictl stop .

  2. En /etc/openxpki/config.d/realm/democa/est/default.yaml , actualice la sección eligible: :

    Contenido antiguo
    eligible:
    			initial:
    				value@: connector:scep.generic.connector.initial
           		args: '[% context.cert_subject_parts.CN.0 %]'
           		expect:
           			- Build
           			- New
    Nuevo contenido
    eligible:
    			initial:
    				value: 1
    				# value@: connector:scep.generic.connector.initial
    				# args: '[% context.cert_subject_parts.CN.0 %]'
    				# expect:
    				#	- Build
    				#	- New

    Notas:

    • Revise el espacio y la sangría en el archivo de script.
    • Para aprobar certificados de forma manual, comente value: 1 y, a continuación, quite el comentario de las otras líneas que se hayan comentado previamente.
  3. Guarde el archivo.

  4. Inicie el servicio OpenXPKI mediante openxpkictl start .

Cambio de detalles para habilitar la descarga de certificados CA

  1. Ejecute el siguiente comando:

    /usr/lib/cgi-bin/est.fcgi

  2. Sustituya my $mime = "application/pkcs7-mime; smime-type=certs-only"; por my $mime = "application/pkcs7-mime"; .

  3. Inicie el servicio OpenXPKI mediante openxpkictl start .

Creación de un segundo dominio

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 .

Copia y configuración del directorio

  1. Cree un directorio, a saber democa2 , para el segundo dominio dentro de /etc/openxpki/config.d/realm .

  2. 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.

  3. En /etc/openxpki/config.d/system/reinos.yaml , actualice la siguiente sección:

    Contenido antiguo
    # 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/
    Nuevo contenido
    # 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/
  4. Guarde el archivo.

Configuración de puntos finales EST para varios dominios

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, democa y democa2 .

  1. Copie el archivo de configuración predeterminado en cp /etc/openxpki/est/default.conf /etc/openxpki/est/democa.conf .

    Nota:  Asigne al archivo el nombre democa.conf .
  2. En nano /etc/openxpki/est/democa.conf , cambie el valor de dominio a realm=democa .

    Nota:  De acuerdo a sus necesidades, puede que tenga que quitar los comentarios de las líneas correspondientes para las secciones simpleenroll , simplereenroll , csrattrs y cacerts . Mantenga comentadas las secciones de entorno. Haga lo mismo para default.conf .
  3. Cree otro archivo de configuración en cp /etc/openxpki/est/default.conf /etc/openxpki/est/democa2.conf .

    Nota:  Asigne al archivo el nombre democa2.conf .
  4. En nano /etc/openxpki/est/democa2.conf , cambie el valor de dominio a realm=democa2 .

    Nota:  De acuerdo a sus necesidades, puede que tenga que quitar los comentarios de las líneas correspondientes para las secciones simpleenroll , simplereenroll , csrattrs y cacerts . Mantenga comentadas las secciones de entorno.
  5. 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

    Nota:  Asigne al archivo el nombre democa.yaml .
  6. 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

    Nota:  Asigne al archivo el nombre democa2.yaml .
  7. Reinicie el servicio OpenXPKI mediante openxpkictl restart .

Seleccione las siguientes URL para abrir el servidor de la EST correspondiente a un dominio a través de un navegador web:

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.

Creación de un certificado de firmante

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.

  1. Cree un archivo de configuración OpenSSL en nano /etc/certs/openxpki_democa2/openssl.conf .

    Nota:  Cambie el nombre común del certificado para que el usuario pueda distinguir fácilmente entre distintos certificados para diferentes dominios. Los archivos de certificado se crean en el directorio /etc/certs/openxpki_democa2/ .
  2. Vaya al directorio del certificado del almacén en el primer dominio y, a continuación, importe el certificado desde el primer dominio.

  3. Ejecute el siguiente código:

    openxpkiadm alias --realm democa2 --token datasafe --file vault.crt

Creación de un archivo de contraseña para claves de certificado

  1. Ejecute el siguiente comando:

    nano /etc/certs/openxpki_democa2/pd.pass

  2. Escriba su contraseña.

  3. Cree un certificado de firmante. Para obtener más información, consulte Creación de un certificado de firmante .

  4. Compruebe que la importación se realiza correctamente mediante openxpkiadm alias --realm democa2 .

    Nota:  Si cambió la contraseña de clave del certificado durante la creación del certificado, actualice nano /etc/openxpki/config.d/realm/democa2/crypto.yaml .
  5. Genere las CRL para el segundo dominio. Para obtener más información, consulte Generación de información de la CRL .

    Nota:  Asegúrese de utilizar el nombre de certificado CA correcto según el dominio.
  6. Publique las CRL para este dominio. Para obtener más información, consulte Publicación de información de la CRL .

  7. Reinicie el servicio OpenXPKI mediante openxpkictl restart .

    Salida de ejemplo
    Stopping OpenXPKI
    Stopping gracefully, 3 (sub)processes remaining...
    DONE.
    Starting OpenXPKI...
    OpenXPKI Server is running and accepting requests.
    DONE.

Activación de varios certificados activos con el mismo asunto para que estén presentes a la vez

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.

  1. En /etc/openxpki/config.d/realm/REALM NAME/est/< REALM NAME >.yaml , en la sección policy , cambie el valor de max_active_certs de 1 a 0 .

    Notas:

    • REALM NAME es el nombre de dominio. Por ejemplo, ca-one .
    • Revise el espacio y la sangría en el archivo de script.
  2. Reinicie el servicio OpenXPKI mediante openxpkictl restart .

Definición del número de puerto predeterminado para la CA OpenXPKI

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.

  1. En /etc/apache2/ports.conf , modifique el puerto 443 a cualquier otro puerto. Por ejemplo:

    Contenido antiguo
    Listen 80
    
    <IfModule ssl_module>
       Listen 443
    </IfModule>
    
    <IfModule mod_gnutls.c>
      Listen 443
    </IfModule>
    Nuevo contenido
    Listen 80
    
    <IfModule ssl_module>
       Listen 9443
    </IfModule>
    
    <IfModule mod_gnutls.c>
      Listen 9443
    </IfModule>
  2. En /etc/apache2/sites-available/openxpki.conf , agregue o modifique la sección VirtualHost para asignar un nuevo puerto. Por ejemplo, <VirtualHost *:443> a <VirtualHost *:9443> .

  3. En /etc/apache2/sites-available/default-ssl.conf , agregue o modifique la sección VirtualHost para asignar un nuevo puerto. Por ejemplo, cambie <VirtualHost *:443> a <VirtualHost *:9443> .

  4. Reinicie el servidor Apache con systemctl restart apache2 .

    Nota:  Si solicita la frase de contraseña para SSL/TLS , escriba la contraseña mientras agrega el certificado del servidor web TLS en el servidor EST.
  5. En tinddopenxpkiweb01.dhcp.dev.lexmark.com:9443 (RSA): , introduzca la frase de contraseña para las claves SSL/TLS .

Para comprobar el estado, ejecute netstat -tlpn| grep apache . La URL de OpenXPKI SCEP es ahora https://ipaddress y la URL web es FQDN:9443/openxpki .

Activación de la autenticación básica

  1. Ejecute el siguiente comando:

    apt -y install apache2-utils

  2. 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>
  3. Vaya al directorio cd /etc/apache2/sites-enabled/ .

  4. En nano openxpki.conf , agregue las siguientes líneas en <VirtualHost *: 443 block> :

    #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>
  5. Agregue ErrorDocument 401 %{unescape:%00} antes de SSLEngine en el mismo bloque de host virtual.

    Ejemplo
    ServerAlias *
    DocumentRoot /var/www/
    ErrorDocument 401 %{unescape:%00}
    SSLEngine On
  6. Inicie el apache2 con service apache2 start .

    Nota:  La autenticación básica funciona con el nombre de usuario y la contraseña anteriores.

Activación de la autenticación de certificado de cliente

  1. Vaya al siguiente directorio: cd /etc/apache2/sites-enabled/ .

  2. 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>
  3. Elimine el comando SSLVerifyClient optional_no_ca .

  4. Guarde el archivo y, a continuación, escriba quit para salir de MySQL.

  5. Vaya al siguiente directorio: cd /etc/openxpki/config.d/realm/democa/est .

  6. Abra default.yaml y democa.yaml .

    Nota:  Si la etiqueta es diferente, cambie el archivo YAML.
  7. Ejecute el siguiente comando:

    vi default.yaml

  8. 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 :

    authorized_signer:
    rule1:
    		# Full DN	
    		subject: CN=.+:pkiclient,.
    rule2:	
    		subject: CN=test123,.*
  9. Guarde el archivo y, a continuación, escriba quit para salir de MySQL.

  10. Reinicie el servicio OpenXPKI mediante openxpkictl restart .

  11. Inicie el servicio Apache mediante service apache2 restart .

¿Qué causa el error de falta de coincidencia de SAN que impide que el sistema busque la CRL?

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.

¿Por qué están sin conexión los tokens ca-signer-1 y vault-1?

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:

  1. En /etc/openxpki/config.d/realm/realm name/crypto.yaml , cambie el valor de la clave correspondiente.

  2. Reinicie el servicio de OpenXPKI.