Die Systeme von Sectigo können per REST-API angesprochen werden. Eine Dokumentation hierzu finden Sie unter: https://sectigo.com/knowledge-base/detail/Sectigo-Certificate-Manager-SCM-REST-API/kA01N000000XDkE

Das REST-API kann nur dann zum Enrollment verwendet werden, wenn unter ☰→Organizations→<Auswahl> per Button Edit im Tab „Certificate Settings“ in den Abschnitten „SSL Certificates“ bzw. „Client Certificates“ die Checkbox „Web-API“ angekreuzt ist und ein Secret-Key eingetragen ist. Der Secret-Key wird zwar nur für eine veraltete SOAP-API aktiv verwendet, muss aber trotzdem vergeben werden. Dieser Secret-Key darf maximal 20 Zeichen lang sein, ansonsten kommt es erfahrungsgemäß bei der Verwendung des REST-APIs zu wenig aussagekräftigen „Internal Error“-Fehlern.

Es ist ein Login/Passwort eines im Cert-Manager angelegten Accounts zu übergeben, dessen Anfangspasswort bereits geändert wurde. Die in der Dokumentation angegebene Client-Authentifizierung per Zertifikat für das REST-API ist noch nicht getestet.

Tipp: Man kann einen Account in seiner Rolle so einschränken, dass ausschließlich der REST-API-Zugang verwendet werden kann, siehe Admins, Rollen & Privilegien

Beispiel für die Beantragung von Serverzertifikaten:

curl 'https://cert-manager.com/api/ssl/v1/enroll' -i -X POST \
    -H "Content-Type: application/json;charset=utf-8" \
    -H "login: <account>" \
    -H "password: <passwort>" \
    -H "customerUri: DFN" \
    -d '{"orgId":<OrgId>,"subjAltNames":"<FQDN des Servers>","certType":<Nummer des Zertifikatprofils>,"numberServers":0,"serverType":-1,"term":365,"comments":"","externalRequester":"","customFields": [],"csr":"-----BEGIN CERTIFICATE REQUEST-----\nMIICYjCCAU...N818=\n-----END CERTIFICATE REQUEST-----"}'

Die <OrgId> (ID) ist direkt im cert-manager.com ablesbar: ☰→Organizations→<Organisationsauswahl>→Button Edit. Für DRAO-Accounts muss auf Department-Ebene die <OrgId> (ID) entsprechend vom zugehörigen Departement des DRAO-Accounts hergenommen werden: ☰→Organizations→<Organisationsauswahl>→Button Edit→<Department-Auswahl>→Button Edit.

Die <Nummer des Zertifikatprofils> muss einmalig mit folgendem Aufruf ermittelt werden:

curl 'https://cert-manager.com/api/ssl/v1/types' -i -X GET \
    -H "Content-Type: application/json;charset=utf-8" \
    -H "login: <account>" \
    -H "password: <passwort>" \
    -H "customerUri: DFN" \

Ausgestellte Zertifikate können mit folgendem Aufruf abgeholt werden:

curl  'https://cert-manager.com/api/ssl/v1/collect/<Antragsnummer>/<Format>' -i -X GET \
    -H "Content-Type: application/json;charset=utf-8" \
    -H "login: <account>" \
    -H "password: <passwort>" \
    -H "customerUri: DFN" \

<Antragsnummer> wurde bei einem vorherigen Aufruf von …enroll als Rückgabewert zurückgeliefert.

<Format> spezifiziert das Rückgabeformat, z.B. „pem“, weitere mögliche Werte siehe https://sectigo.com/knowledge-base/detail/SCM-Sectigo-Certificate-Manager-REST-API/kA01N000000XDkE

Für Nutzerzertifikate ist die Beantragung ähnlich aufgebaut. Die Aufrufe müssen an https://cert-manager.com/api/smime/v1/types, …/smime/v1/enroll und …/smime/v1/collect/… geschickt werden. Für weitere Details zu den Parametern ist die API-Dokumentation von Sectigo heranzuziehen.

Beispielaufruf zur Beantragung eines Nutzerzertifikats:

curl 'https://cert-manager.com/api/smime/v1/enroll' -i -X POST \
    -H "Content-Type: application/json;charset=utf-8" \
    -H "login: <account>" \
    -H "password: <passwort>" \
    -H "customerUri: DFN" \
    -d '{ "orgId":<OrgId>, "certType":<Nummer des Zertifikatprofils z.B. 15870>,\  
          "email":"<e-mail-adresse>",\
          "firstName":"<vorname>", "lastName":"<nachname>",\
          "term":<Gültigkeit in Tagen, je Nach Zertifikatprofil entweder 365, 730 oder 1095>,\
          ...,\
          "csr":"-----BEGIN CERTIFICATE REQUEST-----\nMIICYjCCAU...N818=\n-----END CERTIFICATE REQUEST-----"}
  • Zuletzt geändert: vor 12 Tagen