Questa sezione fornisce istruzioni su come configurare OpenXPKI CA versione 2.5.x mediante il protocollo SCEP (Simple Certificate Enrollment Protocol).
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 8.11.1 _Jessie_ - Official amd64 CD Binary-1 20190211-02:10]/ jessie local main # deb cdrom:[Debian GNU/Linux 8.11.1 _Jessie_ - Official amd64 CD Binary-1 20190211-02:10]/ jessie local main deb http://security.debian.org/ jessie/updates main deb-src http://security.debian.org/ jessie/updates main # jessie-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/jessie-updates main deb-src http://ftp.debian.org/debian/jessie-updates main deb http://ftp.us.debian.org/debian/jessie 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 (jessie) 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.
debug: 0 type: MySQL 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.Immettere la password per il database.
Decomprimere lo script di esempio per installare il certificato utilizzando
.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
.Eseguire l'accesso come Operatore. La password predefinita è
.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 SCEP, firmato dal certificato del firmatario.
Note:
In questo esempio, utilizziamo la directory /etc/certs/openxpki_ca-one/ per la generazione dei certificati. Tuttavia, è possibile utilizzare qualsiasi directory.
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:http://10.195.0.111/CertEnroll/MYOPENXPKI.crl authorityInfoAccess = caIssuers;URI:http://10.195.0.111/CertEnroll/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:stlopenxpki.dhcp.indiadev.lexmark.com crlDistributionPoints = URI:http://10.195.0.111/CertEnroll/MYOPENXPKI_ISSUINGCA.crl authorityInfoAccess = caIssuers;URI:http://10.195.0.111/CertEnroll/MYOPENXPKI_ISSUINGCA.crt
Modificare 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.
Eseguire questi comandi:
Eseguire questo comando:
Modificare l'oggetto della richiesta con le informazioni della propria CA utilizzando
.Ottenere il certificato firmato dalla CA radice utilizzando
.Note:
Eseguire questo comando:
Modificare l'oggetto della richiesta con le informazioni della propria CA utilizzando
.Eseguire questo comando:
Eseguire questi comandi:
Copiare i file di chiave in /etc/openxpki/ca/ca-one.
cp /etc/certs/openxpki_ca-one/ca-signer-1.key /etc/openxpki/ca/ca-one/ cp /etc/certs/openxpki_ca-one/vault-1.key /etc/openxpki/ca/ca-one/ cp /etc/certs/openxpki_ca-one/scep-1.key /etc/openxpki/ca/ca-one/
Creare il collegamento simbolico.
ln -s /etc/openxpki/ca/ca-one/ca-signer-1.key /etc/openxpki/ca/ca-one/ca-signer-1.pem ln -s /etc/openxpki/ca/ca-one/scep-1.key /etc/openxpki/ca/ca-one/scep-1.pem ln -s /etc/openxpki/ca/ca-one/vault-1.key /etc/openxpki/ca/ca-one/vault-1.pem
Importare il certificato radice, il certificato del firmatario, il certificato del vault e il certificato SCEP nel database con i token appropriati.
Eseguire questi comandi:
Controllare se l'importazione è avvenuta correttamente 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
Eseguire il comando
.Starting OpenXPKI... OpenXPKI Server is running and accepting requests. DONE.
Effettuare le seguenti operazioni per accedere al server OpenXPKI:
Nel browser Web, digitare
.Eseguire l'accesso come Operatore. La password predefinita è
.Creare una richiesta di certificato, quindi testarla.
Arrestare il servizio OpenXPKI utilizzando
.In nano /etc/openxpki/config.d/realm/ca-one/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/ca-one/profile/default.yaml, aggiornare quanto segue:
critical: 0 uri: - http://10.195.0.111/CertEnroll/[% ISSUER.CN.0 %].crl - ldap://localhost/[% ISSUER.DN %]
critical: 0 ca_issuers: http://10.195.0.111/CertEnroll/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/ca-one/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: http://10.195.0.111/CertEnroll/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
.Arrestare il servizio Apache utilizzando
.Creare una directory CertEnroll per 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
.Installare il pacchetto openca-tools utilizzando
.Avviare il servizio OpenXPKI utilizzando
.Testare il servizio utilizzando un qualsiasi client, ad esempio certnanny con SSCEP.
Per le richieste automatiche di certificati, stiamo utilizzando la funzione del "firmatario per conto di" di OpenXPKI.
Arrestare il servizio OpenXPKI utilizzando
.In nano /etc/openxpki/config.d/realm/ca-one/scep/generic.yaml, nella sezione
, aggiungere una regola per il nome dell'oggetto del certificato del firmatario.rule1: # Full DN subject: CN=Markvision_.*
Note:
Salvare il file.
Avviare il servizio OpenXPKI utilizzando
.Arrestare il servizio OpenXPKI utilizzando
.In nano /etc/openxpki/config.d/realm/ca-one/scep/generic.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
.In OpenXPKI è possibile configurare più strutture PKI sullo stesso sistema. I seguenti argomenti illustrano come creare un'altra area di autenticazione per MVE denominata ca-two.
Copiare la struttura di directory di esempio /etc/openxpki/config.d/realm/ca-one in una nuova directory (cp -avr /etc/openxpki/config.d/realm/ca-one /etc/openxpki/config.d/realm/ca-two) 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 ca-one: label: Verbose name of this realm baseurl: https://pki.example.com/openxpki/ #ca-two: # 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 ca-one: label: CA-ONE baseurl: https://pki.example.com/openxpki/ ca-two: label: CA-TWO baseurl: https://pki.example.com/openxpki/
Salvare il file.
Le seguenti istruzioni mostrano come generare il certificato del firmatario, il certificato del vault e il certificato SCEP. La CA radice firma il certificato del firmatario, quindi il certificato del firmatario firma il certificato SCEP. Il certificato del vault è autofirmato.
Generare e quindi firmare i certificati. Per ulteriori informazioni, vedere Configurazione manuale di OpenXPKI CA.
Copiare i file di chiave in /etc/openxpki/ca/ca-two/.
cp /etc/certs/openxpki_ca-two/ca-signer-1.key /etc/openxpki/ca/ca-two/ cp /etc/certs/openxpki_ca-two/vault-1.key /etc/openxpki/ca/ca-two/ cp /etc/certs/openxpki_ca-two/scep-1.key /etc/openxpki/ca/ca-two/
Creare il collegamento simbolico. Creare anche un collegamento simbolico per il certificato CA radice.
ln -s /etc/openxpki/ca/ca-one/ca-root-1.crt /etc/openxpki/ca/ca-two/ca-root-1.crt ln -s /etc/openxpki/ca/ca-two/ca-signer-1.key /etc/openxpki/ca/ca-two/ca-signer-1.pem ln -s /etc/openxpki/ca/ca-two/scep-1.key /etc/openxpki/ca/ca-two/scep-1.pem ln -s /etc/openxpki/ca/ca-two/vault-1.key /etc/openxpki/ca/ca-two/vault-1.pem
Importare il certificato del firmatario, il certificato del vault e il certificato SCEP nel database con i token appropriati per
.openxpkiadm certificate import --file /etc/certs/openxpki_ca-two/ca-signer-1.crt --realm ca-two –issuer /etc/openxpki/ca/ca-two/ca-one-1.crt --token certsign openxpkiadm certificate import --file /etc/certs/openxpki_ca-two/scep-1.crt --realm ca-two --token scep openxpkiadm certificate import --file /etc/certs/openxpki_ca-two/vault-1.crt --realm ca-two --token datasafe
Controllare se l'importazione è avvenuta correttamente 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
In questo caso, le informazioni relativa alla CA radice sono le stesse per
e .Se la password della chiave del certificato è stata modificata durante la creazione del certificato, aggiornare nano /etc/openxpki/config.d/realm/ca-two/crypto.yaml.
Generare i CRL per questa area di autenticazione. Per ulteriori informazioni, vedere Generazione delle informazioni del CRL.
Pubblicare i CRL per questa area di autenticazione. Per ulteriori informazioni, vedere Configurazione dell'accessibilità al CRL.
Riavviare il servizio OpenXPKI utilizzando
.Stopping OpenXPKI Stopping gracefully, 3 (sub)processes remaining... DONE. Starting OpenXPKI... OpenXPKI Server is running and accepting requests. DONE.
Effettuare le seguenti operazioni per accedere al server OpenXPKI:
Nel browser Web, digitare
.Eseguire l'accesso come Operatore. La password predefinita è
.L'endpoint SCEP dell'area di autenticazione predefinita è http://<ipaddress>/scep/scep. Se si dispone di più aree di autenticazione, configurare un endpoint SCEP univoco (file di configurazione diverso) per ogni area di autenticazione. Nelle seguenti istruzioni, utilizziamo due aree di autenticazione PKI, ovvero
e .Copiare il file di configurazione predefinito in cp /etc/openxpki/scep/default.conf /etc/openxpki/scep/ca-one.conf.
In nano /etc/openxpki/scep/ca-one.conf, modificare il valore dell'area di autenticazione in
.Creare un altro file di configurazione in cp /etc/openxpki/scep/default.conf /etc/openxpki/scep/ca-two.conf.
In nano /etc/openxpki/scep/ca-two.conf, modificare il valore dell'area di autenticazione in
.Riavviare il servizio OpenXPKI utilizzando
.Gli endpoint SCEP sono i seguenti:
: http://ipaddress/scep/ca-one
: http://ipaddress/scep/ca-two
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.
Per impostazione predefinita, Apache è in ascolto sulla porta numero 80. Impostare il numero di porta predefinito per OpenXPKI CA per evitare conflitti.
In /etc/apache2/ports.conf, aggiungere o modificare una porta. Ad esempio,
.In /etc/apache2/sites-enabled/000-default.conf, aggiungere o modificare la sezione
per associare la nuova porta. Ad esempio, .Riavviare il server Apache utilizzando
.Per verificare lo stato, eseguire
. L'URL SCEP di OpenXPKI è ora http://ipaddress:8080/scep/ca-one, mentre l'URL Web è http://ip address:8080/openxpki.Per impostazione predefinita, OpenXPKI accetta le richieste senza controllare la password di verifica. La richiesta di certificato non viene rifiutata e la CA e l'amministratore CA stabiliscono se approvare o rifiutare la richiesta. Per evitare potenziali problemi di sicurezza, disabilitare questa funzione in modo che tutte le richieste di certificato che contengono password non valide vengano rifiutate immediatamente. In MVE, la Password di verifica è obbligatoria solo quando viene generato il certificato agente di registrazione.
In etc/openxpki/config.d/realm/REALM NAME/scep/generic.yaml, nella sezione
, modificare il valore di da a .Note:
Riavviare il servizio OpenXPKI utilizzando
.In /etc/openxpki/config.d/realm/REALM NAME/profile/I18N_OPENXPKI_PROFILE_TLS_SERVER.yaml, nella sezione
, modificare il valore di in .Note:
Riavviare il servizio OpenXPKI utilizzando
.Per impostazione predefinita, OpenXPKI legge solo il nome comune CN dell'oggetto del certificato richiesto. Il resto delle informazioni, quali il paese, la località e dominio DC, è hardcoded. Ad esempio, se l'oggetto di un certificato è
, , , , , , dopo la firma del certificato tramite SCEP, l'oggetto viene modificato in , , .In /etc/openxpki/config.d/realm/REALM NAME/profile/I18N_OPENXPKI_PROFILE_TLS_SERVER.yaml, nella sezione
, modificare il valore di come segue:CN=[% CN.0 %][% IF OU %][% FOREACH entry = OU %],OU=[% entry %][% END %][% END %][% IF O %][% FOREACH entry = O %],O=[% entry %][% END %][% END %][% IF L %],L=[% L.0 %][% END %][% IF ST %],ST=[% ST.0 %][% END %][% IF C %],C=[% C.0 %][% END %][% IF DC %][% FOREACH entry = DC %],DC=[% entry %][% END %][% END %][% IF EMAIL %][% FOREACH entry = EMAIL %],EMAIL=[% entry %][% END %][% END %]
Salvare il file.
Creare un file denominato l.yaml nella directory /etc/openxpki/config.d/realm/REALM NAME/profile/template.
Aggiungere quanto segue:
id: L label: L description: I18N_OPENXPKI_UI_PROFILE_L_DESC preset: L type: freetext width: 60 placeholder: Kolkata
Salvare il file.
Creare un file denominato st.yaml nella directory /etc/openxpki/config.d/realm/REALM NAME/profile/template.
Aggiungere quanto segue:
id: ST label: ST description: I18N_OPENXPKI_UI_PROFILE_ST_DESC preset: ST type: freetext width: 60 placeholder: WB
Salvare il file.
Riavviare il servizio OpenXPKI utilizzando
.Accedere al server OpenXPKI.
Nel browser Web, digitare
.Eseguire l'accesso come Operatore. La password predefinita è
.Fare clic su Cerca flusso di lavoro > Cerca ora.
Fare clic su un certificato da revocare, quindi sul collegamento del certificato.
Nella sezione Azione fare clic su richiesta di revoca.
Digitare i valori appropriati, quindi fare clic su Continua > Invia richiesta.
Nella pagina successiva approvare la richiesta. La revoca del certificato è in attesa della successiva pubblicazione del CRL.
Nella sezione Funzionamento PKI fare clic su Emettere un elenco di revoche di certificati (CRL).
Fare clic su Applica creazione di elenchi di revoche > Continua.
Nella sezione Funzionamento PKI fare clic su Pubblica CA/CRL.
Fare clic su Cerca flusso di lavoro > Cerca ora.
Fare clic sul certificato revocato con un tipo certificate_revocation_request_v2.
Fare clic su Applica riattivazione.
Nel nuovo CRL è possibile trovare il numero di serie e il motivo di revoca del certificato revocato.