Gestione dei certificati con l'autorità di certificazione OpenXPKI tramite EST

Questa sezione aiuta l'utente a configurare la OpenXPKI CA versione 3.x.x tramite il protocollo EST.

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 testing _Buster_ - Official Snapshot amd64 DVD Binary-1 20190527-04:04]/ buster contrib main
    # deb cdrom:[Debian GNU/Linux testing _Buster_ - Official Snapshot amd64 DVD Binary-1 20190527-04:04]/ buster contrib main
    
    deb http://security.debian.org/debian-security buster/updates main contrib
    deb-src http://security.debian.org/debian-security buster/updates main contrib
    
    # buster-updates, previously known as 'volatile'
    # A network mirror was not selected during install. The following entries
    # are provided as examples, but you should amend them as appropriate
    # for your mirror of choice.
    #
    deb http://ftp.debian.org/debian/ buster-updates main
    deb-src http://ftp.debian.org/debian/ buster-updates main
    deb http://ftp.us.debian.org/debian/ buster main
    
  6. 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 55D89776 006F632B E0196E3E D2495509 BAFDDC74 22FEAAD2 F055074E 0FE3A724 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/v3/debian/Release.key -O - | apt-key add - .

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

  17. Installare l'associazione MySQL e Perl MySQL utilizzando apt install mariadb-server libdbd-mariadb-perl .

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

  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/ buster main nel file, quindi salvarlo.

  21. Eseguire questi comandi:

    apt-get update

    apt install libapache2-mod-fcgid

  22. Abilitare il modulo fastcgi utilizzando a2enmod fcgid .

  23. Installare il pacchetto di base OpenXPKI utilizzando apt 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): 3.18.2 .
  26. Creare il database vuoto, quindi assegnare l'utente del database utilizzando mariadb -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
    main:
    debug: 0
    type: MariaDB
    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 per MariaDB.
  29. Salvare il file.

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

  31. Digitare 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. Eseguire lo script utilizzando bash /usr/share/doc/libopenxpki-perl/examples/sampleconfig.sh .

  2. Confermare le impostazioni utilizzando openxpkiadm alias --realm democa .

    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
  3. Controllare se l'installazione è avvenuta correttamente utilizzando openxpkictl start .

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

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

    2. Aggiungere il nome utente e le password corrispondenti in un file userdb.yaml . 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
        Nota:  in questo caso estRA si riferisce al nome utente. Per generare la password, digitare openxpkiadm hashpwd . Quando viene visualizzato un messaggio che richiede la password e appare una password crittografata ssha256, copiarla e incollarla nel digest di qualsiasi utente.
      Nota:  i ruoli disponibili nell'accesso Operatore sono RA Operator CA Operator e User.
  5. Immettere il nome utente e la password.

  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 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:

In questo esempio, utilizziamo la directory /etc/certs/openxpki_democa/ per la generazione dei certificati. Tuttavia, è possibile utilizzare qualsiasi directory.

Creazione di un file di configurazione OpenSSL

Il file di configurazione OpenSSL contiene le estensioni X.509 per la generazione e la firma delle richieste di certificato.

  1. Eseguire questo comando:

    nano /etc/certs/openxpki_democa/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:https://FQDN of your system/openxpki/CertEnroll/MYOPENXPKI.crl
    authorityInfoAccess     = caIssuers;URI:https://FQDN of your system/download/MYOPENXPKI.crt
    
    [ v3_datavault_extensions ]
    subjectKeyIdentifier    = hash
    keyUsage                = keyEncipherment
    extendedKeyUsage        = emailProtection
    basicConstraints        = CA:FALSE
    authorityKeyIdentifier  = keyid:always,issuer
    
    [ v3_scep_extensions ]
    subjectKeyIdentifier    = hash
    basicConstraints        = CA:FALSE
    authorityKeyIdentifier  = keyid,issuer
    
    [ v3_web_extensions ]
    subjectKeyIdentifier    = hash
    keyUsage                = critical, digitalSignature, keyEncipherment
    extendedKeyUsage        = serverAuth, clientAuth
    basicConstraints        = critical,CA:FALSE
    subjectAltName          = DNS:FQDN of est server
    crlDistributionPoints   = URI:https://FQDN of your system/openxpki/CertEnroll/MYOPENXPKI_ISSUINGCA.cr
    authorityInfoAccess     = caIssuers;URI:https://FQDN of your system/download/MYOPENXPKI_ISSUINGCA.crt
    
  2. Sostituire 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_democa/pd.pass

  2. Digitare la propria password.

  3. Salvare il file.

Creazione di un certificato CA radice

È possibile creare un certificato CA radice autofirmato o generare una richiesta di certificato e quindi ottenerne la firma dalla CA radice.

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_democa/ca-root-1.key -passout file:/etc/certs/openxpki_democa/pd.pass 4096

  2. Sostituire il soggetto della richiesta con le informazioni della propria CA utilizzando openssl req -new -key /etc/certs/openxpki_democa/ca-root-1.key -out /etc/certs/openxpki_democa/ca-root-1.csr .

  3. Ottenere il certificato firmato dalla CA radice utilizzando openssl req -config /etc/certs/openxpki_democa/openssl.conf -extensions v3_ca_extensions - x509 -days 3560 -in /etc/certs/openxpki_democa/ca-root-1.csr -key /etc/certs/openxpki_democa/ca-root-1.key -out /etc/certs/openxpki_democa/ca-root-1.crt - sha256 .

  4. Accedere a /etc/certs/openxpki_democa/ in cui è salvato ca-root-1.crt .

  5. Eseguire questo comando:

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

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_democa/ca-signer-1.key -passout file:/etc/certs/openxpki_democa/pd.pass 4096

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

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

  4. Eseguire questo comando:

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

Creazione di un certificato del vault

Note:

  1. Eseguire questo comando:

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

  2. Modificare l'oggetto della richiesta con le informazioni della propria CA utilizzando openxpkiadm certificate import --file vault.crt .

  3. Eseguire questo comando:

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

    Nota:  fornire i valori necessari, ma mantenere /CN=DataVault come oggetto.

Creazione di un certificato Web

  1. Eseguire questo comando:

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

  2. Modificare l'oggetto della richiesta con le informazioni della propria CA utilizzando openssl req -config /etc/certs/openxpki_democa/openssl.conf -reqexts v3_web_reqexts -new -key /etc/certs/openxpki_democa/web-1.key -subj /DC=COM/DC=LEXMARK/DC=DEV/DC=CA-ONE/CN=FQDN of your system -out /etc/certs/openxpki_democa/web-1.csr .

  3. Eseguire questo comando:

    openssl x509 -req -extfile /etc/certs/openxpki_democa/openssl.conf -extensions v3_web_extensions -days 900 -in /etc/certs/openxpki_democa/web-1.csr -CA /etc/certs/openxpki_democa/ca-signer-1.crt -CAkey /etc/certs/openxpki_democa/ca-signer-1.key -CAcreateserial -out /etc/certs/openxpki_democa/web-1.crt -sha256

Configurazione del server Web

  1. Eseguire questi comandi:

    a2enmod ssl rewrite headers

    a2ensite openxpki

    a2dissite 000-default default-ssl

    mkdir -m755 -p /etc/openxpki/tls/chain

    cp /etc/certs/openxpki_democa/ca-root-1.crt /etc/openxpki/tls/chain/

    cp /etc/certs/openxpki_democa/ca-signer-1.crt /etc/openxpki/tls/chain/

    c_rehash /etc/openxpki/tls/chain/

    mkdir -m755 -p /etc/openxpki/tls/endentity

    mkdir -m700 -p /etc/openxpki/tls/private

    cp /etc/certs/openxpki_democa/web-1.crt /etc/openxpki/tls/endentity/openxpki.crt

    cat /etc/certs/openxpki_democa/ca-signer-1.crt >> /etc/openxpki/tls/endentity/openxpki.crt

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

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

  2. Riavviare il servizio OpenXPKI utilizzando apache2 restart .

  3. Eseguire questo comando per verificare che l'importazione dei file abbia avuto esito positivo:

    openxpkiadm alias --realm democa

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

Rendere la password della chiave del certificato disponibile per OpenXPKI

  1. Modificare il valore nel file nano /etc/openxpki/config.d/system/crypto.yaml .

  2. Rimuovere il commento dalla cache: daemon under secret: default :

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

Avvio di OpenXPKI

  1. Eseguire il comando openxpkictl start .

    Output di esempio
    Starting OpenXPKI...
    OpenXPKI Server is running and accepting requests.
    DONE.
  2. Accedere al server OpenXPKI:

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

    2. Aggiungere i nomi utente e le password corrispondenti in un file userdb.yaml :

      • Eseguire il check-out a /home/pkiadm e quindi nano userdb.yaml .

      • Incollare quanto segue:

        estRA:  
               digest:"{ssha256}somePassword”
               role: RA Operator
        Nota:  qui estRA si riferisce al nome utente.
      • Per generare la password, digitare openxpkiadm hashpwd . Viene visualizzato un messaggio che mostra la password e una password crittografata ssha256.

      • Copiare la password, quindi incollarla nel digest di qualsiasi utente.

      Nota:  l'accesso Operatore ha due ruoli disponibili preconfigurati: RA Operator, CA Operator e User.
  3. Digitare il nome utente e la password.

  4. 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/democa/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/democa/profile/default.yaml , aggiornare quanto segue:

      • Sezione crl_distribution_points: sezione

        critical: 0
        uri:
            - https://FQDN of the est/openxkpi/CenrtEnroll/[% ISSUER.CN.0 %].crl
            - ldap://localhost/[% ISSUER.DN %]
        
      • Sezione authority_info_access: 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.

      Nota:  il percorso authority_info_access (AIA) viene salvato nella cartella Download, ma è possibile impostare la posizione in base alle proprie preferenze.
    2. In nano /etc/openxpki/config.d/realm/democa/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: 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.

  3. Avviare il servizio OpenXPKI utilizzando openxpkictl start .

Pubblicazione delle informazioni CRL

Dopo aver creato i CRL, è necessario pubblicarli affinché tutti possano accedervi.

  1. Arrestare il servizio Apache utilizzando service apache2 stop .

  2. Creare una directory CertEnroll per il 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 dell'approvazione automatica delle richieste di certificato in OpenXPKI CA

  1. Arrestare il servizio OpenXPKI utilizzando openxpkictl stop .

  2. In /etc/openxpki/config.d/realm/democa/est/default.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 .

Modifica dei dettagli per abilitare il download di ca-certs

  1. Eseguire questo comando:

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

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

  3. Avviare il servizio OpenXPKI utilizzando openxpkictl .

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 democa-two .

Copia e impostazione della directory

  1. Creare una directory, ossia democa2 , per la seconda area di autenticazione all'interno di /etc/openxpki/config.d/realm .

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

  3. 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
    
    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/
    Nuovo contenuto
    # This is the list of realms in this PKI
    # You only need to enable the realms which are visible on the server
    
    democa:
        label: Example.org Demo CA
        baseurl: https://pki.example.com/openxpki/
    
    democa2:
        label: Example.org Demo CA2
        baseurl: https://pki.example.com/openxpki/
  4. Salvare il file.

Configurazione dell'endpoint EST per più aree di autenticazione

È 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 democa e democa2 .

  1. Copiare il file di configurazione predefinito in cp /etc/openxpki/est/default.conf /etc/openxpki/est/democa.conf .

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

    Nota:  In base alle esigenze, potrebbe essere necessario rimuovere i commenti dalle righe corrispondenti per le sezioni simpleenroll , simplereenroll , csrattrs e cacerts . Mantenere i commenti delle sezioni relative all'ambiente. Eseguire la stessa operazione per default.conf .
  3. Creare un altro file di configurazione in cp /etc/openxpki/est/default.conf /etc/openxpki/est/democa2.conf .

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

    Nota:  In base alle esigenze, potrebbe essere necessario rimuovere i commenti dalle righe corrispondenti per le sezioni simpleenroll , simplereenroll , csrattrs e cacerts . Mantenere i commenti delle sezioni relative all'ambiente.
  5. 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

    Nota:  assegnare al file il nome democa.yaml .
  6. 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

    Nota:  assegnare al file il nome democa2.yaml .
  7. Riavviare il servizio OpenXPKI utilizzando openxpkictl restart .

Selezionare i seguenti URL per aprire il server EST corrispondente a un'area di autenticazione tramite un browser Web:

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.

Creazione di un certificato del firmatario

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.

  1. Creare un file di configurazione OpenSSL in nano /etc/certs/openxpki_democa2/openssl.conf .

    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. I file di certificato vengono creati nella directory /etc/certs/openxpki_democa2/ .
  2. Accedere alla directory del certificato del vault nella prima area di autenticazione, quindi importare il certificato dalla prima area di autenticazione.

  3. Eseguire questo codice:

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

Creazione di un file di password per le chiavi dei certificati

  1. Eseguire questo comando:

    nano /etc/certs/openxpki_democa2/pd.pass

  2. Digitare la propria password.

  3. Creare un certificato del firmatario. Per ulteriori informazioni, vedere Creazione di un certificato del firmatario .

  4. Controllare se l'importazione è avvenuta correttamente utilizzando openxpkiadm alias --realm democa2 .

    Nota:  se la password della chiave del certificato è stata modificata durante la creazione del certificato, aggiornare nano /etc/openxpki/config.d/realm/democa2/crypto.yaml .
  5. Generare i CRL per la seconda area di autenticazione. Per ulteriori informazioni, vedere Generazione delle informazioni del CRL .

    Nota:  assicurarsi di utilizzare il nome del certificato CA corretto in base all'area di autenticazione.
  6. Pubblicare i CRL per questa area di autenticazione. Per ulteriori informazioni, vedere Pubblicazione delle informazioni CRL .

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

Abilitazione della presenza contemporanea di più certificati attivi con lo stesso oggetto

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.

  1. In /etc/openxpki/config.d/realm/REALM NAME/est/< REALM NAME >.yaml , nella sezione policy , modificare il valore di max_active_certs 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 .

Impostazione del numero di porta predefinito per OpenXPKI CA

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

  1. In /etc/apache2/ports.conf , modificare la porta 443 impostando su una qualsiasi altra porta. Ad esempio:

    Precedente contenuto
    Listen 80
    
    <IfModule ssl_module>
       Listen 443
    </IfModule>
    
    <IfModule mod_gnutls.c>
      Listen 443
    </IfModule>
    Nuovo contenuto
    Listen 80
    
    <IfModule ssl_module>
       Listen 9443
    </IfModule>
    
    <IfModule mod_gnutls.c>
      Listen 9443
    </IfModule>
  2. In /etc/apache2/sites-available/openxpki.conf , aggiungere o modificare la sezione VirtualHost per associare una nuova porta. Ad esempio, <VirtualHost *:443> in <Virtualhost *:9443> .

  3. In /etc/apache2/sites-available/default-ssl.conf , aggiungere o modificare la sezione VirtualHost_default per associare una nuova porta. Ad esempio, modificare <VirtualHost *:443> in <Virtualhost *:9443> .

  4. Riavviare il server Apache utilizzando systemctl restart apache2 .

    Nota:  se viene richiesta la passphrase SSL/TLS , digitare la password quando si aggiunge il certificato del server Web TLS nel server EST.
  5. In tinddopenxpkiweb01.dhcp.dev.lexmark.com:9443 (RSA): , immettere la passphrase per le chiavi SSL/TLS .

Per verificare lo stato, eseguire netstat -tlpn| grep apache . L'URL SCEP di OpenXPKI è ora https://ipaddress , mentre l'URL Web è FQDN:9443/openxpki .

Abilitazione dell'autenticazione di base

  1. Eseguire questo comando:

    apt -y install apache2-utils

  2. 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>
  3. Passare alla directory cd /etc/apache2/sites-enabled/ .

  4. In nano openxpki.conf , aggiungere le seguenti righe in <Virtualhost *: 443 block> :

    #HTTPS BASIC AUTH FOR LABELS
    Location /.well-known/est/*/simpleenroll
        AuthType Basic
        AuthName "estrealm"
        AuthUserFile /etc/apache2/.htpasswd
        require valid-user
        </Location>
        #HTTPS BASIC AUTH FOR NO LABEL
        <Location /.well-known/est/simpleenroll>
        AuthType Basic
        AuthName "estrealm"
        AuthUserFile /etc/apache2/.htpasswd
        require valid-user
        </Location>
  5. Aggiungere ErrorDocument 401%{unescape:%00} prima di SSLEngine nello stesso blocco host virtuale.

    Esempio
    ServerAlias *
    DocumentRoot /var/www/
    ErrorDocument 401 %{unescape:%00}
    SSLEngine On
  6. Riavviare il servizio apache2 utilizzando service apache2 restart .

    Nota:  l'autenticazione di base funziona utilizzando il nome utente e la password indicati sopra.

Abilitazione dell'autenticazione con certificato client

  1. Passare alla seguente directory: cd /etc/apache2/sites-enabled/ .

  2. 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>
  3. Rimuovere il comando SSLVerifyClient opzional_no_ca .

  4. Salvare il file, quindi digitare quit per uscire da MySQL.

  5. Passare alla seguente directory: cd /etc/openxpki/config.d/realm/democa/est .

  6. Aprire default.yaml e democa.yaml .

    Nota:  Se l'etichetta è diversa, modificare il file YAML.
  7. Eseguire questo comando:

    vi default.yaml

  8. 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 :

    authorized_signer:
    rule1:
    		# Full DN	
    		subject: CN=.+:pkiclient,.
    rule2:	
    		subject: CN=test123,.*
  9. Salvare il file, quindi digitare quit per uscire da MySQL.

  10. Riavviare il servizio OpenXPKI utilizzando openxpkictl restart .

  11. Avviare il servizio Apache utilizzando service apache2 restart .

Che cosa causa dell'errore di SAN non corrispondente che impedisce al sistema di recuperare il CRL?

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.

Perché i token ca-signer-1 e vault-1 sono offline?

Se nella pagina Stato sistema risulta che i token ca-signer-1 e vault-1 sono offline, procedere come segue:

  1. In /etc/openxpki/config.d/realm/realm name/crypto.yaml , modificare il valore della chiave corrispondente.

  2. Riavviare il servizio OpenXPKI.