Bei der Verwendung der API zur Bestellung von DV-Zertifikaten muss man zu oft warten, bis das Zertifikat ausgestellt ist. Anhand der Schritte in dieser Workflow-Anleitung können Sie die Vorteile unserer Sofortausgabefunktion von DV-Zertifikaten nutzen, die es Ihnen ermöglicht, Ihr DV-Zertifikat sofort ausstellen zu lassen und Ihre API-Aufrufe um bis zu 70 % zu reduzieren.
Zur Beantragung von Encryption Everywhere-DV-Zertifikaten müssen Sie die folgenden Schritte ausführen und einen AuthKey für Ihr Konto konfigurieren. Anderenfalls erhalten Sie einen auth_key_not_setup
-Fehler beim Einreichen eines Antrags.
Um die Sofortausstellung nutzen zu können, müssen Sie vor dem Einreichen Ihres DV-Zertifikatsauftrags diese Schritte befolgen:
Falls all diese Schritte abgeschlossen sind, wenn Sie Ihre DV-Zertifikatsauftrag senden, stellen wir Ihr DV-Zertifikat sofort aus und geben es in der Antwort zurück. Wurde jedoch irgendein Schritte übersprungen, ist eine sofortige Ausstellung nicht möglich.
Sie müssen zuerst einen AuthKey für Ihr CertCentral-Konto erstellen. Mit diesem Schlüssel generieren Sie ein Antrags-Token zum Nachweis der Kontrolle über die Domäne. Sie können einen AuthKey mit einem Post an den Endpunkt Create AuthKey erstellen.
Ein erfolgreicher POST an diesen Endpunkt führt zu einem 200 OK-HTTP-Antwortcode. Die Antwort enthält zwei Informationsteile:
auth_key_id
– Eindeutige ID des erstellten Authkey.auth_key
– Generierter AuthKey für Ihr CertCentral-Konto.Es darf nur einen AuthKey für Ihr CertCentral-Konto geben. Wenn Ihr Konto bereits über einen AuthKey verfügt, liefert der Endpunkt „Create AuthKey“ eine 400 Bad Request-HTTP-Antwort mit dem auth_key_exists_for_account
-Fehler. Wenn Sie diese Fehlermeldung erhalten, können Sie mithilfe des AuthKey-Details-Endpunkts Ihren vorhandenen AuthKey erhalten.
curl -X POST \
https://www.digicert.com/services/v2/account/auth-key \
-H 'Content-Type: application/json' \
-H 'X-DC-DEVKEY: {{api_key}}'
{
"auth_key_id": "{{auth_key_id}}",
"auth_key": "{{auth_key}}"
}
{
"errors": [
{
"code": "auth_key_exists_for_account",
"message": "An error occurred while processing your request."
}
]
}
Sobald Sie den AuthKey für ihr Konto haben, müssen Sie als Nächstes einen CSR für den Zertifikatsauftrag erstellen. Sie benötigen den CSR zum Generieren eines Antrags-Tokens. Der CSR sollte auf dem Server generiert werden, auf dem das Zertifikat installiert werden soll.
Benötigen Sie Hilfe bei der Erstellung eines CSR? Sehen Sie Erstellen eines CSR (Certificate Signing Request).
Der Zeitstempel bestimmt, wann die 30-tägige Gültigkeitsdauer des Antrags-Tokens beginnt. Achten Sie beim Erstellen eines Zeitstempels darauf, dass das Absenden Ihres DV-Zertifikatsauftrags in dem daraus resultierenden Gültigkeitsfenster liegt. Sollten Sie den Auftrag vor oder nach dem Gültigkeitsfenster erteilen, ist eine sofortige Ausstellung nicht möglich.
Sie können einen Zeitstempel für ein zukünftiges Datum erstellen. Erteilen Sie den DV-Auftrag nicht vor diesem Datum. Da das Antrags-Token noch nicht "gültig" ist, kann es nicht zur Domänenvalidierung verwendet werden., kann es nicht zur Domänenvalidierung verwendet werden.
Nach der Festlegung, wann das Gültigkeitsfenster des Antrags-Tokens beginnen soll, müssen Sie das Format des Zeitstempels, wie unten gezeigt, einrichten:
yyyyMMddhhmmss
Aus October 21, 2019 1:30:12 PM
wird z. B. 20191021133012
.
Antrags-Tokens haben eine 30-tägige Gültigkeit, wie es die Daten des Zeitstempels bestimmen. Achten Sie beim Erstellen eines Antrags-Tokens darauf, dass das Absenden Ihres DV-Zertifikatsauftrags im 30-tägigen Fenster des Zeitstempels liegt.
Nachdem Sie nun den AuthKey, den CSR, und den Zeitstempel haben, können Sie nun ein Antrags-Token für den Nachweis der Kontrolle über die Domäne generieren. Dieses Antrags-Token ermöglicht Ihnen, den DNS-TXT-Datensatz Ihrer Domäne oder die fileauth.txt-Datei einzurichten, bevor Sie ein Zertifikat bestellen.
0
) bis er 50 Zeichen lang ist.Dieses Beispiel (Pseudo-Code) zeigt, wie Sie anhand der obigen Schritte das Antrags-Token generieren:
# Declare AuthKey, CSR, and timestamp
auth_key = 'certcentral_account_auth_key'
csr = 'pem_formatted_csr'
timestamp = 'yyyyMMddhhmmss'
# Construct secret to be hashed
secret = timestamp + csr
# Hash secret using HMAC-SHA256 and auth_key
hash = hmac.sha256(secret, auth_key)
# Convert hexadecimal hash to decimal
decimal_hash = convertToBase10(hash)
# Convert decimal_hash to base36
base36_hash = convertToBase36(decimal_hash)
# If base36_hash length is < 50, prepend with zeros
valid_hash = base36_hash.padStart(50, '0')
# Construct final request token
request_token = timestamp + valid_hash
Für eine sofortige Ausstellung des DV-Zertifikats müssen Sie das Antrags-Token an einer dieser Stellen platzieren, bevor Sie das Zertifikat bestellen:
Sobald das Antrags-Token platziert ist, können Sie Ihren DV-Zertifikatsauftrag erteilen.
Sie können die Kontrolle über eine Domäne in ihrem DV-Zertifikatsauftrag nachweisen, indem Sie einen DNS-TXT-Eintrag erstellen, der das Antrags-Token enthält. Sobald Sie den DNS-TXT-Eintrag erstellt haben, können Sie Ihr DV-Zertifikat beantragen.
Stellen Sie sicher, dass Sie den dcv_method
-Wert auf dns-txt-token
setzen, wenn Sie DNS-TXT für Ihr Antrags-Token verwenden.
Gehen Sie zur Website Ihres DNS-Anbieters und erstellen Sie einen neuen TXT-Eintrag.
Fügen Sie das Antrags-Token In das Feld TXT-Wert ein.
Abhängig von Ihrem Zertifikatsauftrag und der zu schützenden Domäne wählen Sie eine der folgenden Optionen für das Host-Feld:
Im Feld Eintragstyp (oder ähnlich) wählen Sie TXT.
Wählen Sie einen TTL-Wert (Time-to-Live) oder verwenden Sie den Standardwert Ihres DNS-Anbieters.
Speichern Sie den Eintrag.
Erteilen Sie Ihren DV-Zertifikatsauftrag, und setzen Sie die dcv_method
auf dns-txt-token
.
Sie können die Kontrolle über eine Domäne in ihrem DV-Zertifikatsauftrag nachweisen, indem Sie an einer vorherbestimmten Stelle auf Ihrer Website eine fileauth.txt-Datei hosten, die das Antrags-Token enthält. Vermeiden Sie häufige Fehler bei der Verwendung von File Auth.
Sobald Sie die Datei auf Ihrer Website verfügbar ist, können Sie Ihr DV-Zertifikat beantragen.
Stellen Sie sicher, dass Sie den dcv_method
-Wert auf http-token
setzen, wenn Sie File Auth für Ihr Antrags-Token verwenden.
Öffnen Sie einen Texteditor (z. B. Notepad), und fügen Sie Ihr Antrags-Token ein.
Speichern Sie die Datei als fileauth.txt.
Stellen Sie die Datei an dieser Stelle auf Ihrer Webseite zur Verfügung (Erstellen Sie bei Bedarf Verzeichnisse):
http://
[domain.name]
/.well-known/pki-validation/fileauth.txt
Auf Windows-basierten Servern muss der .well-known-Ordner über die Befehlszeile erstellt werden. mkdir .well-known
Erteilen Sie Ihren DV-Zertifikatsauftrag, und setzen Sie die dcv_method
auf http-token
.
Sobald Sie das Antrags-Token platziert haben, können Sie Ihren DV-Zertifikatsauftrag erteilen. Dies geschieht anhand eines POST an den Endpunkt DV-SSL bestellen.
Ein erfolgreicher POST an diesen Endpunkt führt zu einem 201 Created-HTTP-Antwortcode. Wenn alle Anforderungen für eine sofortige Ausstellung erfüllt wurden, wird die vollständige Zertifikatskette im Antworttext wiedergegeben.
Wenn Sie Ihren DV-Zertifikatsauftrag erteilen, stellen Sie sicher, dass der dcv_method
-Wert der Position des Antrags-Token entspricht.
Falls irgendeine Vorbedingung nicht erfüllt ist, gibt es keine sofortige Ausstellung. Statt der vollständigen Zertifikatskette erhalten Sie den Standardtext einer DV-SSL-Auftragsbestätigung.
curl -X POST \
'https://www.digicert.com/services/v2/order/certificate/{{dv_ssl_certificate_id}}' \
-H 'Content-Type: application/json' \
-H 'X-DC-DEVKEY: {{api_key}}' \
-d '{
"certificate": {
"common_name": "example.com",
"csr": "<csr>",
"server_platform": {
"id": 2
}
},
"validity_years": 1,
"dcv_method": "dns-txt-token"
}'
curl -X POST \
'https://www.digicert.com/services/v2/order/certificate/{{dv_ssl_certificate_id}}' \
-H 'Content-Type: application/json' \
-H 'X-DC-DEVKEY: {{api_key}}' \
-d '{
"certificate": {
"common_name": "example.com",
"csr": "<csr>",
"server_platform": {
"id": 2
}
},
"validity_years": 1,
"dcv_method": "http-token"
}'
{
"id": 112339,
"certificate_id": 132345,
"certificate_chain": [
{
"subject_common_name": "example.com",
"pem": "<pem_certificate>"
},
{
"subject_common_name": "DigiCert SHA2 Secure Server CA",
"pem": "<pem_certificate>"
},
{
"subject_common_name": "DigiCert Global Root CA",
"pem": "<pem_certificate>"
}
]
}