Questa sezione aiuta l'utente a configurare la OpenXPKI CA versione 3.x.x tramite il protocollo EST.
Note:
Collegare il computer utilizzando PuTTY o un altro client.
Dal client, eseguire il comando
per passare all'utente root.Immettere la password root.
In nano /etc/apt/sources.list , modificare l'origine per installare gli aggiornamenti.
Aggiornare il file. Ad esempio:
# # 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
Salvare il file.
Eseguire questi comandi:
Aggiornare gli elenchi dei certificati CA nel server utilizzando
.Installare le impostazioni locali en_US.utf8 utilizzando
.Selezionare le impostazioni locali en_US.UTF-8 UTF-8 , quindi impostarle come predefinite per il sistema.
Controllare le impostazioni locali generate utilizzando
.C C.UTF-8 en_IN en_IN.utf8 en_US.utf8 POSIX
Copiare l'impronta digitale del pacchetto OpenXPKI utilizzando
. Per questo esempio, copiare la chiave in /home .Digitare
come valore.Eseguire questo comando:
Aggiungere il pacchetto utilizzando il comando
.Aggiungere il repository all'elenco di origini (buster) utilizzando
, quindi .Installare l'associazione MySQL e Perl MySQL utilizzando
.Installare apache2.2-common utilizzando
.In nano /etc/apt/sources.list , installare il modulo fastcgi per velocizzare l'interfaccia utente.
Aggiungere la riga
nel file, quindi salvarlo.Eseguire questi comandi:
Abilitare il modulo fastcgi utilizzando
.Installare il pacchetto di base OpenXPKI utilizzando
.Riavviare il server Apache utilizzando
.Controllare se l'installazione è avvenuta correttamente utilizzando
.Creare il database vuoto, quindi assegnare l'utente del database utilizzando
.Note:
CREATE DATABASE openxpki CHARSET utf8; CREATE USER 'openxpki'@'localhost' IDENTIFIED BY 'openxpki'; GRANT ALL ON openxpki.* TO 'openxpki'@'localhost'; flush privileges;
Se il servizio MySQL non è in esecuzione, eseguire
per avviarlo.Digitare
per uscire da MySQL.Memorizzare le credenziali usate in /etc/openxpki/config.d/system/database.yaml .
main: debug: 0 type: MariaDB name: openxpki host: localhost port: 3306 user: openxpki passwd: openxpki
Salvare il file.
Per uno schema di database vuoto, eseguire
dal file di schema fornito.Digitare la password per il database.
Eseguire lo script utilizzando
.Confermare le impostazioni utilizzando
.=== 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
Controllare se l'installazione è avvenuta correttamente utilizzando
.Starting OpenXPKI... OpenXPKI Server is running and accepting requests. DONE.
Effettuare le seguenti operazioni per accedere al server OpenXPKI:
Nel browser Web, digitare
.Aggiungere il nome utente e le password corrispondenti in un file
. Per aggiungere il nome utente e la password, procedere come segue:Eseguire il check-out a /home/pkiadm e quindi nano userdb.yaml .
Incollare quanto segue:
estRA: digest:"{ssha256}somePassword” role: RA Operator
Immettere il nome utente e la password.
Creare una richiesta di certificato, quindi testarla.
Per configurare manualmente OpenXPKI CA, creare i seguenti certificati:
Certificato CA radice. Per ulteriori informazioni, vedere Creazione di un certificato CA radice .
Certificato del firmatario CA, firmato dalla CA radice. Per ulteriori informazioni, vedere Creazione di un certificato del firmatario .
Certificato del vault di dati, autofirmato. Per ulteriori informazioni, vedere Creazione di un certificato del vault .
Certificato Web, firmato dal certificato del firmatario. Per ulteriori informazioni, vedere Configurazione del server Web .
Note:
Per la versione 3.10 o successiva, è possibile gestire le chiavi direttamente utilizzando il comando openxpkiadm alias:
Eseguire mkdir -p /etc/openxpki/local/key per creare la directory. La posizione predefinita della directory è /etc/openxpki/local/keys .
Eseguire openxpkictl start per avviare il server.
In questo esempio, utilizziamo la directory /etc/certs/openxpki_democa/ per la generazione dei certificati. Tuttavia, è possibile utilizzare qualsiasi directory.
Il file di configurazione OpenSSL contiene le estensioni X.509 per la generazione e la firma delle richieste di certificato.
Eseguire questo comando:
# x509_extensions = v3_ca_extensions # x509_extensions = v3_issuing_extensions # x509_extensions = v3_datavault_extensions # x509_extensions = v3_scep_extensions # x509_extensions = v3_web_extensions # x509_extensions = v3_ca_reqexts # not for root self-signed, only for issuing ## x509_extensions = v3_datavault_reqexts # not required self-signed # x509_extensions = v3_scep_reqexts # x509_extensions = v3_web_reqexts [ req ] default_bits = 4096 distinguished_name = req_distinguished_name [ req_distinguished_name ] domainComponent = Domain Component commonName = Common Name [ v3_ca_reqexts ] subjectKeyIdentifier = hash keyUsage = digitalSignature, keyCertSign, cRLSign [ v3_datavault_reqexts ] subjectKeyIdentifier = hash keyUsage = keyEncipherment extendedKeyUsage = emailProtection [ v3_scep_reqexts ] subjectKeyIdentifier = hash [ v3_web_reqexts ] subjectKeyIdentifier = hash keyUsage = critical, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth, clientAuth [ v3_ca_extensions ] subjectKeyIdentifier = hash keyUsage = digitalSignature, keyCertSign, cRLSign basicConstraints = critical,CA:TRUE authorityKeyIdentifier = keyid:always,issuer [ v3_issuing_extensions ] subjectKeyIdentifier = hash keyUsage = digitalSignature, keyCertSign, cRLSign basicConstraints = critical,CA:TRUE authorityKeyIdentifier = keyid:always,issuer:always crlDistributionPoints = URI:https://FQDN of your system/openxpki/CertEnroll/MYOPENXPKI.crl authorityInfoAccess = caIssuers;URI:https://FQDN of your system/download/MYOPENXPKI.crt [ v3_datavault_extensions ] subjectKeyIdentifier = hash keyUsage = keyEncipherment extendedKeyUsage = emailProtection basicConstraints = CA:FALSE authorityKeyIdentifier = keyid:always,issuer [ v3_scep_extensions ] subjectKeyIdentifier = hash basicConstraints = CA:FALSE authorityKeyIdentifier = keyid,issuer [ v3_web_extensions ] subjectKeyIdentifier = hash keyUsage = critical, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth, clientAuth basicConstraints = critical,CA:FALSE subjectAltName = DNS:FQDN of est server crlDistributionPoints = URI:https://FQDN of your system/openxpki/CertEnroll/MYOPENXPKI_ISSUINGCA.cr authorityInfoAccess = caIssuers;URI:https://FQDN of your system/download/MYOPENXPKI_ISSUINGCA.crt
Sostituire l'indirizzo IP e il nome del certificato CA in base alle informazioni delle proprie impostazioni.
Salvare il file.
Eseguire questo comando:
Digitare la propria password.
Salvare il file.
È possibile creare un certificato CA radice autofirmato o generare una richiesta di certificato e quindi ottenerne la firma dalla CA radice.
Eseguire questo comando:
Sostituire il soggetto della richiesta con le informazioni della propria CA utilizzando
.Ottenere il certificato firmato dalla CA radice utilizzando
.Accedere a /etc/certs/openxpki_democa/ in cui è salvato ca-root-1.crt .
Eseguire questo comando:
Eseguire questo comando:
Modificare l'oggetto della richiesta con le informazioni della propria CA utilizzando
.Ottenere il certificato firmato dalla CA radice utilizzando
.Eseguire questo comando:
Note:
Eseguire questo comando:
Modificare l'oggetto della richiesta con le informazioni della propria CA utilizzando
.Eseguire questo comando:
Eseguire questo comando:
Modificare l'oggetto della richiesta con le informazioni della propria CA utilizzando
.Eseguire questo comando:
Eseguire questi comandi:
Riavviare il servizio OpenXPKI utilizzando apache2 restart .
Eseguire questo comando per verificare che l'importazione dei file abbia avuto esito positivo:
=== 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
Modificare il valore nel file
.Rimuovere il commento dalla cache:
:secret: default: label: Global Secret group export: 0 method: literal value: root cache: daemon
Eseguire il comando
.Starting OpenXPKI... OpenXPKI Server is running and accepting requests. DONE.
Accedere al server OpenXPKI:
Nel browser Web, digitare
.Aggiungere i nomi utente e le password corrispondenti in un file
:Eseguire il check-out a /home/pkiadm e quindi nano userdb.yaml .
Incollare quanto segue:
estRA: digest:"{ssha256}somePassword” role: RA Operator
Per generare la password, digitare
. Viene visualizzato un messaggio che mostra la password e una password crittografata ssha256.Copiare la password, quindi incollarla nel digest di qualsiasi utente.
Digitare il nome utente e la password.
Creare una richiesta di certificato, quindi testarla.
Arrestare il servizio OpenXPKI utilizzando
.In nano /etc/openxpki/config.d/realm/democa/publishing.yaml , aggiornare la sezione
come segue:class: Connector::Builtin::File::Path LOCATION: /var/www/openxpki/CertEnroll/ file: "[% ARGS.0 %].crl" content: "[% pem %]"
In nano /etc/openxpki/config.d/realm/democa/profile/default.yaml , aggiornare quanto segue:
sezione
critical: 0 uri: - https://FQDN of the est/openxkpi/CenrtEnroll/[% ISSUER.CN.0 %].crl - ldap://localhost/[% ISSUER.DN %]
sezione
critical: 0 ca_issuers: http://FQDN of the est/download/MYOPENXPKI.crt ocsp: http://ocsp.openxpki.org/
Modificare l'indirizzo IP e il nome del certificato CA in base al proprio server CA.
In nano /etc/openxpki/config.d/realm/democa/crl/default.yaml , effettuare le seguenti operazioni:
Se necessario, aggiornare
e .Aggiungere
alla seguente sezione: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/
Modificare l'indirizzo IP e il nome del certificato CA in base al proprio server CA.
Avviare il servizio OpenXPKI utilizzando
.Dopo aver creato i CRL, è necessario pubblicarli affinché tutti possano accedervi.
Arrestare il servizio Apache utilizzando
.Creare una directory CertEnroll per il CRL nella directory /var/www/openxpki/ .
Impostare openxpki come proprietario di questa directory, quindi configurare le autorizzazioni per consentire ad Apache la lettura e l'esecuzione e agli altri servizi la sola lettura.
chown openxpki /var/www/openxpki/CertEnroll
chmod 755 /var/www/openxpki/CertEnroll
Aggiungere un riferimento al file Apache alias.conf utilizzando
.Dopo la sezione
, aggiungere quanto segue:Alias /CertEnroll/ "/var/www/openxpki/CertEnroll/" <Directory "/var/www/openxpki/CertEnroll"> Options FollowSymlinks AllowOverride None Require all granted </Directory>
Aggiungere un riferimento nel file apache2.conf utilizzando nano /etc/apache2/apache2.conf .
Aggiungere quanto segue nella sezione
:<Directory /var/www/openxpki/CertEnroll> Options FollowSymlinks AllowOverride None Allow from all </Directory>
Avviare il servizio Apache utilizzando
.Arrestare il servizio OpenXPKI utilizzando
.In /etc/openxpki/config.d/realm/democa/est/default.yaml , aggiornare la sezione
come segue: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
Note:
Salvare il file.
Avviare il servizio OpenXPKI utilizzando
.Eseguire questo comando:
Sostituire
con .Avviare il servizio OpenXPKI utilizzando
.In OpenXPKI è possibile configurare più strutture PKI sullo stesso sistema. I seguenti argomenti illustrano come creare un'altra area di autenticazione per MVE denominata democa-two .
Creare una directory, ossia democa2 , per la seconda area di autenticazione all'interno di /etc/openxpki/config.d/realm .
Copiare la struttura di directory di esempio /etc/openxpki/config.d/realm/ca-one in una nuova directory ( cp -r /etc/openxpki/config.d/realm.tpl/*/etc/openxpki/config.d/realm/democa2 ) all'interno della directory dell'area di autenticazione.
In /etc/openxpki/config.d/system/realms.yaml , aggiornare la seguente sezione:
# 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/
Salvare il file.
È possibile configurare l'endpoint EST con una tupla composta dalla parte dell'URI relativa all'authority dall'etichetta opzionale (ad esempio www.example.com:80 e arbitraryLabel1). Nelle seguenti istruzioni utilizziamo due aree di autenticazione PKI, ovvero
e .Copiare il file di configurazione predefinito in cp /etc/openxpki/est/default.conf /etc/openxpki/est/democa.conf .
In nano /etc/openxpki/est/democa.conf , modificare il valore dell'area di autenticazione in
.Creare un altro file di configurazione in cp /etc/openxpki/est/default.conf /etc/openxpki/est/democa2.conf .
In nano /etc/openxpki/est/democa2.conf , modificare il valore dell'area di autenticazione in
.Copiare il file default.yaml nelle seguenti posizioni:
cp /etc/openxpki/config.d/realm/democa/est/default.yaml
/etc/openxpki/config.d/realm/democa/est/democa.yaml
Copiare il file default.yaml nelle seguenti posizioni:
cp /etc/openxpki/config.d/realm/democa2/est/default.yaml
/etc/openxpki/config.d/realm/democa2/est/democa2.yaml
Riavviare il servizio OpenXPKI utilizzando
.Selezionare i seguenti URL per aprire il server EST corrispondente a un'area di autenticazione tramite un browser Web:
: http://ipaddress/est/democa
: http://ipaddress/est/democa2
Se si desidera differenziare tra le credenziali di accesso e i modelli di certificato predefiniti per aree di autenticazione PKI diverse, potrebbe essere necessaria una configurazione avanzata.
Le seguenti istruzioni mostrano come generare un certificato del firmatario nella seconda area di autenticazione. È possibile utilizzare gli stessi certificati radice e del vault presenti nella prima area di autenticazione.
Creare un file di configurazione OpenSSL in nano /etc/certs/openxpki_democa2/openssl.conf .
Accedere alla directory del certificato del vault nella prima area di autenticazione, quindi importare il certificato dalla prima area di autenticazione.
Eseguire questo codice:
Eseguire questo comando:
Digitare la propria password.
Creare un certificato del firmatario. Per ulteriori informazioni, vedere Creazione di un certificato del firmatario .
Controllare se l'importazione è avvenuta correttamente utilizzando openxpkiadm alias --realm democa2 .
Generare i CRL per la seconda area di autenticazione. Per ulteriori informazioni, vedere Generazione delle informazioni del CRL .
Pubblicare i CRL per questa area di autenticazione. Per ulteriori informazioni, vedere Pubblicazione delle informazioni CRL .
Riavviare il servizio OpenXPKI utilizzando openxpkictl restart .
Stopping OpenXPKI Stopping gracefully, 3 (sub)processes remaining... DONE. Starting OpenXPKI... OpenXPKI Server is running and accepting requests. DONE.
Per impostazione predefinita, in OpenXPKI può essere attivo un solo certificato con lo stesso nome oggetto alla volta. Tuttavia, quando si applicano più certificati con nome, devono essere presenti più certificati attivi con lo stesso nome oggetto alla volta.
In /etc/openxpki/config.d/realm/REALM NAME/est/< REALM NAME >.yaml , nella sezione
, modificare il valore di da a .Note:
Riavviare il servizio OpenXPKI utilizzando
.Per impostazione predefinita, Apache è in ascolto sulla porta numero 443 per https. Impostare il numero di porta predefinito per OpenXPKI CA per evitare conflitti.
In /etc/apache2/ports.conf , modificare la porta 443 impostando su una qualsiasi altra porta. Ad esempio:
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>
In /etc/apache2/sites-available/openxpki.conf , aggiungere o modificare la sezione
per associare una nuova porta. Ad esempio, in .In /etc/apache2/sites-available/default-ssl.conf , aggiungere o modificare la sezione
per associare una nuova porta. Ad esempio, modificare in .Riavviare il server Apache utilizzando
.In tinddopenxpkiweb01.dhcp.dev.lexmark.com:9443 (RSA): , immettere la passphrase per le chiavi SSL/TLS .
Per verificare lo stato, eseguire
. L'URL SCEP di OpenXPKI è ora https://ipaddress , mentre l'URL Web è FQDN:9443/openxpki .Eseguire questo comando:
Creare un account utente che abbia accesso al server. Immettere i seguenti dettagli:
htpasswd -c /etc/apache2/.htpasswd <username> New password: Re-type new password: Adding password for user <username>
Passare alla directory
.In nano openxpki.conf , aggiungere le seguenti righe in
:#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>
Aggiungere
prima di SSLEngine nello stesso blocco host virtuale.ServerAlias * DocumentRoot /var/www/ ErrorDocument 401 %{unescape:%00} SSLEngine On
Riavviare il servizio apache2 utilizzando service apache2 restart .
Passare alla seguente directory:
.Per l'host richiesto in nano openxpki.conf , aggiungere SSLVerifyClient require .
Ad esempio, se si utilizza la porta 443, modificare la sezione Virtualhost in:
<VirtualHost *:443> SSLVerifyClient require </VirtualHost>
Rimuovere il comando SSLVerifyClient opzional_no_ca .
Salvare il file, quindi digitare
per uscire da MySQL.Passare alla seguente directory:
.Aprire default.yaml e democa.yaml .
Eseguire questo comando:
Nella sezione authorized_signer , aggiungere quanto segue:
authorized_signer: rule2: subject: CN=,.
Ad esempio, se il nome dell'oggetto del certificato client è test123 , aggiungere quanto segue nella sezione
:authorized_signer: rule1: # Full DN subject: CN=.+:pkiclient,. rule2: subject: CN=test123,.*
Salvare il file, quindi digitare
per uscire da MySQL.Riavviare il servizio OpenXPKI utilizzando
.Avviare il servizio Apache utilizzando
.L'errore di SAN non corrispondente può verificarsi quando si abilitano le informazioni CRL. Questo errore indica che l'IP o il nome host non corrispondono al valore della SAN nel certificato Web. Per evitare di ricevere questo errore, utilizzare il nome di dominio completo (FQDN) nel percorso del CRL anziché l'IP. È anche possibile configurare il certificato Web e utilizzare l'FQDN del sistema nel campo SAN.
Se nella pagina Stato sistema risulta che i token ca-signer-1 e vault-1 sono offline, procedere come segue:
In /etc/openxpki/config.d/realm/realm name/crypto.yaml , modificare il valore della chiave corrispondente.
Riavviare il servizio OpenXPKI.