Cette section aide l'utilisateur à configurer l'autorité de certification OpenXPKI version 3.x.x à l'aide du protocole EST.
Remarques :
Connectez la machine à l'aide de PuTTY ou d'un autre client.
A partir du client, exécutez la commande
pour accéder à l'utilisateur racine.Saisissez le mot de passe racine.
Dans nano /etc/apt/sources.list , modifiez la source pour l'installation des mises à jour.
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
Enregistrez le fichier.
Exécutez les commandes suivantes :
Mettez à jour les listes de certificats CA du serveur à l'aide de
.Installez le paramètre local en_US.utf8 locale à l'aide des paramètres locaux
.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.
Vérifiez les paramètres locaux que vous avez générés à l'aide de
.C C.UTF-8 en_IN en_IN.utf8 en_US.utf8 POSIX
Copiez l'empreinte du package OpenXPKI à l'aide de
. Dans ce cas, copiez la clé dans /home .Saisissez
comme valeur.Exécutez la commande suivante :
Ajoutez le package à l'aide de la commande
.Ajoutez le référentiel à votre liste source (buster) à l'aide de
, puis de .Installez la liaison MySQL et Perl MySQL à l'aide de
.Installez apache2.2-common à l'aide de
.Dans nano /etc/apt/sources.list , installez le module fastcgi pour accélérer l'interface utilisateur.
Ajoutez la ligne
dans le fichier, puis enregistrez-la.Exécutez les commandes suivantes :
Activez le module fastcgi à l'aide de
.Installez le package principal OpenXPKI à l'aide de
.Redémarrez le serveur Apache en utilisant le
.Vérifiez si l'installation est réussie à l'aide de
.Créez la base de données vide, puis affectez l'utilisateur de la base de données à l'aide de
.Remarques :
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
pour lancer le service.Saisissez
pour quitter MySQL.Stockez les informations d'identification utilisées dans /etc/openxpki/config.d/system/database.yaml .
main: debug: 0 type: MariaDB name: openxpki host: localhost port: 3306 user: openxpki passwd: openxpki
Enregistrez le fichier.
Pour un schéma de base de données vide, exécutez
à partir du fichier de schéma fourni.Saisissez le mot de passe de la base de données.
Exécutez le script à l'aide de
.Confirmez la configuration à l'aide de
.=== 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
Vérifiez si l'installation est réussie à l'aide de
.Starting OpenXPKI... OpenXPKI Server is running and accepting requests. DONE.
Pour accéder au serveur OpenXPKI, procédez comme suit :
Depuis un navigateur Web, saisissez
.Ajoutez le nom d'utilisateur et les mots de passe correspondants dans un fichier
. 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
Saisissez le nom d'utilisateur et le mot de passe.
Créez une demande de certificat, puis testez-la.
Pour configurer l'autorité de certification OpenXPKI manuellement, créez les éléments suivants :
Certificat CA racine. Pour plus d'informations, reportez-vous à la section Création d'un certificat CA racine .
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 .
Certificat du coffre de données, auto-signé. Pour plus d'informations, reportez-vous à la section Création d'un certificat de coffre .
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 :
Exécutez mkdir -p /etc/openxpki/local/keys pour créer le répertoire. L'emplacement par défaut du répertoire est /etc/openxpki/local/keys .
Exécutez openxpkictl start pour démarrer le serveur.
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.
Le fichier de configuration OpenSSL contient des extensions X.509 pour la génération et la signature de demandes de certificat.
Exécutez la commande suivante :
# 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
Modifiez l'adresse IP et le nom du certificat CA avec vos informations de configuration.
Enregistrez le fichier.
Exécutez la commande suivante :
Saisissez votre mot de passe.
Enregistrez le fichier.
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.
Exécutez la commande suivante :
Remplacez le sujet de la demande par vos informations d'autorité de certificat à l'aide de
.Obtenez le certificat signé par l'autorité de certification racine à l'aide de
.Accédez à /etc/certs/openxpki_democa/ où ca-root-1.crt est enregistré.
Exécutez la commande suivante :
Exécutez la commande suivante :
Remplacez l'objet de la demande par vos informations d'autorité de certification en utilisant
.Faites signer le certificat par l'autorité de certification racine à l'aide de
.Exécutez la commande suivante :
Remarques :
Exécutez la commande suivante :
Modifiez l'objet de la demande avec vos informations d'autorité de certification en utilisant
.Exécutez la commande suivante :
Exécutez la commande suivante :
Remplacez l'objet de la demande par vos informations d'autorité de certification en utilisant
.Exécutez la commande suivante :
Exécutez les commandes suivantes :
Redémarrez le service Apache à l'aide de la commande apache2 restart .
Exécutez la commande suivante pour vérifier que l'importation des fichiers a bien fonctionné :
=== 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
Modifiez la valeur dans le fichier
.Supprimez le commentaire du cache :
:secret: default: label: Global Secret group export: 0 method: literal value: root cache: daemon
Exécutez la commande
.Starting OpenXPKI... OpenXPKI Server is running and accepting requests. DONE.
Accédez au serveur OpenXPKI :
Depuis un navigateur Web, saisissez
.Ajoutez les noms d'utilisateur et les mots de passe correspondants dans un fichier
:Extrayez vers /home/pkiadm , puis vers nano userdb.yaml .
Collez les éléments suivants :
estRA: digest:"{ssha256}somePassword” role: RA Operator
Pour générer le mot de passe, saisissez
. 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.
Entrez le nom d'utilisateur et le mot de passe.
Créez une demande de certificat, puis testez-la.
Arrêtez le service OpenXPKI à l'aide de
.Dans nano /etc/openxpki/config.d/realm/ca-one/publishing.yaml , mettez à jour les éléments suivants dans la section
:class: Connector::Builtin::File::Path LOCATION: /var/www/openxpki/CertEnroll/ file: "[% ARGS.0 %].crl" content: "[% pem %]"
Dans nano /etc/openxpki/config.d/realm/democa/profile/default.yaml , mettez à jour les éléments suivants :
Section
critical: 0 uri: - https://FQDN of the est/openxkpi/CenrtEnroll/[% ISSUER.CN.0 %].crl - ldap://localhost/[% ISSUER.DN %]
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.
Dans nano /etc/openxpki/config.d/realm/democa/crl/default.yaml , procédez comme suit :
Si nécessaire, mettez à jour
et .Ajoutez
à 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.
Démarrez le service OpenXPKI à l'aide de
.Après avoir créé les CRL, vous devez les publier pour qu'elles soient accessibles à tous.
Arrêtez le service Apache à l'aide de
.Créez un répertoire CertEnroll pour CRL dans le répertoire /var/www/openxpki/ .
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
Ajoutez une référence au fichier de configuration alias.conf à l'aide de
.Après la section
, ajoutez ce qui suit :Alias /CertEnroll/ "/var/www/openxpki/CertEnroll/" <Directory "/var/www/openxpki/CertEnroll"> Options FollowSymlinks AllowOverride None Require all granted </Directory>
Ajoutez une référence dans le fichier apache2.conf à l'aide de nano /etc/apache2/apache2.conf .
Ajoutez ce qui suit dans la section
:<Directory /var/www/openxpki/CertEnroll> Options FollowSymlinks AllowOverride None Allow from all </Directory>
Démarrez le service Apache à l'aide de
.Arrêtez le service OpenXPKI à l'aide de
.Dans /etc/openxpki/config.d/realm/democa/est/default.yaml , mettez à jour la section
: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
Remarques :
Enregistrez le fichier.
Démarrez le service OpenXPKI à l'aide de
.Exécutez la commande suivante :
Remplacez
par .Démarrez le service OpenXPKI à l'aide de
.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 .
Créez un répertoire, à savoir democa2 , pour le deuxième domaine dans /etc/openxpki/config.d/realm .
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.
Dans etc/openxpki/config.d/system/realms.yaml , mettez à jour la section suivante :
# 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/
Enregistrez le fichier.
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,
et .Copiez le fichier de configuration par défaut dans cp /etc/openxpki/est/default.conf /etc/openxpki/est/democa.conf .
Dans nano /etc/openxpki/est/democa.conf , définissez la valeur du domaine sur
.Créez un autre fichier de configuration dans cp /etc/openxpki/est/default.conf /etc/openxpki/est/democa2.conf .
Dans nano /etc/openxpki/est/democa2.conf , définissez la valeur du domaine sur
.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
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
Redémarrez le service OpenXPKI à l'aide de
.Sélectionnez les URL suivantes pour ouvrir le serveur EST correspondant à un domaine via un navigateur Web :
— http://ipaddress/est/democa
— http://ipaddress/est/democa2
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.
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.
Créez un fichier de configuration OpenSSL dans nano /etc/certs/openxpki_democa2/openssl.conf .
Accédez au répertoire du certificat du coffre-fort dans le premier domaine, puis importez le certificat à partir du premier domaine.
Exécutez le code suivant :
Exécutez la commande suivante :
Saisissez votre mot de passe.
Créez un certificat de signataire. Pour plus d'informations, reportez-vous à la section Création d'un certificat de signataire .
Vérifiez si l'importation est réussie avec openxpkiadm alias --realm democa2 .
Générez les CRL pour le deuxième domaine. Pour plus d'informations, reportez-vous à la section Génération des informations CRL .
Publier les CRL pour ce domaine. Pour plus d'informations, reportez-vous à la section Publication des informations CRL .
Redémarrez le service OpenXPKI à l'aide de openxpkictl restart .
Stopping OpenXPKI Stopping gracefully, 3 (sub)processes remaining... DONE. Starting OpenXPKI... OpenXPKI Server is running and accepting requests. DONE.
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.
Dans /etc/openxpki/config.d/realm/REALM NAME/est/< REALM NAME >.yaml , dans la section
, remplacez la valeur de par .Remarques :
Redémarrez le service OpenXPKI à l'aide de
.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.
Dans /etc/apache2/ports.conf , remplacez le port 443 par n'importe quel autre port. Par exemple :
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>
Dans /etc/apache2/sites-available/openxpki.conf , ajoutez ou modifiez la section
pour mapper un nouveau port. Par exemple, to .Dans /etc/apache2/sites-available/default-ssl.conf , ajoutez ou modifiez la section
pour mapper un nouveau port. Par exemple, to .Redémarrez le serveur Apache à l'aide de
.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
. L'URL SCEP OpenXPKI est désormais https://ipaddress , et l'URL Web est FQDN:9443/openxpki .Exécutez la commande suivante :
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>
Accédez au répertoire
.Dans nano openxpki.conf , ajoutez les lignes suivantes dans
:#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>
Ajoutez
avant SSLEngine dans le même bloc hôte virtuel.ServerAlias * DocumentRoot /var/www/ ErrorDocument 401 %{unescape:%00} SSLEngine On
Redémarrez le service apache2 à l'aide de service apache2 restart .
Accédez au répertoire suivant :
.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>
Supprimez la commande SSLVerifyClient optional_no_ca .
Enregistrez le fichier, puis saisissez
pour quitter MySQL.Accédez au répertoire suivant :
.Ouvrez default.yaml et democa.yaml .
Exécutez la commande suivante :
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: rule1: # Full DN subject: CN=.+:pkiclient,. rule2: subject: CN=test123,.*
Enregistrez le fichier, puis saisissez
pour quitter MySQL.Redémarrez le service OpenXPKI à l'aide de
.Démarrez le service Apache à l'aide de
.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.
Si la page Statut du système indique que vos jetons ca-signer-1 et vault-1 sont hors ligne, procédez comme suit :
Dans /etc/openxpki/config.d/realm/realm name/crypto.yaml , modifiez la valeur de clé correspondante.
Redémarrez le service OpenXPKI.