Verwalten von Zertifikaten mit OpenXPKI Certificate Authority über SCEP

In diesem Abschnitt wird beschrieben, wie Sie OpenXPKI CA Version 2.5.x mit dem Simple Certificate Enrollment Protocol (SCEP) konfigurieren.

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 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. 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 9B156AD0 F0E6A6C7 86FABE7A D8363C4E 1611A2BE 2B251336 01D1CDB4 6C24BEF3 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/v2/debian/Release.key -O - | apt-key add - hinzu.

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

  17. Installieren Sie MySQL und Perl MySQL-Binding mit aptitude install mysql-server libdbd-mysql-perl .

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

  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/jessie main in der Datei hinzu, und speichern Sie sie.

  21. Führen Sie die folgenden Befehle aus:

    apt-get Update

    aptitude install libapache2-mod-fcgid

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

  23. Installieren Sie das OpenXPKI-Kernpaket mit aptitude 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): 2.5.5 .
  26. Erstellen Sie die leere Datenbank, und weisen Sie anschließend den Datenbankbenutzer mit mysql -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
    debug: 0
    type: MySQL
    name: openxpki
    host: localhost
    port: 3306
    user: openxpki 
    passwd: openxpki
    Hinweis:  Ändern Sie user und passwd so, dass sie mit dem MySQL-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-mysql.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. Entpacken Sie das Beispielskript für die Installation des Zertifikats mit gunzip -k /usr/share/doc/libopenxpki-perl/examples/sampleconfig.sh.gz .

  2. Führen Sie das Skript mit bash /usr/share/doc/libopenxpki-perl/examples/sampleconfig.sh aus.

  3. Bestätigen Sie das Setup mit openxpkiadm alias --realm ca-one .

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

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

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

    2. Melden Sie sich als Bediener an. Das Standardkennwort lautet openxpki .

      Hinweis:  Die Bedieneranmeldung hat zwei vorkonfigurierte Bedienerkonten, raop und raop2 .
  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. SCEP-Zertifikat, vom Signaturgeberzertifikat signiert.

Hinweise:

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

Erstellen einer OpenSSL-Konfigurationsdatei

  1. Führen Sie den folgenden Befehl aus:

    nano /etc/certs/openxpki_ca-one/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:http://FQDN of the server/CertEnroll/MYOPENXPKI.crl
    authorityInfoAccess     = caIssuers;URI:http://FQDN of the server/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.lexmark.com
    crlDistributionPoints   = URI:http://FQDN of the server/CertEnroll/MYOPENXPKI_ISSUINGCA.crl
    authorityInfoAccess     = caIssuers;URI:http://FQDN of the server/CertEnroll/MYOPENXPKI_ISSUINGCA.crt
    
  2. Ändern 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_ca-one/pd.pass

  2. Geben Sie Ihr Kennwort ein.

  3. Speichern Sie die Datei.

Erstellen eines Root-CA-Zertifikats

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

Führen Sie die folgenden Befehle aus:

Hinweis:  Ersetzen Sie die Schlüssellänge, den Signaturalgorithmus und den Zertifikatnamen durch die entsprechenden Werte.
  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

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

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

Erstellen eines Tresorzertifikats

Hinweise:

  1. Führen Sie den folgenden Befehl aus:

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

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

    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

Erstellen eines SCEP-Zertifikats

Hinweis:  Das SCEP-Zertifikat wird vom Signaturgeberzertifikat signiert.

Führen Sie die folgenden Befehle aus:

Hinweis:  Ersetzen Sie die Schlüssellänge, den Signaturalgorithmus und den Zertifikatnamen durch die entsprechenden Werte.
  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

Kopieren der Schlüsseldatei und Erstellen eines Symlinks

  1. Kopieren Sie die Schlüsseldateien nach /etc/openxpki/ca/ca-one/ .

    Hinweis:  Die Schlüsseldateien müssen von OpenXPKI gelesen werden können.
    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. Erstellen Sie den Symlink.

    Hinweis:  Symlinks sind Aliase, die von der Standardkonfiguration verwendet werden.
    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

Importieren von Zertifikaten

Importieren Sie das Root-Zertifikat, das Signaturgeberzertifikat, das Tresorzertifikat und das SCEP-Zertifikat mit den entsprechenden Token in die Datenbank.

Führen Sie die folgenden Befehle aus:

  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. Prüfen Sie mit openxpkiadm alias --realm ca-one , ob der Import erfolgreich war.

    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
    

Starten von OpenXPKI

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

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

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

      Hinweis:  Anstelle von ipaddress können Sie auch den FQDN des Servers verwenden.
    2. Melden Sie sich als Bediener an. Das Standardkennwort lautet openxpki .

      Hinweis:  Die Bedieneranmeldung hat zwei vorkonfigurierte Bedienerkonten, raop und raop2 .
  3. 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/ca-one/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/ca-one/profile/default.yaml Folgendes:

      • crl_distribution_points: section

        critical: 0
        uri:
            - http://FQDN of the server/CertEnroll/[% ISSUER.CN.0 %].crl
            - ldap://localhost/[% ISSUER.DN %]
      • authority_info_access: section

        critical: 0
        ca_issuers: http://FQDN of the server/CertEnroll/MYOPENXPKI.crt
        ocsp: http://ocsp.openxpki.org/

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

    2. Gehen Sie in nano /etc/openxpki/config.d/realm/ca-one/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: http://FQDN of the server/CertEnroll/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 .

Konfigurieren der CRL-Zugänglichkeit

  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 des SCEP-Dienstes

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

  2. Installieren Sie das openca-tools-Paket mit aptitude install openca-tools .

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

Testen Sie den Service mit einem beliebigen Client, z. B. CertNanny mit SSCEP.

Hinweis:  SSCEP ist ein Befehlszeilenclient für SCEP. Sie können SSCEP über https://github.com/certnanny/sscop herunterladen.

Aktivieren des Zertifikats "Unterzeichner im Auftrag" (Registrierungsagent)

Für automatische Zertifikatsanforderungen verwenden wir die "Unterzeichner im Auftrag"-Zertifikatfunktion von OpenXPKI.

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

  2. Fügen Sie in nano /etc/openxpki/config.d/realm/ca-one/SCEP/generic.yaml im Abschnitt autorisierten_signer: eine Regel für den Betreff-Name des Signaturgeberzertifikats hin.

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

    Hinweise:

    • In dieser Regel ist jeder Zertifikat-CN, der mit Markvision_ beginnt, das "Unterzeichner im Auftrag"-Zertifikat.
    • Der Betreff-Name wird in MVE für die Generierung des Signaturgebers im "Unterzeichner im Auftrag"-Zertifikat festgelegt.
    • Überprüfen Sie den Abstand und den Einzug in der Skriptdatei.
    • Wenn der CN in MVE geändert wird, fügen Sie den aktualisierten CN in OpenXPKI hinzu.
    • Sie können nur ein Zertifikat als "Unterzeichner im Auftrag" festlegen und anschließend den vollständigen CN angeben.
  3. Speichern Sie die Datei.

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

Aktivieren der automatischen Genehmigung von Zertifikatsanforderungen in OpenXPKI CA

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

  2. Aktualisieren Sie in nano /etc/openxpki/config.d/realm/ca-one/scep/generic.yaml Folgendes: eligible: 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 .

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 ca-two erstellt wird.

Kopieren und Festlegen des Verzeichnisses

  1. Kopieren Sie die Beispielverzeichnisstruktur /etc/openxpki/config.d/realm/ca-one in ein neues Verzeichnis ( cp -avr /etc/openxpki/config.d/realm/ca-one /etc/openxpki/config.d/realm/ca-two ) in dem Bereichsverzeichnis.

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

Erstellen von Zertifikaten

Die folgenden Anweisungen zeigen, wie das Signaturgeberzertifikat, das Tresorzertifikat und das SCEP-Zertifikat generiert werden. Die Root-CA signiert das Signaturgeberzertifikat, und das Signaturgeberzertifikat signiert das SCEP-Zertifikat. Das Tresorzertifikat ist selbstsigniert.

  1. Generieren Sie Zertifikate, und signieren Sie sie anschließend. Weitere Informationen finden Sie unter Manuelles Konfigurieren von OpenXPKI CA .

    Hinweis:  Ändern Sie den gemeinsamen Zertifikatnamen, damit der Benutzer leicht zwischen verschiedenen Zertifikaten für verschiedene Bereiche unterscheiden kann. Sie können DC=CA-ONE in DC=CA-TWO ändern. Die Zertifikatdateien werden im Verzeichnis /etc/certs/openxpki_ca-two/ erstellt.
  2. Kopieren Sie die Schlüsseldateien nach /etc/openxpki/ca/ca-two/ .

    Hinweis:  Die Schlüsseldateien müssen von OpenXPKI gelesen werden können.
    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. Erstellen Sie den Symlink. Erstellen Sie außerdem einen Symlink für das Root-CA-Zertifikat.

    Hinweis:  Symlinks sind Aliase, die von der Standardkonfiguration verwendet werden.
    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. Importieren Sie das Signaturgeberzertifikat, das Tresorzertifikat und das SCEP-Zertifikat in die Datenbank mit den entsprechenden Token für 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. Prüfen Sie mit openxpkiadm alias --realm ca-two , ob der Import erfolgreich war.

    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
    

    In diesem Fall sind die Root-CA-Informationen für ca-one und ca-two identisch.

  6. Wenn Sie das Kennwort des Zertifikatschlüssels während der Zertifikatserstellung geändert haben, aktualisieren Sie nano /etc/openxpki/config.d/realm/ca-two/crypto.yaml .

  7. Generieren Sie die CRLs für diesen Bereich. Weitere Informationen finden Sie unter Generieren von CRL-Informationen .

  8. Veröffentlichen Sie die CRLs für diesen Bereich. Weitere Informationen finden Sie unter Konfigurieren der CRL-Zugänglichkeit .

  9. 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.
  10. Gehen Sie folgendermaßen vor, um auf den OpenXPKI-Server zuzugreifen:

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

    2. Melden Sie sich als Bediener an. Das Standardkennwort lautet openxpki .

      Hinweis:  Die Bedieneranmeldung hat zwei vorkonfigurierte Bedienerkonten, raop und raop2 .

Konfigurieren des SCEP-Endpunkts für mehrere Bereiche

Der SCEP-Endpunkt der Standardbereichs ist http://<ipaddress>/scep/scep . Wenn Sie mehrere Bereiche haben, konfigurieren Sie einen eindeutigen SCEP-Endpunkt (andere Konfigurationsdatei) für jeden Bereich. In den folgenden Anweisungen verwenden wir zwei PKI-Bereiche: ca-one und ca-two .

  1. Kopieren Sie die Standardkonfigurationsdatei in cp /etc/openxpki/scep/default.conf /etc/openxpki/scep/ca-one.conf .

    Hinweis:  Benennen Sie die Datei als ca-one.conf .
  2. Ändern Sie in nano /etc/openxpki/scep/ca-one.conf den Bereichswert in realm=ca-one .

  3. Erstellen Sie eine weitere Konfigurationsdatei in cp /etc/openxpki/scep/default.conf /etc/openxpki/scep/ca-two.conf .

    Hinweis:  Benennen Sie die Datei als ca-two.conf .
  4. Ändern Sie in nano /etc/openxpki/scep/ca-two.conf den Bereichswert in realm=ca-two .

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

Die SCEP-Endpunkte sind die folgenden:

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

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/scep/generic.yaml im Abschnitt policy den Wert für max_active_certs von 1 in 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 auf Anschlussnummer 80. Legen Sie die Standard-Anschlussnummer für OpenXPKI CA fest, um Konflikte zu vermeiden.

  1. Fügen Sie in /etc/apache2/ports.conf einen Anschluss hinzu, oder ändern Sie ihn. Zum Beispiel Listen 8080 .

  2. Fügen Sie in /etc/apache2/sites-enabled/000-default.conf den Abschnitt VirtualHost hinzu, oder ändern Sie ihn, um einen neuen Anschluss zuzuordnen. Zum Beispiel: <VirtualHost *:8080> .

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

Um den Status zu prüfen, führen Sie netstat -tlpn| grep apache aus. Die OpenXPKI SCEP-URL lautet jetzt http://ipaddress:8080/scep/ca-one , und die Web-URL lautet http://ip address:8080/openxpki .

Ablehnen von Zertifikatsanforderungen ohne Kennwortabfrage in OpenXPKI CA

Standardmäßig akzeptiert OpenXPKI Anforderungen, ohne das Kennwort abzufragen. Die Zertifikatsanforderung wird nicht abgelehnt, und die CA und der CA-Administrator bestimmen, ob die Anforderung genehmigt oder abgelehnt werden soll. Um potenzielle Sicherheitsprobleme zu vermeiden, deaktivieren Sie diese Funktion, damit Zertifikatsanforderungen, die ungültige Kennwörter enthalten, sofort abgelehnt werden. In MVE ist Kennwort abfragen nur erforderlich, wenn das Registrierungsagent-Zertifikat generiert wird.

  1. Ändern Sie in etc/openxpki/config.d/realm/REALM NAME/scep/generic.yaml im Abschnitt policy den Wert für allow_man_authen von 1 in 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.

Hinzufügen der Clientauthentifizierungs-EKU zu Zertifikaten

  1. Ändern Sie in /etc/openxpki/config.d/realm/REALM NAME/profile/I18N_OPENXPKI_PROFILE_TLS_SERVER.yaml im Bereich extended_key_usage: den Wert für client_auth: in 1 .

    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.

Abrufen des vollständigen Zertifikatsbetreffs bei Anforderung über SCEP

Standardmäßig liest OpenXPKI nur den CN des Betreffs des anfragenden Zertifikats. Die restlichen Informationen, wie Land, Ort und DC, sind hartcodiert. Wenn ein Zertifikat beispielsweise C=US , ST=KY , L=Lexington , O=Lexmark , OU=ISS , CN=ET0021B7C34AEC.dhcp.dev.lexmark.com ist, dann wird der Betreff nach dem Signieren des Zertifikats durch SCEP in DC=Test Deployment , DC= OpenXPKI , CN=ET0021B7C34AEC.dhcp.dev.lexmark.com geändert.

Hinweis:  REALM NAME ist der Name des Bereichs. Zum Beispiel: ca-one .
  1. Ändern Sie in /etc/openxpki/config.d/realm/REALM NAME/profile/I18N_OPENXPKI_PROFILE_TLS_SERVER.yaml im Bereich enroll den Wert für dn wie folgt:

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

  3. Erstellen Sie eine Datei mit dem Namen l.yaml im Verzeichnis /etc/openxpki/config.d/realm/REALM NAME/profile/template .

  4. Fügen Sie Folgendes hinzu:

    id: L
    label: L
    description: I18N_OPENXPKI_UI_PROFILE_L_DESC
    preset: L
    type: freetext
    width: 60
    placeholder: Kolkata
  5. Speichern Sie die Datei.

  6. Erstellen Sie eine Datei mit dem Namen st.yaml im Verzeichnis /etc/openxpki/config.d/realm/REALM NAME/profile/template .

  7. Fügen Sie Folgendes hinzu:

    id: ST
    label: ST
    description: I18N_OPENXPKI_UI_PROFILE_ST_DESC
    preset: ST
    type: freetext
    width: 60
    placeholder: WB
  8. Speichern Sie die Datei.

    Hinweis:  OpenXPKI muss Eigentümer beider Dateien und lesbar, schreibbar und ausführbar sein.
  9. Starten Sie den OpenXPKI-Dienst mit openxpkictl restart neu.

Entziehen von Zertifikaten und Veröffentlichen von CRL

  1. Greifen Sie auf den OpenXPKI-Server zu.

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

    2. Melden Sie sich als Bediener an. Das Standardkennwort lautet openxpki .

      Hinweis:  Die Bedieneranmeldung hat zwei vorkonfigurierte Bedienerkonten, raop und raop2 .
  2. Klicken Sie auf Workflow-Suche > Jetzt suchen .

  3. Klicken Sie auf ein Zertifikat, das Sie widerrufen möchten, und klicken Sie anschließend auf den Zertifikatlink.

  4. Klicken Sie im Bereich Aktion auf Widerrufsanforderung .

  5. Geben Sie die entsprechenden Werte ein, und klicken Sie anschließend auf Fortfahren > Anfrage abschicken .

  6. Genehmigen Sie die Anfrage auf der nächsten Seite. Der Zertifikatswiderruf wartet auf die nächste CRL-Veröffentlichung.

  7. Klicken Sie im Abschnitt PKI-Operation auf Zertifikatwiderrufsliste (CRL) ausstellen .

  8. Klicken Sie auf Erstellung der Widerruflisten Zertifikatsvorlage > Fortfahren .

  9. Klicken Sie im Abschnitt PKI-Operation auf CA/CRL veröffentlichen .

  10. Klicken Sie auf Workflow-Suche > Jetzt suchen .

  11. Klicken Sie auf das widerrufene Zertifikat mit dem Typ certificate_revocation_request_v2 .

  12. Klicken Sie auf Aktivierung erzwingen .

In der neuen CRL finden Sie die Seriennummer und den Widerrufsgrund des widerrufenen Zertifikats.