Gestione dei certificati tramite l'autorità di certificazione OpenXPKI

Questa sezione fornisce istruzioni su come configurare OpenXPKI CA versione 2.5.x mediante il protocollo SCEP (Simple Certificate Enrollment Protocol).

Note:

Configurazione di OpenXPKI CA

Installazione di OpenXPKI CA

  1. Collegare il computer utilizzando PuTTY o un altro client.

  2. Dal client, eseguire il comando sudo su - per passare all'utente root.

  3. Immettere la password root.

  4. In nano /etc/apt/sources.list, modificare l'origine per installare gli aggiornamenti.

  5. 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
    
  6. Salvare il file.

  7. Eseguire questi comandi:

    • apt-get update

    • apt-get upgrade

  8. Aggiornare gli elenchi dei certificati CA nel server utilizzando apt-get install ca-certificates.

  9. Installare le impostazioni locali en_US.utf8 utilizzando dpkg-reconfigure locales.

  10. Selezionare le impostazioni locali en_US.UTF-8 UTF-8, quindi impostarle come predefinite per il sistema.

    Nota: utilizzare il tasto Tab e la barra spaziatrice per selezionare e navigare all'interno del menu.
  11. Controllare le impostazioni locali generate utilizzando locale –a.

    Output di esempio
    C
    C.UTF-8
    en_IN
    en_IN.utf8
    en_US.utf8
    POSIX
  12. Copiare l'impronta digitale del pacchetto OpenXPKI utilizzando nano /home/Release.key. Per questo esempio, copiare la chiave in /home.

  13. Digitare 9B156AD0 F0E6A6C7 86FABE7A D8363C4E 1611A2BE 2B251336 01D1CDB4 6C24BEF3 come valore.

  14. Eseguire questo comando:

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

  15. Aggiungere il pacchetto utilizzando il comando wget https://packages.openxpki.org/v2/debian/Release.key -O - | apt-key add -.

  16. Aggiungere il repository all'elenco di origini (jessie) utilizzando echo "deb http://packages.openxpki.org/v2/debian/jessie release" > /etc/apt/sources.list.d/openxpki.list, quindi aptitude update.

  17. Installare l'associazione MySQL e Perl MySQL utilizzando aptitude install mysql-server libdbd-mysql-perl.

  18. Installare apache2.2-common utilizzando aptitude install apache2.2-common.

  19. In nano /etc/apt/sources.list, installare il modulo fastcgi per velocizzare l'interfaccia utente.

    Nota: si consiglia di utilizzare mod-fcgid.
  20. Aggiungere la riga deb http://http.us.debian.org/debian/jessie main nel file, quindi salvarlo.

  21. Eseguire questi comandi:

    apt-get update

    aptitude install libapache2-mod-fcgid

  22. Abilitare il modulo fastcgi utilizzando a2enmod fcgid.

  23. Installare il pacchetto di base OpenXPKI utilizzando aptitude install libopenxpki-perl openxpki-cgi-session-driver openxpki-i18n.

  24. Riavviare il server Apache utilizzando service apache2 restart.

  25. Controllare se l'installazione è avvenuta correttamente utilizzando openxpkiadm version.

    Nota: se l'installazione è riuscita, il sistema mostra la versione di OpenXPKI installata. Ad esempio, Version (core): 2.5.5.
  26. Creare il database vuoto, quindi assegnare l'utente del database utilizzando mysql -u root –p.

    Note:

    • Questo comando deve essere digitato nel client. In caso contrario, non è possibile immettere la password.
    • Digitare la password per MySQL. Per questo esempio, root è l'utente MySQL.
    • openxpki è l'utente su cui è installato OpenXPKI.
    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 /etc/init.d/mysql start per avviarlo.

  27. Digitare quit per uscire da MySQL.

  28. Memorizzare le credenziali usate in /etc/openxpki/config.d/system/database.yaml.

    Contenuto del file di esempio
    debug: 0
    type: MySQL
    name: openxpki
    host: localhost
    port: 3306
    user: openxpki 
    passwd: openxpki
    Nota: modificare user e passwd in modo che corrispondano al nome utente e alla password MySQL.
  29. Salvare il file.

  30. Per uno schema di database vuoto, eseguire zcat /usr/share/doc/libopenxpki-perl/examples/schema-mysql.sql.gz | \mysql -u root --password --database openxpki dal file di schema fornito.

  31. Immettere la password per il database.

Configurazione di OpenXPKI CA mediante lo script predefinito

Nota: lo script predefinito configura solo l'area di autenticazione predefinita, ovvero ca-one. CDP e CRL non sono configurati.
  1. Decomprimere lo script di esempio per installare il certificato utilizzando gunzip -k /usr/share/doc/libopenxpki-perl/examples/sampleconfig.sh.gz.

  2. Eseguire lo script utilizzando bash /usr/share/doc/libopenxpki-perl/examples/sampleconfig.sh.

  3. Confermare le impostazioni utilizzando openxpkiadm alias --realm ca-one.

    Output di esempio
    === 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
  4. Controllare se l'installazione è avvenuta correttamente utilizzando openxpkictl start.

    Output di esempio
    Starting OpenXPKI...
    OpenXPKI Server is running and accepting requests.
    DONE.
  5. Effettuare le seguenti operazioni per accedere al server OpenXPKI:

    1. Nel browser Web, digitare http://ipaddress/openxpki/.

    2. Eseguire l'accesso come Operatore. La password predefinita è openxpki.

      Nota: l'accesso Operatore dispone di due account operatore preconfigurati: raop e raop2.
  6. Creare una richiesta di certificato, quindi testarla.

Configurazione manuale di OpenXPKI CA

Panoramica

Nota: prima di iniziare, assicurarsi di disporre di una conoscenza di base sulla creazione di certificati OpenSSL.

Per configurare manualmente OpenXPKI CA, creare i seguenti certificati:

  1. Certificato CA radice. Per ulteriori informazioni, vedere Creazione di un certificato CA radice.

  2. Certificato del firmatario CA, firmato dalla CA radice. Per ulteriori informazioni, vedere Creazione di un certificato del firmatario.

  3. Certificato del vault di dati, autofirmato. Per ulteriori informazioni, vedere Creazione di un certificato del vault.

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

Creazione di un file di configurazione OpenSSL

  1. Eseguire questo comando:

    nano /etc/certs/openxpki_ca-one/openssl.conf

    Nota: se il server è raggiungibile tramite il nome di dominio completo (FQDN), utilizzare il DNS del server anziché il suo indirizzo IP.
    File di esempio
    # 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
    
  2. Modificare l'indirizzo IP e il nome del certificato CA in base alle informazioni delle proprie impostazioni.

  3. Salvare il file.

Creazione di un file di password per le chiavi dei certificati

  1. Eseguire questo comando:

    nano /etc/certs/openxpki_ca-one/pd.pass

  2. Digitare la propria password.

  3. Salvare il file.

Creazione di un certificato CA radice

Nota: è possibile creare un-certificato CA radice autofirmato o generare una richiesta di certificato e quindi ottenerne la firma dalla CA radice.

Eseguire questi comandi:

Nota: sostituire la lunghezza della chiave, l'algoritmo di firma e il nome del certificato con i valori appropriati.
  1. openssl genrsa -out /etc/certs/openxpki_ca-one/ca-root-1.key -passout file:/etc/certs/openxpki_ca-one/pd.pass 4096

  2. openssl req -new -key /etc/certs/openxpki_ca-one/ca-root-1.key -subj /DC=COM/DC=LEXMARK/DC=DEV/DC=CA-ONE/CN=MYOPENXPKI_ROOTCA -out /etc/certs/openxpki_ca-one/ca-root-1.csr

  3. openssl req -config /etc/certs/openxpki_ca-one/openssl.conf -extensions v3_ca_extensions -x509 -days 3560 -in /etc/certs/openxpki_ca-one/ca-root-1.csr -key /etc/certs/openxpki_ca-one/ca-root-1.key -out /etc/certs/openxpki_ca-one/ca-root-1.crt -sha256

Creazione di un certificato del firmatario

Nota: sostituire la lunghezza della chiave, l'algoritmo di firma e il nome del certificato con i valori appropriati.
  1. Eseguire questo comando:

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

  2. Modificare l'oggetto della richiesta con le informazioni della propria CA utilizzando openssl req -config /etc/certs/openxpki_ca-one/openssl.conf -reqexts v3_ca_reqexts -new -key /etc/certs/openxpki_ca-one/ca-signer-1.key -subj /DC=COM/DC=LEXMARK/DC=DEV/DC=CA-ONE/CN=MYOPENXPKI_ISSUINGCA -out /etc/certs/openxpki_ca-one/ca-signer-1.csr.

  3. Ottenere il certificato firmato dalla CA radice utilizzando openssl x509 -req -extfile /etc/certs/openxpki_ca-one/openssl.conf -extensions v3_issuing_extensions -days 3650 -in /etc/certs/openxpki_ca-one/ca-signer-1.csr -CA /etc/certs/openxpki_ca-one/ca-root-1.crt -CAkey /etc/certs/openxpki_ca-one/ca-root-1.key -CAcreateserial -out /etc/certs/openxpki_ca-one/ca-signer-1.crt -sha256.

Creazione di un certificato del vault

Note:

  1. Eseguire questo comando:

    openssl genrsa -out /etc/certs/openxpki_ca-one/vault-1.key -passout file:/etc/certs/openxpki_ca-one/pd.pass 4096

  2. Modificare l'oggetto della richiesta con le informazioni della propria CA utilizzando openssl req -config /etc/certs/openxpki_ca-one/openssl.conf -reqexts v3_datavault_reqexts -new -key /etc/certs/openxpki_ca-one/vault-1.key -subj /DC=COM/DC=LEXMARK/DC=DEV/DC=CA-ONE/DC=STLOPENXPKI_INTERNAL/CN=MYOPENXPKI_DATAVAULT -out /etc/certs/openxpki_ca-one/vault-1.csr.

  3. Eseguire questo comando:

    openssl req -config /etc/certs/openxpki_ca-one/openssl.conf -extensions v3_datavault_extensions -x509 -days 3560 -in /etc/certs/openxpki_ca-one/vault-1.csr -key /etc/certs/openxpki_ca-one/vault-1.key -out /etc/certs/openxpki_ca-one/vault-1.crt

Creazione di un certificato SCEP

Nota: il certificato SCEP è firmato dal certificato del firmatario.

Eseguire questi comandi:

Nota: sostituire la lunghezza della chiave, l'algoritmo di firma e il nome del certificato con i valori appropriati.
  1. openssl genrsa -out /etc/certs/openxpki_ca-one/scep-1.key -passout file:/etc/certs/openxpki_ca-one/pd.pass 4096

  2. openssl req -config /etc/certs/openxpki_ca-one/openssl.conf -reqexts v3_scep_reqexts -new -key /etc/certs/openxpki_ca-one/scep-1.key -subj /DC=COM/DC=LEXMARK/DC=DEV/DC=CA-ONE/CN=MYOPENXPKI_SCEPCA -out /etc/certs/openxpki_ca-one/scep-1.csr

  3. openssl x509 -req -extfile /etc/certs/openxpki_ca-one/openssl.conf -extensions v3_scep_extensions -days 900 -in /etc/certs/openxpki_ca-one/scep-1.csr -CA /etc/certs/openxpki_ca-one/ca-signer-1.crt -CAkey /etc/certs/openxpki_ca-one/ca-signer-1.key -CAcreateserial -out /etc/certs/openxpki_ca-one/scep-1.crt -sha256

Copia del file di chiave e creazione di un collegamento simbolico

  1. Copiare i file di chiave in /etc/openxpki/ca/ca-one.

    Nota: i file di chiave devono essere leggibili da OpenXPKI.
    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/
  2. Creare il collegamento simbolico.

    Nota: i collegamenti simbolici sono alias utilizzati dalla configurazione predefinita.
    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

Importazione dei certificati

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:

  1. openxpkiadm certificate import --file /etc/certs/openxpki_ca-one/ca-root-1.crt

  2. openxpkiadm certificate import --file /etc/certs/openxpki_ca-one/ca-signer-1.crt --realm ca-one --token certsign

  3. openxpkiadm certificate import --file /etc/certs/openxpki_ca-one/scep-1.crt --realm ca-one --token scep

  4. openxpkiadm certificate import --file /etc/certs/openxpki_ca-one/vault-1.crt --realm ca-one --token datasafe

  5. Controllare se l'importazione è avvenuta correttamente utilizzando openxpkiadm alias --realm ca-one.

    Output di esempio
    === 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
    

Avvio di OpenXPKI

  1. Eseguire il comando openxpkictl start.

    Output di esempio
    Starting OpenXPKI...
    OpenXPKI Server is running and accepting requests.
    DONE.
  2. Effettuare le seguenti operazioni per accedere al server OpenXPKI:

    1. Nel browser Web, digitare http://ipaddress/openxpki/.

    2. Eseguire l'accesso come Operatore. La password predefinita è openxpki.

      Nota: l'accesso Operatore dispone di due account operatore preconfigurati: raop e raop2.
  3. Creare una richiesta di certificato, quindi testarla.

Generazione delle informazioni del CRL

Nota: se il server è raggiungibile tramite il nome di dominio completo (FQDN), utilizzare il DNS del server anziché il suo indirizzo IP.
  1. Arrestare il servizio OpenXPKI utilizzando Openxpkictl stop.

  2. In nano /etc/openxpki/config.d/realm/ca-one/publishing.yaml, aggiornare la sezione connectors: cdp come segue:

    class: Connector::Builtin::File::Path
    LOCATION: /var/www/openxpki/CertEnroll/
    file: "[% ARGS.0 %].crl"
    content: "[% pem %]"
    1. In nano /etc/openxpki/config.d/realm/ca-one/profile/default.yaml, aggiornare quanto segue:

      • Sezione crl_distribution_points:

        critical: 0
        uri:
            - http://10.195.0.111/CertEnroll/[% ISSUER.CN.0 %].crl
            - ldap://localhost/[% ISSUER.DN %]
      • Sezione authority_info_access:

        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.

    2. In nano /etc/openxpki/config.d/realm/ca-one/crl/default.yaml, effettuare le seguenti operazioni:

      • Se necessario, aggiornare nextupdate e renewal.

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

  3. Avviare il servizio OpenXPKI utilizzando Openxpkictl start.

Configurazione dell'accessibilità al CRL

  1. Arrestare il servizio Apache utilizzando service apache2 stop.

  2. Creare una directory CertEnroll per crl nella directory /var/www/openxpki/.

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

  4. Aggiungere un riferimento al file Apache alias.conf utilizzando nano /etc/apache2/mods-enabled/alias.conf.

  5. Dopo la sezione <Directory "/usr/share/apache2/icons">, aggiungere quanto segue:

            	Alias /CertEnroll/ "/var/www/openxpki/CertEnroll/"
             	<Directory "/var/www/openxpki/CertEnroll">
                   Options FollowSymlinks
                   AllowOverride None
                   Require all granted
             	</Directory>
  6. Aggiungere un riferimento nel file apache2.conf utilizzando nano /etc/apache2/apache2.conf.

  7. Aggiungere quanto segue nella sezione Apache2 HTTPD server:

             	<Directory /var/www/openxpki/CertEnroll>
                   Options FollowSymlinks
                   AllowOverride None
                   Allow from all
             	</Directory>
  8. Avviare il servizio Apache utilizzando service apache2 start.

Abilitazione del servizio SCEP

  1. Arrestare il servizio OpenXPKI utilizzando openxpkictl stop.

  2. Installare il pacchetto openca-tools utilizzando aptitude install openca-tools.

  3. Avviare il servizio OpenXPKI utilizzando openxpkictl start.

Testare il servizio utilizzando un qualsiasi client, ad esempio certnanny con SSCEP.

Nota: SSCEP è un client della riga di comando per SCEP. È possibile scaricare SSCEP da https://github.com/certnanny/sscep.

Abilitazione del certificato del "firmatario per conto di" (agente di registrazione)

Per le richieste automatiche di certificati, stiamo utilizzando la funzione del "firmatario per conto di" di OpenXPKI.

  1. Arrestare il servizio OpenXPKI utilizzando openxpkictl stop.

  2. In nano /etc/openxpki/config.d/realm/ca-one/scep/generic.yaml, nella sezione authorized_signer:, aggiungere una regola per il nome dell'oggetto del certificato del firmatario.

    rule1:
            		# Full DN
                		subject: CN=Markvision_.*
    

    Note:

    • In questa regola, qualsiasi CN di certificato che inizia con Markvision_ è il certificato del "firmatario per conto di".
    • Il nome dell'oggetto è impostato in MVE per generare il certificato del "firmatario per conto di".
    • Esaminare lo spazio e il rientro nel file script.
    • Se il CN viene modificato in MVE, aggiungere il CN aggiornato in OpenXPKI.
    • È possibile specificare un solo certificato del "firmatario per conto di", quindi specificare il CN completo.
  3. Salvare il file.

  4. Avviare il servizio OpenXPKI utilizzando openxpkictl start.

Abilitazione dell'approvazione automatica delle richieste di certificato in OpenXPKI CA

  1. Arrestare il servizio OpenXPKI utilizzando openxpkictl stop.

  2. In nano /etc/openxpki/config.d/realm/ca-one/scep/generic.yaml, aggiornare la sezione eligible: come segue:

    Precedente contenuto

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

    Nuovo contenuto

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

    Note:

    • Esaminare lo spazio e il rientro nel file script.
    • Per approvare manualmente i certificati, inserire un commento per value: 1, quindi rimuovere il commento dalle altre righe in cui era stato in precedenza inserito.
  3. Salvare il file.

  4. Avviare il servizio OpenXPKI utilizzando openxpkictl start.

Creazione di una seconda area di autenticazione

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.

Copia e impostazione della directory

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

  2. In /etc/openxpki/config.d/system/realms.yaml, aggiornare la seguente sezione:

    Precedente contenuto
    # 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/
    Nuovo contenuto
    # 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/
  3. Salvare il file.

Creazione dei certificati

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.

  1. Generare e quindi firmare i certificati. Per ulteriori informazioni, vedere Configurazione manuale di OpenXPKI CA.

    Nota: modificare il nome comune del certificato in modo che l'utente possa distinguere facilmente tra i diversi certificati per le diverse aree di autenticazione. Si può modificare DC=CA-ONE in DC=CA-TWO. I file di certificato vengono creati nella /etc/certs/openxpki_ca-two/.
  2. Copiare i file di chiave in /etc/openxpki/ca/ca-two/.

    Nota: i file di chiave devono essere leggibili da OpenXPKI.
    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/
  3. Creare il collegamento simbolico. Creare anche un collegamento simbolico per il certificato CA radice.

    Nota: i collegamenti simbolici sono alias utilizzati dalla configurazione predefinita.
    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
  4. Importare il certificato del firmatario, il certificato del vault e il certificato SCEP nel database con i token appropriati per ca-two.

    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
  5. Controllare se l'importazione è avvenuta correttamente utilizzando openxpkiadm alias --realm ca-two.

    Output di esempio
    === 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 ca-one e ca-two.

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

  7. Generare i CRL per questa area di autenticazione. Per ulteriori informazioni, vedere Generazione delle informazioni del CRL.

  8. Pubblicare i CRL per questa area di autenticazione. Per ulteriori informazioni, vedere Configurazione dell'accessibilità al CRL.

  9. Riavviare il servizio OpenXPKI utilizzando openxpkictl restart.

    Output di esempio
    Stopping OpenXPKI
    Stopping gracefully, 3 (sub)processes remaining...
    DONE.
    Starting OpenXPKI...
    OpenXPKI Server is running and accepting requests.
    DONE.
  10. Effettuare le seguenti operazioni per accedere al server OpenXPKI:

    1. Nel browser Web, digitare http://ipaddress/openxpki/.

    2. Eseguire l'accesso come Operatore. La password predefinita è openxpki.

      Nota: l'accesso Operatore dispone di due account operatore preconfigurati: raop e raop2.

Configurazione dell'endpoint SCEP per più aree di autenticazione

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 ca-one e ca-two.

  1. Copiare il file di configurazione predefinito in cp /etc/openxpki/scep/default.conf /etc/openxpki/scep/ca-one.conf.

    Nota: assegnare al file il nome ca-one.conf.
  2. In nano /etc/openxpki/scep/ca-one.conf, modificare il valore dell'area di autenticazione in realm=ca-one.

  3. Creare un altro file di configurazione in cp /etc/openxpki/scep/default.conf /etc/openxpki/scep/ca-two.conf.

    Nota: assegnare al file il nome ca-two.conf.
  4. In nano /etc/openxpki/scep/ca-two.conf, modificare il valore dell'area di autenticazione in realm=ca-two.

  5. Riavviare il servizio OpenXPKI utilizzando openxpkictl restart.

Gli endpoint SCEP sono i seguenti:

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.

Impostazione del numero di porta predefinito per OpenXPKI CA

Per impostazione predefinita, Apache è in ascolto sulla porta numero 80. Impostare il numero di porta predefinito per OpenXPKI CA per evitare conflitti.

  1. In /etc/apache2/ports.conf, aggiungere o modificare una porta. Ad esempio, Listen 8080.

  2. In /etc/apache2/sites-enabled/000-default.conf, aggiungere o modificare la sezione VirtualHost per associare la nuova porta. Ad esempio, <VirtualHost *:8080>.

  3. Riavviare il server Apache utilizzando systemctl restart apache2.

Per verificare lo stato, eseguire netstat -tlpn| grep apache. L'URL SCEP di OpenXPKI è ora http://ipaddress:8080/scep/ca-one, mentre l'URL Web è http://ip address:8080/openxpki.

Disabilitazione della Password di verifica in OpenXPKI CA

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.

  1. In etc/openxpki/config.d/realm/REALM NAME/scep/generic.yaml, nella sezione policy, modificare il valore di allow_man_authen da 1 a 0.

    Note:

    • REAL NAME è il nome dell'area di autenticazione. Ad esempio, ca-one.
    • Esaminare lo spazio e il rientro nel file script.
  2. Riavviare il servizio OpenXPKI utilizzando openxpkictl restart.

Aggiunta dell'EKU di autenticazione client nei certificati

  1. In /etc/openxpki/config.d/realm/REALM NAME/profile/I18N_OPENXPKI_PROFILE_TLS_SERVER.yaml, nella sezione extended_key_usage:, modificare il valore di client_auth: in 1.

    Note:

    • REAL NAME è il nome dell'area di autenticazione. Ad esempio, ca-one.
    • Esaminare lo spazio e il rientro nel file script.
  2. Riavviare il servizio OpenXPKI utilizzando openxpkictl restart.

Recupero dell'oggetto del certificato completo quando si effettua la richiesta tramite SCEP

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 è C=US, ST=KY, L=Lexington, O=Lexmark, OU=ISS, CN=ET0021B7C34AEC.dhcp.dev.lexmark.com, dopo la firma del certificato tramite SCEP, l'oggetto viene modificato in DC=Test Deployment, DC= OpenXPKI, CN=ET0021B7C34AEC.dhcp.dev.lexmark.com.

Nota: REAL NAME è il nome dell'area di autenticazione. Ad esempio, ca-one.
  1. In /etc/openxpki/config.d/realm/REALM NAME/profile/I18N_OPENXPKI_PROFILE_TLS_SERVER.yaml, nella sezione enroll, modificare il valore di dn 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 %]
  2. Salvare il file.

  3. Creare un file denominato l.yaml nella directory /etc/openxpki/config.d/realm/REALM NAME/profile/template.

  4. Aggiungere quanto segue:

    id: L
    label: L
    description: I18N_OPENXPKI_UI_PROFILE_L_DESC
    preset: L
    type: freetext
    width: 60
    placeholder: Kolkata
  5. Salvare il file.

  6. Creare un file denominato st.yaml nella directory /etc/openxpki/config.d/realm/REALM NAME/profile/template.

  7. Aggiungere quanto segue:

    id: ST
    label: ST
    description: I18N_OPENXPKI_UI_PROFILE_ST_DESC
    preset: ST
    type: freetext
    width: 60
    placeholder: WB
  8. Salvare il file.

    Nota: OpenXPKI deve contenere entrambi i file e deve essere leggibile, scrivibile e eseguibile.
  9. Riavviare il servizio OpenXPKI utilizzando openxpkictl restart.

Revoca dei certificati e configurazione dell'accessibilità al CRL

  1. Accedere al server OpenXPKI.

    1. Nel browser Web, digitare http://ipaddress/openxpki/.

    2. Eseguire l'accesso come Operatore. La password predefinita è openxpki.

      Nota: l'accesso Operatore dispone di due account operatore preconfigurati: raop e raop2.
  2. Fare clic su Cerca flusso di lavoro > Cerca ora.

  3. Fare clic su un certificato da revocare, quindi sul collegamento del certificato.

  4. Nella sezione Azione fare clic su richiesta di revoca.

  5. Digitare i valori appropriati, quindi fare clic su Continua > Invia richiesta.

  6. Nella pagina successiva approvare la richiesta. La revoca del certificato è in attesa della successiva pubblicazione del CRL.

  7. Nella sezione Funzionamento PKI fare clic su Emettere un elenco di revoche di certificati (CRL).

  8. Fare clic su Applica creazione di elenchi di revoche > Continua.

  9. Nella sezione Funzionamento PKI fare clic su Pubblica CA/CRL.

  10. Fare clic su Cerca flusso di lavoro > Cerca ora.

  11. Fare clic sul certificato revocato con un tipo certificate_revocation_request_v2.

  12. Fare clic su Applica riattivazione.

Nel nuovo CRL è possibile trovare il numero di serie e il motivo di revoca del certificato revocato.