Gestion des certificats à l'aide de l'autorité de certification OpenXPKI via EST

Cette section aide l'utilisateur à configurer l'autorité de certification OpenXPKI version 3.x.x à l'aide du protocole EST.

Remarques :

Configuration de l'autorité de certification OpenXPKI

Installation de l'autorité de certification OpenXPKI

  1. Connectez la machine à l'aide de PuTTY ou d'un autre client.

  2. A partir du client, exécutez la commande sudo su - pour accéder à l'utilisateur racine.

  3. Saisissez le mot de passe racine.

  4. Dans nano /etc/apt/sources.list , modifiez la source pour l'installation des mises à jour.

  5. Mettez à jour le fichier. Par exemple :

    #
    
    # 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. Enregistrez le fichier.

  7. Exécutez les commandes suivantes :

    • mise à jour apt-get

    • mise à niveau apt-get

  8. Mettez à jour les listes de certificats CA du serveur à l'aide de apt-get install ca-certificates .

  9. Installez le paramètre local en_US.utf8 locale à l'aide des paramètres locaux dpkg-reconfigure locales .

  10. Sélectionnez le paramètre local en_US.UTF-8 UTF-8 , puis définissez-le comme paramètre local par défaut pour le système.

    Remarque :  Utilisez les touches de tabulation et la barre d'espace pour sélectionner et naviguer dans le menu.
  11. Vérifiez les paramètres locaux que vous avez générés à l'aide de locale –a .

    Exemple d'impression
    C
    C.UTF-8
    en_IN
    en_IN.utf8
    en_US.utf8
    POSIX
  12. Copiez l'empreinte du package OpenXPKI à l'aide de nano /home/Release.key . Dans ce cas, copiez la clé dans /home .

  13. Saisissez 55D89776 006F632B E0196E3E D2495509 BAFDDC74 22FEAAD2 F055074E 0FE3A724 comme valeur.

  14. Exécutez la commande suivante :

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

  15. Ajoutez le package à l'aide de la commande wget https://packages.openxpki.org/v3/debian/Release.key -O - | apt-key add - .

  16. Ajoutez le référentiel à votre liste source (buster) à l'aide de echo " deb http://packages.openxpki.org/v3/debian/ buster release" > /etc/apt/sources.list.d/openxpki.list , puis de apt update .

  17. Installez la liaison MySQL et Perl MySQL à l'aide de apt install mariadb-server libdbd-mariadb-perl .

  18. Installez apache2.2-common à l'aide de apt install apache2 .

  19. Dans nano /etc/apt/sources.list , installez le module fastcgi pour accélérer l'interface utilisateur.

    Remarque :  Nous vous recommandons d'utiliser mod_fcgid .
  20. Ajoutez la ligne deb http://http.us.debian.org/debian/ buster main dans le fichier, puis enregistrez-la.

  21. Exécutez les commandes suivantes :

    mise à jour apt-get

    apt install libapache2-mod-fcgid

  22. Activez le module fastcgi à l'aide de a2enmod fcgid .

  23. Installez le package principal OpenXPKI à l'aide de apt install libopenxpki-perl openxpki-cgi-session-driver openxpki-i18n .

  24. Redémarrez le serveur Apache en utilisant le service de redémarrage apache2 .

  25. Vérifiez si l'installation est réussie à l'aide de openxpkiadm version .

    Remarque :  Si l'installation est réussie, le système affiche la version d'OpenXPKI installée. Par exemple, Version (principale) : 3.18.2 .
  26. Créez la base de données vide, puis affectez l'utilisateur de la base de données à l'aide de mariadb -u root -p .

    Remarques :

    • Cette commande doit être saisie dans le client. Sinon, vous ne pouvez pas saisir le mot de passe.
    • Saisissez le mot de passe pour MySQL. Pour cette instance, root est l'utilisateur MySQL.
    • MySQL est l'utilisateur sur lequel OpenXPKI est installé.
    CREATE DATABASE openxpki CHARSET utf8; 
    CREATE USER 'openxpki'@'localhost' IDENTIFIED BY 'openxpki';
    GRANT ALL ON openxpki.* TO 'openxpki'@'localhost';
    flush privileges;

    Si le service MySQL n'est pas en cours d'exécution, exécutez /etc/init.d/mysql start pour lancer le service.

  27. Saisissez quit pour quitter MySQL.

  28. Stockez les informations d'identification utilisées dans /etc/openxpki/config.d/system/database.yaml .

    Exemple de contenu du fichier
    main:
    debug: 0
    type: MariaDB
    name: openxpki
    host: localhost
    port: 3306
    user: openxpki 
    passwd: openxpki
    Remarque :  Modifiez les champs user et passwd pour qu'ils correspondent au nom d'utilisateur MariaDB et au mot de passe.
  29. Enregistrez le fichier.

  30. Pour un schéma de base de données vide, exécutez zcat /usr/share/doc/libopenxpki-perl/examples/schema-mariadb.sql.gz | \ mysql -u root --password --database openxpki à partir du fichier de schéma fourni.

  31. Saisissez le mot de passe de la base de données.

Configuration de l'autorité de certification OpenXPKI à l'aide du script par défaut

Remarque :  Le script par défaut configure uniquement le domaine par défaut, ca-one . Les CDP et CRL ne sont pas configurés.
  1. Exécutez le script à l'aide de bash /usr/share/doc/libopenxpki-perl/examples/sampleconfig.sh .

  2. Confirmez la configuration à l'aide de openxpkiadm alias --realm democa .

    Exemple d'impression
    === 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. Vérifiez si l'installation est réussie à l'aide de openxpkictl start .

    Exemple d'impression
    Starting OpenXPKI...
    OpenXPKI Server is running and accepting requests.
    DONE.
  4. Pour accéder au serveur OpenXPKI, procédez comme suit :

    1. Depuis un navigateur Web, saisissez http://ipaddress/openxpki/ .

    2. Ajoutez le nom d'utilisateur et les mots de passe correspondants dans un fichier userdb.yaml . Pour ajouter le nom d'utilisateur et le mot de passe, procédez comme suit :

      • Extrayez vers /home/pkiadm , puis vers nano userdb.yaml .

      • Collez les éléments suivants :

        estRA:  
               digest:"{ssha256}somePassword”
               role: RA Operator
        Remarque :  Dans ce cas, estRA fait référence au nom d'utilisateur. Pour générer le mot de passe, saisissez openxpkiadm hashpwd . Lorsqu'un message demandant le mot de passe et un mot de passe chiffré ssha256 s'affiche, copiez-le et collez-le dans la synthèse de n'importe quel utilisateur.
      Remarque :  Les rôles disponibles dans la connexion opérateur sont opérateur RA, opérateur CA et utilisateur.
  5. Saisissez le nom d'utilisateur et le mot de passe.

  6. Créez une demande de certificat, puis testez-la.

Configuration manuelle de l'autorité de certification OpenXPKI

Aperçu

Remarque :  Avant de commencer, assurez-vous de disposer de connaissances de base sur la création de certificats OpenSSL.

Pour configurer l'autorité de certification OpenXPKI manuellement, créez les éléments suivants :

  1. Certificat CA racine. Pour plus d'informations, reportez-vous à la section Création d'un certificat CA racine .

  2. Certificat du signataire de l'autorité de certification, signé par l'autorité de certification racine. Pour plus d'informations, reportez-vous à la section Création d'un certificat de signataire .

  3. Certificat du coffre de données, auto-signé. Pour plus d'informations, reportez-vous à la section Création d'un certificat de coffre .

  4. Certificat Web, signé par le certificat du signataire. Pour plus d'informations, reportez-vous à la section Configuration du serveur Web .

Remarques :

Pour la version 3.10 ou ultérieure, vous pouvez gérer les clés directement à l'aide de la commande d'alias openxpkiadm :

Pour cette instance, nous utilisons le répertoire /etc/certs/openxpki_democa/ pour la génération de certificats. Cependant, vous pouvez utiliser n'importe quel répertoire.

Création d'un fichier de configuration OpenSSL

Le fichier de configuration OpenSSL contient des extensions X.509 pour la génération et la signature de demandes de certificat.

  1. Exécutez la commande suivante :

    nano /etc/certs/openxpki_democa/openssl.conf

    Remarque :  Si votre serveur est accessible à l'aide du nom de domaine complet (FQDN), utilisez le DNS du serveur au lieu de son adresse IP.
    Exemple de fichier
    # 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. Modifiez l'adresse IP et le nom du certificat CA avec vos informations de configuration.

  3. Enregistrez le fichier.

Création d'un fichier de mots de passe pour les clés de certificat

  1. Exécutez la commande suivante :

    nano /etc/certs/openxpki_democa/pd.pass

  2. Saisissez votre mot de passe.

  3. Enregistrez le fichier.

Création d'un certificat CA racine

Vous pouvez créer un certificat CA racine auto-signé ou générer une demande de certificat, puis le faire signer par l'autorité de certification racine.

Remarque :  Remplacez la longueur de clé, l'algorithme de signature et le nom du certificat par les valeurs appropriées.
  1. Exécutez la commande suivante :

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

  2. Remplacez le sujet de la demande par vos informations d'autorité de certificat à l'aide de openssl req -new -key /etc/certs/openxpki_democa/ca-root-1.key -out /etc/certs/openxpki_democa/ca-root-1.csr .

  3. Obtenez le certificat signé par l'autorité de certification racine à l'aide de 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. Accédez à /etc/certs/openxpki_democa/ ca-root-1.crt est enregistré.

  5. Exécutez la commande suivante :

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

Création d'un certificat de signataire

Remarque :  Remplacez la longueur de clé, l'algorithme de signature et le nom du certificat par les valeurs appropriées.
  1. Exécutez la commande suivante :

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

  2. Remplacez l'objet de la demande par vos informations d'autorité de certification en utilisant 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. Faites signer le certificat par l'autorité de certification racine à l'aide de 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. Exécutez la commande suivante :

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

Création d'un certificat de coffre

Remarques :

  1. Exécutez la commande suivante :

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

  2. Modifiez l'objet de la demande avec vos informations d'autorité de certification en utilisant openxpkiadm certificate import --file vault.crt .

  3. Exécutez la commande suivante :

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

    Remarque :  Indiquez les valeurs nécessaires, mais conservez /CN=DataVault comme objet.

Création d'un certificat Web

  1. Exécutez la commande suivante :

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

  2. Remplacez l'objet de la demande par vos informations d'autorité de certification en utilisant 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. Exécutez la commande suivante :

    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

Configuration du serveur Web

  1. Exécutez les commandes suivantes :

    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

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

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

  2. Redémarrez le service Apache à l'aide de la commande apache2 restart .

  3. Exécutez la commande suivante pour vérifier que l'importation des fichiers a bien fonctionné :

    openxpkiadm alias --realm democa

    Exemple d'impression
    === 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
    

Mise à disposition du mot de passe de la clé de certificat pour OpenXPKI

  1. Modifiez la valeur dans le fichier nano /etc/openxpki/config.d/system/crypto.yaml .

  2. Supprimez le commentaire du cache : démon sous secret : par défaut  :

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

Démarrage d'OpenXPKI

  1. Exécutez la commande openxpkictl start .

    Exemple d'impression
    Starting OpenXPKI...
    OpenXPKI Server is running and accepting requests.
    DONE.
  2. Accédez au serveur OpenXPKI :

    1. Depuis un navigateur Web, saisissez http://ipaddress/openxpki/ .

    2. Ajoutez les noms d'utilisateur et les mots de passe correspondants dans un fichier userdb.yaml  :

      • Extrayez vers /home/pkiadm , puis vers nano userdb.yaml .

      • Collez les éléments suivants :

        estRA:  
               digest:"{ssha256}somePassword”
               role: RA Operator
        Remarque :  Ici, estRA fait référence au nom d'utilisateur.
      • Pour générer le mot de passe, saisissez openxpkiadm hashpwd . Un message indiquant le mot de passe et un mot de passe chiffré ssha256 s'affiche.

      • Copiez le mot de passe, puis collez-le dans la synthèse de n'importe quel utilisateur.

      Remarque :  La connexion opérateur dispose de deux rôles préconfigurés : opérateur RA, opérateur CA et utilisateur.
  3. Entrez le nom d'utilisateur et le mot de passe.

  4. Créez une demande de certificat, puis testez-la.

Génération des informations CRL

Remarque :  Si votre serveur est accessible à l'aide du FQDN, utilisez le DNS du serveur au lieu de son adresse IP.
  1. Arrêtez le service OpenXPKI à l'aide de openxpkictl stop .

  2. Dans nano /etc/openxpki/config.d/realm/ca-one/publishing.yaml , mettez à jour les éléments suivants dans la section connectors: cdp  :

    class: Connector::Builtin::File::Path
    LOCATION: /var/www/openxpki/CertEnroll/
    file: "[% ARGS.0 %].crl"
    content: "[% pem %]"
    1. Dans nano /etc/openxpki/config.d/realm/democa/profile/default.yaml , mettez à jour les éléments suivants :

      • crl_distribution_points : Section

        critical: 0
        uri:
            - https://FQDN of the est/openxkpi/CenrtEnroll/[% ISSUER.CN.0 %].crl
            - ldap://localhost/[% ISSUER.DN %]
        
      • authority_info_access : Section

        critical: 0
        ca_issuers: http://FQDN of the est/download/MYOPENXPKI.crt
        ocsp: http://ocsp.openxpki.org/

      Modifiez l'adresse IP et le nom du certificat CA en fonction de votre serveur CA.

      Remarque :  Le chemin authority_info_access (AIA) est enregistré dans le dossier Download, mais vous pouvez définir l'emplacement selon vos préférences.
    2. Dans nano /etc/openxpki/config.d/realm/democa/crl/default.yaml , procédez comme suit :

      • Si nécessaire, mettez à jour nextupdate et renewal .

      • Ajoutez ca_issuers à la section suivante :

        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/
        

        Modifiez l'adresse IP et le nom du certificat CA en fonction de votre serveur CA.

  3. Démarrez le service OpenXPKI à l'aide de openxpkictl start .

Publication des informations CRL

Après avoir créé les CRL, vous devez les publier pour qu'elles soient accessibles à tous.

  1. Arrêtez le service Apache à l'aide de service apache2 stop .

  2. Créez un répertoire CertEnroll pour CRL dans le répertoire /var/www/openxpki/ .

  3. Définissez openxpki comme propriétaire de ce répertoire, puis configurez les autorisations pour permettre à Apache de lire et d'exécuter, et aux autres services de lire uniquement.

    chown openxpki /var/www/openxpki/CertEnroll

    chmod 755 /var/www/openxpki/CertEnroll

  4. Ajoutez une référence au fichier de configuration alias.conf à l'aide de nano /etc/apache2/mods-enabled/alias.conf .

  5. Après la section <Directory "/usr/share/apache2/icons"> , ajoutez ce qui suit :

            	Alias /CertEnroll/ "/var/www/openxpki/CertEnroll/"
             	<Directory "/var/www/openxpki/CertEnroll">
                   Options FollowSymlinks
                   AllowOverride None
                   Require all granted
             	</Directory>
  6. Ajoutez une référence dans le fichier apache2.conf à l'aide de nano /etc/apache2/apache2.conf .

  7. Ajoutez ce qui suit dans la section Serveur HTTPD Apache2  :

             	<Directory /var/www/openxpki/CertEnroll>
                   Options FollowSymlinks
                   AllowOverride None
                   Allow from all
             	</Directory>
  8. Démarrez le service Apache à l'aide de service apache2 start .

Activation de l'approbation automatique des demandes de certificat dans l'autorité de certification OpenXPKI

  1. Arrêtez le service OpenXPKI à l'aide de openxpkictl stop .

  2. Dans /etc/openxpki/config.d/realm/democa/est/default.yaml , mettez à jour la section eligible:  :

    Ancien contenu
    eligible:
    			initial:
    				value@: connector:scep.generic.connector.initial
           		args: '[% context.cert_subject_parts.CN.0 %]'
           		expect:
           			- Build
           			- New
    Nouveau contenu
    eligible:
    			initial:
    				value: 1
    				# value@: connector:scep.generic.connector.initial
    				# args: '[% context.cert_subject_parts.CN.0 %]'
    				# expect:
    				#	- Build
    				#	- New

    Remarques :

    • Vérifiez l'espace et l'indentation dans le fichier de script.
    • Pour approuver les certificats manuellement, commentez la ligne valeur : 1 , puis supprimez les commentaires des autres lignes commentées précédemment.
  3. Enregistrez le fichier.

  4. Démarrez le service OpenXPKI à l'aide de openxpkictl start .

Modification des détails pour activer le téléchargement des certificats ca

  1. Exécutez la commande suivante :

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

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

  3. Démarrez le service OpenXPKI à l'aide de openxpkictl .

Création d'un deuxième domaine

Dans OpenXPKI, vous pouvez configurer plusieurs structures PKI dans le même système. Les rubriques suivantes expliquent comment créer un autre domaine pour MVE nommé democa-two .

Copie et définition du répertoire

  1. Créez un répertoire, à savoir democa2 , pour le deuxième domaine dans /etc/openxpki/config.d/realm .

  2. Copiez l'exemple d'arborescence de répertoire /etc/openxpki/config.d/realm/ca-one dans un nouveau répertoire ( cp -r /etc/openxpki/config.d/realm.tpl/*/etc/openxpki/config.d/realm/democa2 ) au sein du répertoire du domaine.

  3. Dans etc/openxpki/config.d/system/realms.yaml , mettez à jour la section suivante :

    Ancien contenu
    # 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/
    Nouveau contenu
    # 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. Enregistrez le fichier.

Configuration du point de terminaison EST pour plusieurs domaines

Vous pouvez configurer le point de terminaison EST avec un tuple composé de la partie d'autorité de l'URI et du libellé facultatif (par exemple, www.example.com:80 et arbitraryLabel1). Dans les instructions suivantes, nous utilisons deux domaines PKI, democa et democa2 .

  1. Copiez le fichier de configuration par défaut dans cp /etc/openxpki/est/default.conf /etc/openxpki/est/democa.conf .

    Remarque :  Nommez le fichier democa.conf .
  2. Dans nano /etc/openxpki/est/democa.conf , définissez la valeur du domaine sur realm=democa .

    Remarque :  En fonction de vos besoins, vous devrez peut-être annuler le commentaire des lignes correspondantes pour les sections simpleenroll , simplereenroll , csrattrs et cacerts . Conservez les sections d'environnement dotées d'un commentaire. Procédez de la même manière pour default.conf .
  3. Créez un autre fichier de configuration dans cp /etc/openxpki/est/default.conf /etc/openxpki/est/democa2.conf .

    Remarque :  Nommez le fichier democa2.conf .
  4. Dans nano /etc/openxpki/est/democa2.conf , définissez la valeur du domaine sur realm=democa2 .

    Remarque :  En fonction de vos besoins, vous devrez peut-être annuler le commentaire des lignes correspondantes pour les sections simpleenroll , simplereenroll , csrattrs et cacerts . Conservez les sections d'environnement dotées d'un commentaire.
  5. Copiez le fichier default.yaml dans les emplacements suivants :

    • cp /etc/openxpki/config.d/realm/democa/est/default.yaml

    • /etc/openxpki/config.d/realm/democa/est/democa.yaml

    Remarque :  Nommez le fichier democa.yaml .
  6. Copiez le fichier default.yaml dans les emplacements suivants :

    • cp /etc/openxpki/config.d/realm/democa2/est/default.yaml

    • /etc/openxpki/config.d/realm/democa2/est/democa2.yaml

    Remarque :  Nommez le fichier democa2.yaml .
  7. Redémarrez le service OpenXPKI à l'aide de openxpkictl restart .

Sélectionnez les URL suivantes pour ouvrir le serveur EST correspondant à un domaine via un navigateur Web :

Si vous souhaitez faire la différence entre les informations d'identification de connexion et les modèles de certificat par défaut pour différents domaines PKI, vous aurez peut-être besoin d'une configuration avancée.

Création d'un certificat de signataire

Les instructions suivantes indiquent comment générer un certificat de signataire dans le deuxième domaine. Vous pouvez utiliser les mêmes certificats racine et de coffre-fort que ceux du premier domaine.

  1. Créez un fichier de configuration OpenSSL dans nano /etc/certs/openxpki_democa2/openssl.conf .

    Remarque :  Modifiez le nom commun du certificat afin que l'utilisateur puisse facilement distinguer les différents certificats des différents domaines. Les fichiers de certificat sont créés dans le répertoire /etc/certs/openxpki_democa2/ .
  2. Accédez au répertoire du certificat du coffre-fort dans le premier domaine, puis importez le certificat à partir du premier domaine.

  3. Exécutez le code suivant :

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

Création d'un fichier de mots de passe pour les clés de certificat

  1. Exécutez la commande suivante :

    nano /etc/certs/openxpki_democa2/pd.pass

  2. Saisissez votre mot de passe.

  3. Créez un certificat de signataire. Pour plus d'informations, reportez-vous à la section Création d'un certificat de signataire .

  4. Vérifiez si l'importation est réussie avec openxpkiadm alias --realm democa2 .

    Remarque :  Si vous avez modifié le mot de passe clé du certificat lors de la création du certificat, mettez à jour nano /etc/openxpki/config.d/realm/democa2/crypto.yaml .
  5. Générez les CRL pour le deuxième domaine. Pour plus d'informations, reportez-vous à la section Génération des informations CRL .

    Remarque :  Veillez à utiliser le nom de certificat d'autorité de certification correct en fonction du domaine.
  6. Publier les CRL pour ce domaine. Pour plus d'informations, reportez-vous à la section Publication des informations CRL .

  7. Redémarrez le service OpenXPKI à l'aide de openxpkictl restart .

    Exemple d'impression
    Stopping OpenXPKI
    Stopping gracefully, 3 (sub)processes remaining...
    DONE.
    Starting OpenXPKI...
    OpenXPKI Server is running and accepting requests.
    DONE.

Autorisation de la présence de plusieurs certificats actifs à la fois ayant le même sujet

Par défaut, dans OpenXPKI, un seul certificat avec le même nom d'objet peut être actif à la fois. Cependant, lorsque vous appliquez plusieurs Certificats nommés, plusieurs certificats actifs portant le même nom d'objet doivent être présents à la fois.

  1. Dans /etc/openxpki/config.d/realm/REALM NAME/est/< REALM NAME >.yaml , dans la section policy , remplacez la valeur 1 de max_active_certs par 0 .

    Remarques :

    • REALM NAME est le nom du domaine. Par exemple, ca-one .
    • Vérifiez l'espace et l'indentation dans le fichier de script.
  2. Redémarrez le service OpenXPKI à l'aide de openxpkictl restart .

Définition du numéro de port par défaut pour l'autorité de certification OpenXPKI

Par défaut, Apache écoute dans le numéro de port 443 pour https. Définissez le numéro de port par défaut de l'autorité de certification OpenXPKI pour éviter les conflits.

  1. Dans /etc/apache2/ports.conf , remplacez le port 443 par n'importe quel autre port. Par exemple :

    Ancien contenu
    Listen 80
    
    <IfModule ssl_module>
       Listen 443
    </IfModule>
    
    <IfModule mod_gnutls.c>
      Listen 443
    </IfModule>
    Nouveau contenu
    Listen 80
    
    <IfModule ssl_module>
       Listen 9443
    </IfModule>
    
    <IfModule mod_gnutls.c>
      Listen 9443
    </IfModule>
  2. Dans /etc/apache2/sites-available/openxpki.conf , ajoutez ou modifiez la section VirtualHost pour mapper un nouveau port. Par exemple, <VirtualHost *:443> to <VirtualHost *:9443> .

  3. Dans /etc/apache2/sites-available/default-ssl.conf , ajoutez ou modifiez la section VirtualHost_default pour mapper un nouveau port. Par exemple, <VirtualHost *:443> to <VirtualHost *:9443> .

  4. Redémarrez le serveur Apache à l'aide de systemctl restart apache2 .

    Remarque :  S'il vous demande la phrase de passe SSL/TLS , saisissez le mot de passe lors de l'ajout du certificat du serveur Web TLS sur le serveur EST.
  5. Dans tinddopenxpkiweb01.dhcp.dev.lexmark.com:9443 (RSA): , saisissez la phrase de passe des clés SSL/TLS .

Pour vérifier l'état, exécutez netstat -tlpn| grep apache . L'URL SCEP OpenXPKI est désormais https://ipaddress , et l'URL Web est FQDN:9443/openxpki .

Activation de l'authentification de base

  1. Exécutez la commande suivante :

    apt -y install apache2-utils

  2. Créez un compte utilisateur ayant accès au serveur. Entrez les informations suivantes :

    htpasswd -c /etc/apache2/.htpasswd <username>
                    New password:     
                    Re-type new password:
                    Adding password for user <username>
  3. Accédez au répertoire cd /etc/apache2/sites-enabled/ .

  4. Dans nano openxpki.conf , ajoutez les lignes suivantes dans <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. Ajoutez ErrorDocument 401 %{unescape:%00} avant SSLEngine dans le même bloc hôte virtuel.

    Exemple
    ServerAlias *
    DocumentRoot /var/www/
    ErrorDocument 401 %{unescape:%00}
    SSLEngine On
  6. Redémarrez le service apache2 à l'aide de service apache2 restart .

    Remarque :  L'authentification de base fonctionne à l'aide du nom d'utilisateur et du mot de passe ci-dessus.

Activation de l'authentification du certificat client

  1. Accédez au répertoire suivant : cd /etc/apache2/sites-enabled/ .

  2. Pour l'hôte requis dans nano openxpki.conf , ajoutez SSLVerifyClient require .

    Par exemple, si vous utilisez le port 443, modifiez la section VirtualHost par :

    <VirtualHost *:443>
    SSLVerifyClient require
    </VirtualHost>
  3. Supprimez la commande SSLVerifyClient optional_no_ca .

  4. Enregistrez le fichier, puis saisissez quit pour quitter MySQL.

  5. Accédez au répertoire suivant : cd /etc/openxpki/config.d/realm/democa/est .

  6. Ouvrez default.yaml et democa.yaml .

    Remarque :  Si l'étiquette est différente, modifiez le fichier YAML.
  7. Exécutez la commande suivante :

    vi default.yaml

  8. Dans la section authorized_signer , ajoutez les éléments suivants :

    authorized_signer:
    rule2:
    			subject: CN=,.

    Par exemple, si le nom du sujet de votre certificat client est test123 , ajoutez les éléments suivants dans la section authorized_signer  :

    authorized_signer:
    rule1:
    		# Full DN	
    		subject: CN=.+:pkiclient,.
    rule2:	
    		subject: CN=test123,.*
  9. Enregistrez le fichier, puis saisissez quit pour quitter MySQL.

  10. Redémarrez le service OpenXPKI à l'aide de openxpkictl restart .

  11. Démarrez le service Apache à l'aide de service apache2 restart .

Quelles sont les causes de l'erreur de non-correspondance SAN qui empêche le système de récupérer la CRL ?

L'erreur de non-correspondance SAN peut se produire lorsque vous activez les informations CRL. Cette erreur indique que l'adresse IP ou le nom d'hôte ne correspond pas à la valeur du SAN dans le certificat Web. Pour éviter cette erreur, utilisez le FQDN dans le chemin de la CRL au lieu de l'adresse IP. Vous pouvez également configurer le certificat Web et utiliser le FQDN de votre système dans le champ SAN.

Pourquoi les jetons ca-signer-1 et vault-1 sont-ils hors ligne ?

Si la page Statut du système indique que vos jetons ca-signer-1 et vault-1 sont hors ligne, procédez comme suit :

  1. Dans /etc/openxpki/config.d/realm/realm name/crypto.yaml , modifiez la valeur de clé correspondante.

  2. Redémarrez le service OpenXPKI.