Verwalten von Zertifikaten mit OpenXPKI Certificate Authority über EST

Dieser Abschnitt hilft dem Benutzer bei der Konfiguration von OpenXPKI CA Version 3.x.x mit dem EST-Protokoll.

Hinweise:

Konfigurieren von OpenXPKI CA

Installieren von OpenXPKI CA

  1. Verbinden Sie den Computer mit PuTTY oder einem anderen Client.

  2. Führen Sie auf dem Client den Befehl sudo su - aus, um zum Root-Benutzer zu gelangen.

  3. Geben Sie das Root-Kennwort ein.

  4. Ändern Sie in nano /etc/apt/sources.list die Quelle zum Installieren der Updates.

  5. Aktualisieren Sie die Datei. Beispiel:

    #
    
    # 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. Speichern Sie die Datei.

  7. Führen Sie die folgenden Befehle aus:

    • apt-get Update

    • apt-get Upgrade

  8. Aktualisieren Sie die CA-Zertifikatlisten auf dem Server mit apt-get install ca-certificates .

  9. Installieren Sie en_US.utf8 locale mit dpkg-reconfigure locales .

  10. Wählen Sie das Gebietsschema en_US.UTF-8 UTF-8 aus, und machen Sie es anschließend zum standardmäßigen Gebietsschema für das System.

    Hinweis:  Verwenden Sie die Tabulatortaste und die Leertaste zum Auswählen und Navigieren im Menü.
  11. Prüfen Sie die Gebietsschemas, die Sie mit locale –a generiert haben.

    Beispielausgabe
    C
    C.UTF-8
    en_IN
    en_IN.utf8
    en_US.utf8
    POSIX
  12. Kopieren Sie den Fingerabdruck des OpenXPKI-Pakets mit nano /home/Release.key . Kopieren Sie den Schlüssel beispielsweise in /home .

  13. Geben Sie 55D89776 006F632B E0196E3E D2495509 BAFDDC74 22FEAAD2 F055074E 0FE3A724 als Wert ein.

  14. Führen Sie den folgenden Befehl aus:

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

  15. Fügen Sie das Paket mit dem Befehl wget https://packages.openxpki.org/v3/debian/Release.key -O - | apt-key add - hinzu.

  16. Fügen Sie das Repository mit echo "deb http://packages.openxpki.org/v3/debian/ buster release" > /etc/apt/sources.list.d/openxpki.list und anschließend apt update zu Ihrer Quellenliste (buster) hinzu.

  17. Installieren Sie MySQL und Perl MySQL-Binding mit apt install mariadb-server libdbd-mariadb-perl .

  18. Installieren Sie apache2.2-common mit apt install apache2 .

  19. Installieren Sie in nano /etc/apt/sources.list das fastcgi-Modul, um die Benutzeroberfläche zu beschleunigen.

    Hinweis:  Wir empfehlen die Verwendung von mod_fcgid .
  20. Fügen Sie die Zeile deb http://http.us.debian.org/debian/buster main in der Datei hinzu und speichern Sie sie.

  21. Führen Sie die folgenden Befehle aus:

    apt-get Update

    apt install libapache2-mod-fcgid

  22. Aktivieren Sie das fastcgi-Modul mit a2enmod fcgid .

  23. Installieren Sie das OpenXPKI-Kernpaket mit apt install libopenxpki-perl openxpki-cgi-session-driver openxpki-i18n .

  24. Starten Sie den Apache Server mit service apache2 restart neu.

  25. Prüfen Sie mit openxpkiadm version , ob die Installation erfolgreich war.

    Hinweis:  Wenn die Installation erfolgreich war, zeigt das System die Version der installierten OpenXPKI an. Beispiel: Version (core): 3.18.2 .
  26. Erstellen Sie die leere Datenbank, und weisen Sie anschließend den Datenbankbenutzer mit mariadb -u root -p zu.

    Hinweise:

    • Dieser Befehl muss in den Client eingegeben werden. Andernfalls können Sie das Kennwort nicht eingeben.
    • Geben Sie das Passwort für MySQL ein. In diesem Beispiel ist root der MySQL-Benutzer.
    • openxpki ist der Benutzer, auf dem OpenXPKI installiert ist.
    CREATE DATABASE openxpki CHARSET utf8; 
    CREATE USER 'openxpki'@'localhost' IDENTIFIED BY 'openxpki';
    GRANT ALL ON openxpki.* TO 'openxpki'@'localhost';
    flush privileges;

    Wenn der MySQL-Service nicht läuft, führen Sie /etc/init.d/mysql start aus, um den Service zu starten.

  27. Geben Sie quit ein, um MySQL zu beenden.

  28. Speichern Sie die verwendeten Zugangsdaten in /etc/openxpki/config.d/system/database.yaml .

    Beispielhafter Datei-Inhalt
    main:
    debug: 0
    type: MariaDB
    name: openxpki
    host: localhost
    port: 3306
    user: openxpki 
    passwd: openxpki
    Hinweis:  Ändern Sie user und passwd so, dass sie mit dem MariaDB-Benutzernamen und -Kennwort übereinstimmen.
  29. Speichern Sie die Datei.

  30. Führen Sie für ein leeres Datenbankschema zcat /usr/share/doc/libopenxpki-perl/examples/schema-mariadb.sql.gz | \ mysql -u root --password --database openxpki aus der bereitgestellten Schemadatei aus.

  31. Geben Sie das Kennwort für die Datenbank ein.

Konfigurieren von OpenXPKI CA mit Standardskript

Hinweis:  Das Standardskript konfiguriert nur den Standardbereich ca-one . CDP und CRLs sind nicht konfiguriert.
  1. Führen Sie das Skript mit bash /usr/share/doc/libopenxpki-perl/examples/sampleconfig.sh aus.

  2. Bestätigen Sie die Installation mit openxpkiadm alias --realm democa .

    Beispielausgabe
    === 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. Prüfen Sie mit openxpkictl start , ob die Installation erfolgreich war.

    Beispielausgabe
    Starting OpenXPKI...
    OpenXPKI Server is running and accepting requests.
    DONE.
  4. Gehen Sie folgendermaßen vor, um auf den OpenXPKI-Server zuzugreifen:

    1. Geben Sie in einem Webbrowser http://ipaddress/openxpki/ ein.

    2. Fügen Sie den Benutzernamen und die entsprechenden Kennwörter in einer userdb.yaml -Datei hinzu. Gehen Sie wie folgt vor, um den Benutzernamen und das Kennwort hinzuzufügen:

      • Checken Sie aus zu /home/pkiadm und dann nano userdb.yaml .

      • Fügen Sie Folgendes ein:

        estRA:  
               digest:"{ssha256}somePassword”
               role: RA Operator
        Hinweis:  In diesem Fall bezieht sich estRA auf den Benutzernamen. Geben Sie openxpkiadm hashpwd ein, um das Kennwort zu generieren. Wenn eine Meldung angezeigt wird, in der nach dem Kennwort und einem verschlüsselten ssha256-Kennwort gefragt wird, kopieren Sie es und fügen Sie es in den Digest eines beliebigen Benutzers ein.
      Hinweis:  Die verfügbaren Rollen in der Bedieneranmeldung sind „RA-Bediener“, „CA-Bediener“ und „Benutzer“.
  5. Geben Sie den Benutzernamen und das Kennwort ein.

  6. Erstellen Sie eine Zertifikatsanforderung, und testen Sie sie.

Manuelles Konfigurieren von OpenXPKI CA

Übersicht

Hinweis:  Stellen Sie zu Beginn sicher, dass Sie über die grundlegenden Kenntnisse für das Erstellen von OpenSSL-Zertifikaten verfügen.

Erstellen Sie zum manuellen Konfigurieren der OpenXPKI CA Folgendes:

  1. Root-CA-Zertifikat Weitere Informationen finden Sie unter Erstellen eines Root-CA-Zertifikats .

  2. CA-Signaturgeberzertifikat, signiert von der Root-CA. Weitere Informationen finden Sie unter Erstellen eines Signaturgeberzertifikats .

  3. Datentresorzertifikat, selbstsigniert. Weitere Informationen finden Sie unter Erstellen eines Tresorzertifikats .

  4. Web-Zertifikat, vom Signaturgeberzertifikat signiert. Weitere Informationen finden Sie unter Einrichten des Webservers .

Hinweise:

Ab Version 3.10 können Sie die Schlüssel direkt mit dem Befehl openxpkiadm alias verwalten:

In diesem Fall verwenden wir das Verzeichnis /etc/certs/openxpki_democa/ zur Zertifikatgenerierung. Sie können jedoch jedes beliebige Verzeichnis verwenden.

Erstellen einer OpenSSL-Konfigurationsdatei

Die OpenSSL-Konfigurationsdatei enthält X.509-Erweiterungen zum Generieren und Signieren von Zertifikatsanforderungen.

  1. Führen Sie den folgenden Befehl aus:

    nano /etc/certs/openxpki_democa/openssl.conf

    Hinweis:  Wenn Ihr Server unter Verwendung des FQDN (Fully Qualified Domain Name) erreichbar ist, verwenden Sie den DNS des Servers anstelle seiner IP-Adresse.
    Beispieldatei
    # 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. Ersetzen Sie die IP-Adresse und den CA-Zertifikatnamen mit den Setup-Informationen.

  3. Speichern Sie die Datei.

Erstellen einer Kennwortdatei für Zertifikatschlüssel

  1. Führen Sie den folgenden Befehl aus:

    nano /etc/certs/openxpki_democa/pd.pass

  2. Geben Sie Ihr Kennwort ein.

  3. Speichern Sie die Datei.

Erstellen eines Root-CA-Zertifikats

Sie können ein selbstsigniertes Root-CA-Zertifikat erstellen oder eine Zertifikatsanforderung generieren und diese anschließend von der Root-CA signieren lassen.

Hinweis:  Ersetzen Sie die Schlüssellänge, den Signaturalgorithmus und den Zertifikatnamen durch die entsprechenden Werte.
  1. Führen Sie den folgenden Befehl aus:

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

  2. Ersetzen Sie den Betreff in der Anforderung durch Ihre CA-Informationen mit openssl req -new -key /etc/certs/openxpki_democa/ca-root-1.key -out /etc/certs/openxpki_democa/ca-root-1.csr .

  3. Rufen Sie das von der Root-CA signierte Zertifikat mit 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 auf.

  4. Gehen Sie zu /etc/certs/openxpki_democa/ , wo ca-root-1.crt gespeichert ist.

  5. Führen Sie den folgenden Befehl aus:

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

Erstellen eines Signaturgeberzertifikats

Hinweis:  Ersetzen Sie die Schlüssellänge, den Signaturalgorithmus und den Zertifikatnamen durch die entsprechenden Werte.
  1. Führen Sie den folgenden Befehl aus:

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

  2. Ersetzen Sie den Betreff in der Anforderung mit Ihren CA-Informationen mit 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. Rufen Sie das von der Root-CA signierte Zertifikat mit 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 ab.

  4. Führen Sie den folgenden Befehl aus:

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

Erstellen eines Tresorzertifikats

Hinweise:

  1. Führen Sie den folgenden Befehl aus:

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

  2. Ändern Sie den Betreff in der Anforderung mit Ihren CA-Informationen mit openxpkiadm certificate import --file vault.crt .

  3. Führen Sie den folgenden Befehl aus:

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

    Hinweis:  Geben Sie die erforderlichen Werte an, behalten Sie /CN=DataVault als Betreff bei.

Erstellen eines Webzertifikats

  1. Führen Sie den folgenden Befehl aus:

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

  2. Ersetzen Sie den Betreff in der Anforderung mit Ihren CA-Informationen mit 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. Führen Sie den folgenden Befehl aus:

    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

Einrichten des Webservers

  1. Führen Sie die folgenden Befehle aus:

    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. Starten Sie den Apache-Dienst mit apache2 restart neu.

  3. Führen Sie den folgenden Befehl aus, um den erfolgreichen Import der Dateien zu prüfen:

    openxpkiadm alias --realm democa

    Beispielausgabe
    === 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
    

Verfügbar machen des Kennworts des Zertifikatschlüssels für OpenXPKI

  1. Ändern Sie den Wert in der Datei nano /etc/openxpki/config.d/system/crypto.yaml .

  2. Kommentare für Cache aufheben: Daemon unter secret: Standard :

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

Starten von OpenXPKI

  1. Führen Sie den Befehl openxpkictl start aus.

    Beispielausgabe
    Starting OpenXPKI...
    OpenXPKI Server is running and accepting requests.
    DONE.
  2. Greifen Sie auf den OpenXPKI-Server zu:

    1. Geben Sie in einem Webbrowser http://ipaddress/openxpki/ ein.

    2. Fügen Sie die Benutzernamen und entsprechenden Kennwörter in einer userdb.yaml -Datei hinzu:

      • Checken Sie aus zu /home/pkiadm und dann zu nano userdb.yaml .

      • Fügen Sie Folgendes ein:

        estRA:  
               digest:"{ssha256}somePassword”
               role: RA Operator
        Hinweis:  Hier verweist estRA auf den Benutzernamen.
      • Geben Sie openxpkiadm hashpwd ein, um das Kennwort zu generieren. Eine Meldung mit dem Kennwort und einem verschlüsselten ssha256-Kennwort wird angezeigt.

      • Kopieren Sie das Kennwort und fügen Sie es dann in den Digest eines beliebigen Benutzers ein.

      Hinweis:  Die Bedieneranmeldung verfügt über zwei vorkonfigurierte Rollen: RA-Bediener, CA-Bediener und Benutzer.
  3. Geben Sie den Benutzernamen und das Kennwort ein.

  4. Erstellen Sie eine Zertifikatsanforderung, und testen Sie sie.

Generieren von CRL-Informationen

Hinweis:  Wenn Ihr Server über FQDN erreichbar ist, verwenden Sie den DNS des Servers anstelle seiner IP-Adresse.
  1. Stoppen Sie den OpenXPKI-Service mit openxpkictl stop .

  2. Aktualisieren Sie in nano /etc/openxpki/config.d/realm/democa/publishing.yaml den Abschnitt connectors: cdp wie folgt:

    class: Connector::Builtin::File::Path
    LOCATION: /var/www/openxpki/CertEnroll/
    file: "[% ARGS.0 %].crl"
    content: "[% pem %]"
    1. Aktualisieren Sie in nano /etc/openxpki/config.d/realm/democa/profile/default.yaml Folgendes:

      • crl_distribution_points: section

        critical: 0
        uri:
            - https://FQDN of the est/openxkpi/CenrtEnroll/[% ISSUER.CN.0 %].crl
            - ldap://localhost/[% ISSUER.DN %]
        
      • authority_info_access: section

        critical: 0
        ca_issuers: http://FQDN of the est/download/MYOPENXPKI.crt
        ocsp: http://ocsp.openxpki.org/

      Ändern Sie die IP-Adresse und den CA-Zertifikatnamen entsprechend Ihrem CA-Server.

      Hinweis:  Der Pfad Authority_Info_Access (AIA) wird im Download -Ordner gespeichert. Sie können den Speicherort jedoch nach Ihren Wünschen festlegen.
    2. Gehen Sie in nano /etc/openxpki/config.d/realm/democa/crl/default.yaml wie folgt vor:

      • Aktualisieren Sie ggf. nextupdate und renewal .

      • Fügen Sie ca_issuers zum folgenden Abschnitt hinzu:

        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/
        

        Ändern Sie die IP-Adresse und den CA-Zertifikatnamen entsprechend Ihrem CA-Server.

  3. Starten Sie den OpenXPKI-Service mit openxpkictl start .

Veröffentlichen von CRL-Informationen

Nach dem Erstellen der CRLs müssen Sie diese veröffentlichen, damit alle darauf zugreifen können.

  1. Beenden Sie den Apache-Dienst mit service apache2 stop .

  2. Erstellen Sie ein Verzeichnis CertEnroll für CRL im Verzeichnis /var/www/openxpki/ .

  3. Legen Sie openxpki als Eigentümer dieses Verzeichnisses fest, und konfigurieren Sie anschließend die Berechtigungen für das Lesen und Ausführen von Apache sowie für andere Dienste als schreibgeschützt.

    chown openxpki /var/www/openxpki/CertEnroll

    chmod 755 /var/www/openxpki/CertEnroll

  4. Fügen Sie eine Referenz zur Apache-Datei alias.conf mit nano /etc/apache2/mods-enabled/alias.conf hinzu.

  5. Fügen Sie nach dem Abschnitt <Directory "/usr/share/apache2/icons"> Folgendes hinzu:

            	Alias /CertEnroll/ "/var/www/openxpki/CertEnroll/"
             	<Directory "/var/www/openxpki/CertEnroll">
                   Options FollowSymlinks
                   AllowOverride None
                   Require all granted
             	</Directory>
  6. Fügen Sie eine Referenz in der Datei apache2.conf mit nano /etc/apache2/apache2.conf hinzu.

  7. Fügen Sie im Abschnitt Apache2 HTTPD server Folgendes hinzu:

             	<Directory /var/www/openxpki/CertEnroll>
                   Options FollowSymlinks
                   AllowOverride None
                   Allow from all
             	</Directory>
  8. Starten Sie den Apache-Dienst mit service apache2 start .

Aktivieren der automatischen Genehmigung von Zertifikatsanforderungen in OpenXPKI CA

  1. Stoppen Sie den OpenXPKI-Service mit openxpkictl stop .

  2. Aktualisieren Sie in /etc/openxpki/config.d/realm/democa/est/default.yaml die Berechtigung: section:

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

    Hinweise:

    • Überprüfen Sie den Abstand und den Einzug in der Skriptdatei.
    • Um Zertifikate manuell zu genehmigen, kennzeichnen Sie value: 1 als Kommentar, und entfernen Sie das Kommentarzeichen in den anderen Zeilen, die zuvor als Kommentare gekennzeichnet waren.
  3. Speichern Sie die Datei.

  4. Starten Sie den OpenXPKI-Service mit openxpkictl start .

Ändern von Details, um ca-cert-Download zu aktivieren

  1. Führen Sie den folgenden Befehl aus:

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

  2. Ersetzen Sie my $mime = "application/pkcs7-mime; smime-type=certs-only"; mit my $mime = "application/pkcs7-mime"; .

  3. Starten Sie den OpenXPKI-Service mit openxpkictl .

Erstellen eines zweiten Bereichs

In OpenXPKI können Sie mehrere PKI-Strukturen im selben System konfigurieren. In den folgenden Themen wird gezeigt, wie ein weiterer Bereich für MVE mit dem Namen democa-two erstellt wird.

Kopieren und Festlegen des Verzeichnisses

  1. Erstellen Sie ein Verzeichnis, nämlich democa2 , für den zweiten Bereich in /etc/openxpki/config.d/realm .

  2. Kopieren Sie die Beispielverzeichnisstruktur /etc/openxpki/config.d/realm/ca-one in ein neues Verzeichnis ( cp -r /etc/openxpki/config.d/realm.tpl/*/etc/openxpki/config.d/realm/democa2 ) in dem Bereichsverzeichnis.

  3. Aktualisieren Sie in /etc/openxpki/config.d/system/realms.yaml den folgenden Bereich:

    Alter Inhalt
    # 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/
    Neuer Inhalt
    # 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. Speichern Sie die Datei.

Konfigurieren des EST-Endpunkts für mehrere Bereiche

Sie können den EST-Endpunkt mit einem Tupel konfigurieren, das aus dem Berechtigungsteil der URI und der optionalen Beschriftung besteht (z. B. www.example.com:80 und arbitraryLabel1). In den folgenden Anweisungen verwenden wir zwei PKI-Bereiche: democa und democa2 .

  1. Kopieren Sie die Standardkonfigurationsdatei in cp /etc/openxpki/est/default.conf /etc/openxpki/est/democa.conf .

    Hinweis:  Benennen Sie die Datei democa.conf .
  2. Ändern Sie in nano /etc/openxpki/est/democa.conf den Bereichswert zu realm=democa .

    Hinweis:  Je nach Ihren Anforderungen müssen Sie möglicherweise die entsprechenden Zeilen für die Abschnitte simpleenroll , simplereenroll , csrattrs und cacerts aufheben. Lassen Sie die Umgebungsabschnitte kommentiert. Führen Sie den gleichen Vorgang für default.conf aus.
  3. Erstellen Sie eine weitere Konfigurationsdatei in cp /etc/openxpki/est/default.conf /etc/openxpki/est/democa2.conf .

    Hinweis:  Benennen Sie die Datei democa2.conf .
  4. Ändern Sie in nano /etc/openxpki/est/democa2.conf den Bereichswert zu realm=democa2

    Hinweis:  Je nach Ihren Anforderungen müssen Sie möglicherweise die entsprechenden Zeilen für die Abschnitte simpleenroll , simplereenroll , csrattrs und cacerts aufheben. Lassen Sie die Umgebungsabschnitte kommentiert.
  5. Kopieren Sie die Datei default.yaml in die folgenden Speicherorte:

    • cp /etc/openxpki/config.d/realm/democa/est/default.yaml

    • /etc/openxpki/config.d/realm/democa/est/democa.yaml

    Hinweis:  Benennen Sie die Datei democa.yaml .
  6. Kopieren Sie die Datei default.yaml in die folgenden Speicherorte:

    • cp /etc/openxpki/config.d/realm/democa2/est/default.yaml

    • /etc/openxpki/config.d/realm/democa2/est/democa2.yaml

    Hinweis:  Benennen Sie die Datei democa2.yaml .
  7. Starten Sie den OpenXPKI-Dienst mit openxpkictl restart neu.

Wählen Sie die folgenden URLs aus, um den EST-Server zu öffnen, der einem Bereich über einen Webbrowser entspricht:

Wenn Sie zwischen Anmeldeinformationen und Standardzertifikatvorlagen für verschiedene PKI-Bereiche unterscheiden möchten, benötigen Sie möglicherweise eine erweiterte Konfiguration.

Erstellen eines Signaturgeberzertifikats

Die folgenden Anweisungen zeigen, wie ein Signaturgeberzertifikat im zweiten Bereich generiert wird. Sie können dieselben Stamm- und Tresorzertifikate wie im ersten Bereich verwenden.

  1. Erstellen Sie eine OpenSSL-Konfigurationsdatei in nano /etc/certs/openxpki_democa2/openssl.conf .

    Hinweis:  Ändern Sie den gemeinsamen Zertifikatnamen, damit der Benutzer leicht zwischen verschiedenen Zertifikaten für verschiedene Bereiche unterscheiden kann. Die Zertifikatdateien werden im Verzeichnis /etc/certs/openxpki_democa2/ erstellt.
  2. Wechseln Sie zum Verzeichnis des Tresorzertifikats im ersten Bereich und importieren Sie das Zertifikat aus dem ersten Bereich.

  3. Führen Sie den folgenden Code aus:

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

Erstellen einer Kennwortdatei für Zertifikatschlüssel

  1. Führen Sie den folgenden Befehl aus:

    nano /etc/certs/openxpki_democa2/pd.pass

  2. Geben Sie Ihr Kennwort ein.

  3. Erstellen Sie ein Signaturgeberzertifikat. Weitere Informationen finden Sie unter Erstellen eines Signaturgeberzertifikats .

  4. Prüfen Sie mit openxpkiadm alias --realm democa2 , ob der Import erfolgreich war.

    Hinweis:  Wenn Sie das Schlüsselkennwort des Zertifikats während der Zertifikatserstellung geändert haben, aktualisieren Sie nano /etc/openxpki/config.d/realm/democa2/crypto.yaml .
  5. Generieren Sie die CRLs für den zweiten Bereich. Weitere Informationen finden Sie unter Generieren von CRL-Informationen .

    Hinweis:  Stellen Sie sicher, dass Sie den richtigen CA-Zertifikatsnamen entsprechend des Bereichs verwenden.
  6. Veröffentlichen Sie die CRLs für diesen Bereich. Weitere Informationen finden Sie unter Veröffentlichen von CRL-Informationen .

  7. Starten Sie den OpenXPKI-Dienst mit openxpkictl restart neu.

    Beispielausgabe
    Stopping OpenXPKI
    Stopping gracefully, 3 (sub)processes remaining...
    DONE.
    Starting OpenXPKI...
    OpenXPKI Server is running and accepting requests.
    DONE.

Gleichzeitiges Aktivieren mehrerer aktiver Zertifikate mit demselben Betreff

Standardmäßig kann in OpenXPKI nur ein Zertifikat mit demselben Betreff-Namen gleichzeitig aktiv sein. Wenn Sie jedoch mehrere benannte Zertifikate durchsetzen, müssen mehrere aktive Zertifikate mit demselben Betreff-Namen gleichzeitig vorhanden sein.

  1. Ändern Sie in /etc/openxpki/config.d/realm/REALM NAME/est/< REALM NAME >.yaml im Abschnitt Richtlinie den Wert für max_active_certs von 1 zu 0 .

    Hinweise:

    • REALM NAME ist der Name des Bereichs. Zum Beispiel: ca-one .
    • Überprüfen Sie den Abstand und den Einzug in der Skriptdatei.
  2. Starten Sie den OpenXPKI-Dienst mit openxpkictl restart neu.

Festlegen der Standard-Anschlussnummer für OpenXPKI CA

Standardmäßig hört Apache für https auf Anschlussnummer 443. Legen Sie die Standard-Anschlussnummer für OpenXPKI CA fest, um Konflikte zu vermeiden.

  1. Ändern Sie in /etc/apache2/Ports.conf den 443-Anschluss zu einem anderen Anschluss. Beispiel:

    Alter Inhalt
    Listen 80
    
    <IfModule ssl_module>
       Listen 443
    </IfModule>
    
    <IfModule mod_gnutls.c>
      Listen 443
    </IfModule>
    Neuer Inhalt
    Listen 80
    
    <IfModule ssl_module>
       Listen 9443
    </IfModule>
    
    <IfModule mod_gnutls.c>
      Listen 9443
    </IfModule>
  2. Fügen Sie in /etc/apache2/sites-available/openxpki.conf den Abschnitt VirtualHost hinzu, oder ändern Sie ihn, um einen neuen Anschluss zuzuordnen. Zum Beispiel: <VirtualHost *:443> zu <VirtualHost *:9443> .

  3. Fügen Sie in /etc/apache2/sites-available/default-ssl.conf VirtualHost hinzu, oder ändern Sie ihn, um einen neuen Anschluss zuzuordnen. Zum Beispiel: <VirtualHost *:443> zu <VirtualHost *:9443> .

  4. Starten Sie den Apache-Server mit systemctl restart apache2 neu.

    Hinweis:  Wenn Sie nach der SSL-/TLS -Passphrase gefragt werden, geben Sie das Kennwort ein, während Sie das TLS-Webserverzertifikat im EST-Server hinzufügen.
  5. Geben Sie in tinddopenxpkiweb01.dhcp.dev.lexmark.com:9443 (RSA): die Passphrase für die SSL-/TLS -Schlüssel ein.

Um den Status zu prüfen, führen Sie netstat -tlpn| grep apache aus. Die OpenXPKI SCEP-URL lautet jetzt https://ipaddress und die Web-URL ist FQDN:9443/openxpki .

Aktivieren der Standardauthentifizierung

  1. Führen Sie den folgenden Befehl aus:

    apt -y install apache2-utils

  2. Erstellen Sie ein Benutzerkonto, das Zugriff auf den Server hat. Geben Sie folgende Informationen ein:

    htpasswd -c /etc/apache2/.htpasswd <username>
                    New password:     
                    Re-type new password:
                    Adding password for user <username>
  3. Gehen Sie zum Verzeichnis cd /etc/apache2/sites-enabled/ .

  4. Fügen Sie in nano openxpki.conf die folgenden Zeilen in <VirtualHost *: 443 block> ein:

    #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. Add ErrorDocument 401 %{unescape:%00} vor SSLEngine im selben virtuellen Hostblock.

    Beispiel
    ServerAlias *
    DocumentRoot /var/www/
    ErrorDocument 401 %{unescape:%00}
    SSLEngine On
  6. Starten Sie den Apache-Dienst apache2 service mit service apache2 restart neu.

    Hinweis:  Die Standardauthentifizierung funktioniert mit dem oben genannten Benutzernamen und Kennwort.

Aktivieren der Clientzertifikat-Authentifizierung

  1. Rufen Sie das folgende Verzeichnis auf: cd /etc/apache2/sites-enabled/ .

  2. Für den erforderlichen Host in nano openxpki.conf muss SSLVerifyClient require hinzugefügt werden.

    Wenn Sie beispielsweise Port 443 verwenden, ändern Sie den Abschnitt VirtualHost wie folgt:

    <VirtualHost *:443>
    SSLVerifyClient require
    </VirtualHost>
  3. Entfernen Sie den Befehl SSLVerifyClient optional_no_ca .

  4. Speichern Sie die Datei und geben Sie dann quit ein, um MySQL zu beenden.

  5. Rufen Sie das folgende Verzeichnis auf: cd /etc/openxpki/config.d/realm/democa/est .

  6. Öffnen Sie default.yaml und democa.yaml .

    Hinweis:  Wenn die Bezeichnung anders ist, ändern Sie die YAML-Datei.
  7. Führen Sie den folgenden Befehl aus:

    vi default.yaml

  8. Fügen Sie im Abschnitt authorized_signer Folgendes hinzu:

    authorized_signer:
    rule2:
    			subject: CN=,.

    Wenn der Betreff-Name des Clientzertifikats test123 lautet, fügen Sie Folgendes im Abschnitt authorized_signer hinzu:

    authorized_signer:
    rule1:
    		# Full DN	
    		subject: CN=.+:pkiclient,.
    rule2:	
    		subject: CN=test123,.*
  9. Speichern Sie die Datei und geben Sie quit ein, um MySQL zu verlassen.

  10. Starten Sie den OpenXPKI-Dienst mit openxpkictl restart neu.

  11. Starten Sie den Apache-Dienst mit service apache2 restart neu.

Wodurch wird der SAN-Unterschied verursacht, der verhindert, dass das System die CRL abruft?

Der SAN-Unterschied kann auftreten, wenn Sie die CRL-Informationen aktivieren. Dieser Fehler weist darauf hin, dass die IP oder der Hostname nicht mit dem Wert des SAN im Webzertifikat übereinstimmt. Um diesen Fehler zu vermeiden, verwenden Sie den FQDN im Pfad der CRL anstelle der IP. Sie können auch das Webzertifikat konfigurieren und den FQDN Ihres Systems im Feld SAN verwenden.

Warum sind die Token ca-signer-1 und vault-1 offline?

Wenn die Seite Systemstatus anzeigt, dass die Token ca-signer-1 und vault-1 offline sind, führen Sie folgende Schritte aus:

  1. Ändern Sie den Schlüsselwert in /etc/openxpki/config.d/realm/realm name/crypto.yaml .

  2. Starten Sie den OpenXPKI-Dienst neu.