Die SWS-API von SSL.com - Einführung

Das Verwalten einer großen Anzahl von Zertifikaten kann ein ziemlicher Aufwand sein. Zufällig auftretende Vorfälle, wie die jüngsten branchenweit Problem mit der SeriennummernentropieMöglicherweise müssen Administratoren Hunderte von Zertifikaten gleichzeitig manuell widerrufen und erneut ausstellen. Dies haben auch unsere eigenen Support-Mitarbeiter und Administratoren in der Vergangenheit erlebt. Dies hat SSL.com dazu motiviert, eine praktischere Lösung zu implementieren: die SSL.com Web Services (SWS)-API.

Die SWS-API kann verwendet werden, um verschiedene zertifikatsbezogene Vorgänge zu automatisieren, z. B. das Ausstellen von Zertifikaten, das erneute Eingeben und Wiederaufbereiten von Aufträgen, das Verwalten des Benutzerzugriffs usw. über eine beliebige Programmier- oder Skriptsprache. Versuchen Sie das Anhängen, um vorgenerierte API-cURL-Befehle für eine einzelne Bestellung abzurufen /developer am Ende dieser Bestellseite für Zertifikate (z https://www.ssl.com/certificate_orders/co-1234xyz/developer).

Um einige der Funktionen der API vorzustellen, werden Sie in diesem Lernprogramm durch die Ausgabe von a geführt Domain-validiertes (DV) Webserver-Zertifikat. Dabei werden wir viele nützliche Themen ansprechen, z. B. den Zugriff auf die API und das Erstellen eines CSRund Vorbereiten Ihres Servers für die Überprüfung der Domänensteuerung. Darüber hinaus werden wir sehen, wie wir Zertifikate in großen Mengen über die API widerrufen können, was insbesondere bei Sicherheitsvorfällen hilfreich ist.

Der Sandkasten

Jede Art von Automatisierung erfordert umfangreiche Tests vor dem Start in einem Produktionssystem, insbesondere wenn es um Geld geht. Aus diesem Grund hat SSL.com das implementiert und verwaltet Sandkasten. Die Sandbox ist ein Entwicklungsklon unserer Produktions-API. Es enthält alle Funktionen des Originals, ist jedoch nicht mit der Produktionsdatenbank verbunden. Dies bedeutet, dass Sie neue Benutzer erstellen und frei experimentieren können, ohne befürchten zu müssen, etwas durcheinander zu bringen und für einen Fehler angeklagt zu werden.

Wenn Sie zufrieden sind, dass Ihre Automatisierung in der Sandbox ordnungsgemäß funktioniert, können Sie Ihren Code in die Produktion verschieben und sicher sein, dass Ihre Skripte nicht fehlschlagen.

Anmerkungen: Dieser Artikel wurde für die Sandbox entwickelt, und Sie können mit jedem der in diesem Dokument enthaltenen API-Aufrufe experimentieren.

Die Produktions-API finden Sie unter der folgenden URL:

https://sws.sslpki.com/

Um API-Aufrufe an die Sandbox durchzuführen, müssen Sie nur den Domänennamen ändern, wie im folgenden Snippet gezeigt:

https://sws-test.sslpki.com/

Bereiten Sie die Umgebung vor

Bevor Sie mit der API herumspielen, müssen Sie zunächst eine Arbeitsumgebung vorbereiten. Die Tools, die wir in diesem Tutorial verwenden, sind ein Linux-Terminal und Ihr vertrauenswürdiger Texteditor.

Anmerkungen: Diese Anweisungen wurden für die Vanille geschrieben Ubuntu Linux Distribution, eine typische Entwicklungsumgebung, die in der realen Welt auftreten kann. Allerdings funktionieren die in diesem Dokument bereitgestellten Skripte auch unter Windows via Cygwin.

Das erste, was Sie benötigen, ist ein Verzeichnis für alle erforderlichen Dateien. Aus Gründen des Dienstprogramms werden wir dieses Verzeichnis als bezeichnen sslcom_api_test/ oder "das Arbeitsverzeichnis". Geben Sie zum Erstellen und Eingeben des Verzeichnisses die folgenden Befehle in das Terminal ein.

$ mkdir ~ / sslcom_api_test $ cd ~ / sslcom_api_test

Als nächstes müssen Sie herunterladen Das Zwischenzertifikat-Paket von SSL.comDies ist eine Archivdatei, die alle erforderlichen Zertifikatdateien enthält, um sicher auf die API zuzugreifen. Auf diese Weise werden alle Daten, die Sie mit dem API-Server austauschen, verschlüsselt, und Sie können sicher sein, dass vertrauliche Informationen, wie z. B. die API-Schlüssel, vor Abhören geschützt sind.

Laden Sie das ZIP-Archiv über den obigen Link herunter und entpacken Sie es in das Arbeitsverzeichnis. (Stellen Sie sicher, dass Sie ändern ~/Downloads in das Verzeichnis, in dem Sie die ZIP-Datei gespeichert haben, falls erforderlich). Die Zertifikatdatei, die wir in diesem Artikel verwenden werden, lautet SSL_COM_RSA_SSL_SUBCA.crt.

Anmerkungen: Unter Windows müssen Sie das ZIP-Archiv suchen, darauf doppelklicken und die Dateien im Arbeitsverzeichnis extrahieren.
$ unzip ~ / Downloads / SSLcom_DV_CA_Zip.zip -d. Archiv: ./SSLcom_DV_CA_Zip.zip extrahieren: ./SSL_COM_RSA_SSL_SUBCA.crt extrahieren: ./SSL_COM_ROOT_CERTIFICATION_AUTHORITY_RSA.crt extrahieren: ./CERTUM_TRUSTED_NETWORK_CA.crt

Wir werden verwenden cURL, ein typisches Linux-Netzwerktool, für alle API-Aufrufe in diesem Lernprogramm. cURL kann jeden HTTP-Vorgang ausführen und ist in den meisten Linux-Distributionen standardmäßig installiert. Darüber hinaus kann cURL einfach unter Windows über die auf der cURL-Projektseite bereitgestellten ausführbaren Binärdateien oder durch Auswahl im Cygwin-Installationsprogramm installiert werden. Beachten Sie jedoch, dass Sie, da die API auf offenen Formaten basiert, fast jedes andere Netzwerk-Tool oder jede andere Programmiersprache verwenden können, um darauf zuzugreifen.

Darüber hinaus werden wir verwenden OpenSSL um unsere Zertifikatsbestellung vorzubereiten. OpenSSL ist ein Open-Source-Toolkit, das nahezu alle kryptografischen Vorgänge ausführen kann, die Sie möglicherweise benötigen. Dieses Tool ist auch in der Cygwin-Paketliste enthalten. Sie können es daher entweder für die Installation beim Einrichten Ihrer Cygwin-Instanz auswählen oder manuell über die auf der Projekthomepage bereitgestellten Binärdateien installieren.

Schließlich benötigen Sie zwei API-Schlüssel, um mit der Sandbox arbeiten zu können, die Ihrem Benutzerkonto zugeordnet sind. Wenn Sie noch kein Konto in der Sandbox haben, registrieren Sie sich bitte über die Sandbox  Anmeldeformular. Der Vorgang ist identisch mit dem Erstellen eines normalen SSL.com-Kundenkontos. Wenn Sie bereits ein Konto in der Sandbox haben, können Sie diesen Schritt sicher überspringen.

Greifen Sie auf die API zu

Unsere SWS-API basiert auf HTTP (die Protokollbrowser verwenden), und alle Daten werden im Internet ausgetauscht JSON-Format.

Bei den meisten API-Aufrufen müssen Sie eine account_key und einem secret_key Parameter für Autorisierungszwecke. Sie finden die Anmeldeinformationen Ihres Kontos immer auf der Dashboard-Seite der Sandbox. In diesem Fall werden sie jedoch über die API abgerufen.

Der im nächsten Codeausschnitt aufgeführte Befehl meldet Sie beim Portal an und ruft die Informationen Ihres Kontos einschließlich dieser API-Schlüssel ab. Wenn Sie den Befehl in ein Terminalfenster kopieren und einfügen, stellen Sie sicher, dass Sie ihn ersetzen USERNAME und PASSWORD mit den Anmeldeinformationen Ihres Kontos.

$ curl -L --cacert SSL_COM_RSA_SSL_SUBCA.crt --request GET --data-urlencode 'password = PASSWORD' \ 'https: //sws-test.sslpki.com / user / USERNAME '{"login": "JDemo", "email": "jdemo@mailinator.com", "account_number": "abc-1ec6012", "account_key": "4497618e5c98", "secret_key": "FY + s9 / ghUrv7SQ ==", "status": "enabled", "user_url": "https: //sws-test.sslpki.com / users / 1322857 "," available_funds ":" $ 0.00 "}

Obwohl cURLs Syntax ist ganz einfach, lassen Sie sich mit dem vorherigen Anruf im Detail vertraut machen.

  • -L weist cURL an, alle HTTP-Weiterleitungen zu befolgen. Sie sollten diese Option in alle Aufrufe aufnehmen, um Probleme zu vermeiden.
  • --cacert SSL_COM_RSA_SSL_SUBCA.crt weist cURL an um das Zertifikat des API-Servers zu validieren, mit dem Zertifikat, das wir im Bundle heruntergeladen haben. Dadurch kann cURL alle an den Server gesendeten Daten verschlüsseln.
  • --request GET weist cURL an, eine HTTP-GET-Anforderung auszuführen. Einige Anrufe akzeptieren nur HTTP-POST- oder PUT-Anforderungen. Mit dieser Option können solche Anforderungen bearbeitet werden.
  • --data-urlencode bereitet das Passwort des Kontos für die Übertragung an den Server vor. GET-Anforderungen können Parameter in der URL enthalten, während PUT- und POST-Anforderungen nur Parameter im Hauptteil enthalten. Da das Passwort über die URL weitergegeben wird, müssen wir es verschlüsseln, um Symbole zu vermeiden (z / , ? or # ), die den Server verwirren könnten. Dieser Vorgang wird aufgerufen URL-Codierung.
Anmerkungen: Der Backslash (\) am Ende der ersten Zeile zwingt das Linux-Terminal, ein neues Zeilenzeichen zu ignorieren und die Zeichen in der nächsten Zeile als Teil des ursprünglichen Befehls weiter zu analysieren. Wir werden diese Syntax verwenden, um lange Befehle in mehrere Zeilen aufzuteilen, um sie präsentabler zu machen.

Das Ergebnis des API-Aufrufs ist ein JSON-Objekt, das Kontoinformationen enthält, einschließlich der account_key und secret_key, erforderlich in nachfolgenden API-Aufrufen.

Stellen Sie ein Serverzertifikat aus

Nachdem Sie die Arbeitsumgebung vorbereitet und die API-Schlüssel erhalten haben, können Sie nun mit der API herumspielen. Als Beispiel werden wir die Ausstellung eines Basis-SSL-Zertifikat für einen imaginären Webserver namens example.ssl.com. Unabhängig davon, ob Sie die API oder das Kundenportal verwenden, müssen für die Ausstellung eines Zertifikats bestimmte Schritte ausgeführt werden.

Diese Schritte umfassen das Generieren eines privaten und eines öffentlichen Schlüsselpaars sowie das Erstellen eines Zertifikatsignierungsanforderung (CSR), Erstellen einer Zertifikatsreihenfolge und Ausführen der Validierung der Domänensteuerung.

Generiere die CSR

Es gibt verschiedene Methoden ein erstellen CSRDa wir das Terminal jedoch bereits verwenden, schauen wir uns an, wie Sie ein Terminal erstellen CSR mit OpenSSL. Wenn Sie bereits eine haben CSR Sie können für diesen Zweck verwenden, Sie können diesen Schritt überspringen.

A CSR ist eine Base64-codierte Datei, die die meisten Informationen enthält, die in der endgültigen Zertifikatdatei enthalten sind. Zu den wichtigsten Inhalten zählen die Öffentlicher Schlüssel und dem Domänenname des Servers Das Zertifikat wird ausgestellt für.

Das heißt, wir benötigen ein öffentliches Schlüsselpaar, bevor wir a ausgeben CSR. Der folgende Befehl erstellt eine neue PEM Datei im Arbeitsverzeichnis mit dem Namen example.ssl.com.key, enthält die beiden Schlüssel.

$ openssl genrsa -out example.ssl.com.key 2048 Generieren eines privaten RSA-Schlüssels, 2048 Bit langer Modul ................... +++ ...... .................................................. ...... +++ e ist 65537 (0x010001)

Mit dem Schlüsselpaar kann OpenSSL jetzt eine generieren CSR für dich. Verwenden Sie dazu den im folgenden Codeausschnitt gezeigten Befehl.

$ openssl req -new -key example.ssl.com.key -out example.ssl.com.csr

Sie werden aufgefordert, Informationen einzugeben, die in Ihre Zertifikatanforderung aufgenommen werden. Was Sie eingeben möchten, wird als Distinguished Name oder DN bezeichnet. Es gibt einige Felder, aber Sie können einige leer lassen. Für einige Felder gibt es einen Standardwert. Wenn Sie '.' Eingeben, bleibt das Feld leer. ----- Ländername (2-Buchstaben-Code) [AU]: Name des US-Bundesstaates oder der Provinz (vollständiger Name) [Bundesstaat]: Name des Ortes in Texas (z. B. Stadt) []: Name der Houston-Organisation (z. B. Firma) [Internet Widgits Pty Ltd]: Beispielname der Organisationseinheit (z. B. Abschnitt) []: Beispiel für den allgemeinen Namen der Abteilung (z. B. FQDN des Servers oder IHR Name) []: example.ssl.com E-Mail-Adresse []: admin@example.ssl. com Bitte geben Sie die folgenden zusätzlichen Attribute ein, die mit Ihrer Zertifikatanforderung gesendet werden sollen. Ein Challenge-Passwort []: Ein optionaler Firmenname []:

OpenSSL fragt Sie nach Ihren grundlegenden Kontaktinformationen und dem Gemeinsamen Namen des Zertifikats. Bei SSL-Zertifikaten ist der allgemeine Name der Domänenname des Servers (in diesem Fall) example.ssl.com). Wenn Sie den obigen Befehl ausführen, wird eine Datei mit dem Namen erstellt example.ssl.com.csrim aktuellen Verzeichnis, das die Base64-Codierung enthält CSR.

$ cat example.ssl.com.csr 

-----BEGIN CERTIFICATE REQUEST-----
MIIC5DCCAcwCAQAwgZ4xCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G
A1UEBwwHSG91c3RvbjEQMA4GA1UECgwHRXhhbXBsZTEbMBkGA1UECwwSRXhhbXBs
ZSBEZXBhcnRtZW50MRgwFgYDVQQDDA9leGFtcGxlLnNzbC5jb20xJDAiBgkqhkiG
9w0BCQEWFWFkbWluQGV4YW1wbGUuc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAN7XMG7+zhaGfimdD1F0P3xxUS8dC6knKId3ONEt14Wa5E62
ZIUkyNgQC7gd3Be31jBhcuzJKn8UbTcWnPXd3OCbznbkqXtnljiF3yN9cRnj2f7y
89Hfmje8C07xe6AsoUMSTYzwsoo3zai1bxOUhy+uDU8FzxcSHunepdx/naHXY1Md
waQwzBCp668hFeIOslEjkTCNle3HK1LrgjZCIg0tyHBuZTNuUcQOyXrrDSrtOxx8
dqOD7sYqJie2xiCC9kkpNGYYTEuCuVKidgiC3e/DuLUNbhoUMfSENv64TGA7lRIj
nEBrrEm6FOSgPEGgEsM78cexVaqNCavNXNy49ysCAwEAAaAAMA0GCSqGSIb3DQEB
CwUAA4IBAQAV1Ac9nYH64BrB4OHlOYPkZbK6qCKfipTg7s4Xdcc3TponjTnMJyaQ
NNh0koCUOFJaYPjWIk/YkCeGNv/fbce+sddNbh0jtcVTPw8EFvs53IaUAE99zDvn
577Azj+OXfmaLQXjK15BtnT5hbmRKsrpPxnAdk4NOohM7QKWNEdBrcfTuH1q3WpD
6jSD35FlIFUfMgNi34mxF4vYamGrWgdURIb7DCk2h7B2LQK+vRNx1uPm9FVSeYZc
tHZWTiw2xEExw2Qco6lqXYl8t0Eo07gYl4gAEx9bibvVqYMo3Zss1mRg6+WEB8Xs
G+Hn1TG3XIaIbmvlpRNma/l766KZwLXG
-----END CERTIFICATE REQUEST-----

Erstellen Sie die Zertifikatsreihenfolge

Nachdem ich die erhalten habe CSRJetzt können Sie eine Zertifikatreihenfolge über die API erstellen. Der erste API-Aufruf, den wir uns angesehen haben, war eine GET-Anforderung, während dieser ein POST ist. POST-Anforderungen müssen alle Parameter als JSON-Objekte in ihren Körpern enthalten. Folglich müssen Sie die Parameter der Zertifikatsreihenfolge in JSON formatieren. Eine JSON-Konfiguration für dieses Beispiel finden Sie im folgenden Snippet.

{"account_key": "4497618e5c98", "secret_key": "FY + s9 / ghUrv7SQ ==", "product": "106", "period": "365", "server_software": "15", "organisationsname" : "Beispiel", "street_address_1": "Beispiel st", "locality_name": "Houston", "state_or_province_name": "Texas", "postal_code": "77777", "country_name": "US", "duns_number": "1234567", "firmennummer": "beispielnummer", "registrierter_landname": "US", "eindeutiger_wert": "1ed1c72baf", "csr":" ----- BEGIN CERTIFICATE REQUEST ----- MIIDIjCCAgwaRlkPnuD ... 0QQ3JKQqJbii3760Rgon8hZmbkiE = ----- END CERTIFICATE REQUEST ----- "}

Wir haben die API-Schlüssel bereits zuvor gesehen. Um Zertifikate zu bestellen, müssen wir jedoch auch zusätzliche Parameter wie die product ID und die Gültigkeit period. Eine Liste der Produkt-IDs finden Sie in der SWS-API-Dokumentation. In diesem Beispiel wird ein Basis-SSL-Zertifikat mit einer Gültigkeitsdauer von 1 Jahr bestellt. Die nächste Gruppe von Parametern speichert Kontaktinformationen über den Registranten (das sind Sie). Das unique_value Der Parameter (optional) enthält eine alphanumerische Zeichenfolge, die die Eindeutigkeit der Anforderung sicherstellt. Wenn Sie keinen eindeutigen Wert angeben, wird ein zufälliger Wert für Sie generiert. Die Angabe eines eindeutigen Werts auf diese Weise ist nützlich, wenn Sie DCV-Dateien oder CNAME-Einträge außerhalb des Benutzerportals von SSL.com generieren möchten. Endlich, das csr Der Parameter muss eine gültige Base64-Codierung enthalten CSR, wie der, in dem wir gespeichert haben example.ssl.com.csr.

Ersetzen Sie die Parameter durch Ihre eigenen Werte Kontaktdaten und CSRund speichern Sie diese JSON-Konfiguration in einer Datei mit dem Namen example.ssl.com.json.

Hinweis: Bitte stellen Sie sicher, dass Sie alle neuen Zeilenzeichen aus dem entfernt haben CSR bevor Sie es dem Befehl hinzufügen. Neue Zeilen werden verwendet, um das Terminal anzuweisen, den eingegebenen Text bis zum Zeichen für neue Zeilen zu verarbeiten. Wenn Sie die Zeichen belassen, schlagen Ihre cURL-Befehle möglicherweise fehl.

Nachdem alles eingerichtet ist, können Sie jetzt Ihre Bestellung erstellen. cURL akzeptiert die JSON-Parameter entweder als Inline-Zeichenfolge oder über einen Dateinamen. Da die erste Option zu ausführlich ist, übergeben wir stattdessen den Dateinamen.

Bitte beachten Sie die --data-binary cURL-Schalter, der cURL anweist, den Inhalt der Datei in den Hauptteil der POST-Anforderung aufzunehmen.

$ curl -L --cacert SSL_COM_RSA_SSL_SUBCA.crt --request POST --header "Inhaltstyp: application / json" \ --data-binary "@ example.ssl.com.json" 'https: // sws-test .sslpki.com / certificates '{"ref": "co-ac1ecm200", "registrant": {"organisation": "Beispiel", "organisationseinheit": null, "street_address_1": "Beispiel st", "street_address_2": null, "street_address_3": null, "locality": "Houston", "state_or_province": "Texas", "post_office_box": null, "postal_code": "77777", "country": "US", "email": null} , "order_status": "Validierung erforderlich", "validations": null, "order_amount": "$ 49.00", "certificate_url": "https://sandbox.ssl.com/team/abc-1ec6012/certificate_orders/co-ac1ecm200 "," receive_url ":" https://sandbox.ssl.com/team/abc-1ec6012/orders/fe3b-1ecm201 "," smart_seal_url ":" https://sandbox.ssl.com/team/abc-1ec6012 / certificate_orders / co-ac1ecm200 / site_seal "," validation_url ":" https://sandbox.ssl.com/team/abc-1ec6012/certificate_orders/co-ac1ecm200/validation "," external_order_number ": null," certificates ": Null }

Das Ergebnis der Operation ist ein weiteres JSON-Objekt, das die Details der neu erstellten Zertifikatsreihenfolge enthält. Wir können es sehen order_statusund seine Referenznummer in der ref Parameter, der verwendet wird, um diese Reihenfolge in allen nachfolgenden API-Aufrufen zu referenzieren. Darüber hinaus enthält die Ausgabe verschiedene URLs, z certificate_url, die auf die Details der Bestellung im Portal und im Portal verweist validation_url, die auf die Validierungsseite der Bestellung verweist.

Schließlich certificates enthält alle mit der Bestellung verbundenen Zertifikate. Da die Bestellung noch nicht validiert wurde, wurden keine Zertifikate erstellt.

Validierung der Domänensteuerung

Wie in der Zertifikatsbestellung angegeben order_status of validation requiredmüssen Sie die Validierung durchführen, bevor Sie ein Zertifikat ausstellen lassen.

Öffentlich vertrauenswürdige Zertifizierungsstellen (wie SSL.com) müssen überprüfen, ob der Zertifikatskäufer tatsächlich den Server kontrolliert, für den das Zertifikat ausgestellt wird, bevor sie Zertifikate ausstellen. Dies kann durch erreicht werden mehrere MethodenÜber diesen nächsten API-Aufruf können Sie alle verfügbaren Validierungsmethoden für eine bestimmte Bestellung anzeigen.

Bitte stellen Sie sicher, dass Sie die Referenznummer ersetzen co-ac1ecm200 in der URL mit der Referenznummer Ihrer Bestellung, die im vorherigen API-Aufruf generiert wurde.

$ curl --cacert SSL_COM_RSA_SSL_SUBCA.crt --request GET \ --data-urlencode 'secret_key = FY + s9 / ghUrv7SQ ==' --data-urlencode 'account_key = 4497618e5c98' \ 'https: //sws-test.sslpki.com / certificate / co-ac1ecm200 / validations / Methods '{"Anweisungen": "https://www.ssl.com/faqs/ssl-dv-validation-requirements/", "md5_hash": "29BD4C00B65613CCEC04C19C0050D931", " sha2_hash ": "BF340FDFD9C43D45B8310FC4A400E4D4B61CAF8D2002BAAF0945252E35F9D751", "dns_sha2_hash": "BF340FDFD9C43D45B8310FC4A400E4D4.B61CAF8D2002BAAF0945252E35F9D751.167c8a5c49", "dcv_methods": { "example.ssl.com": { "EMAIL_ADDRESSES": [ "admin@ssl.com"," administrator @ ssl .com "," webmaster@ssl.com "," hostmaster@ssl.com "," postmaster@ssl.com "," admin@example.ssl.com "," Administrator@example.ssl.com "," Webmaster " @ example.ssl.com "," hostmaster@example.ssl.com "," postmaster@example.ssl.com "]," http_csr_hash ": {" http ":" http://example.ssl.com/.well-known/pki-validation / 29BD4C00B65613CCEC04C19C0050D931.txt "," allow_https ":" true "," content ":" BF340FDFD9C43D45B8310FC4A400E4D4B61CAF8D2002BAAF0945252E35F9Dl "csr_hash ": {" cname ":" _29BD4C00B65613CCEC04C19C0050D931.example.ssl.com. CNAME ff8716e0fd.ssl.com. "," Name ":" _29BD4C00B65613CCEC04C19C0050D931.example.ssl.com "," Wert ":" BF340FDFD9C43D45B8310FC4A400E4D4.B61CAF8D2002BAAF0945252 ". com "}

Die zurückgegebene Ausgabe enthält alle Informationen, die Sie zur Durchführung der Domänensteuerungsüberprüfung benötigen. Zum Beispiel, wenn Sie die verwenden möchten http_csr_hash  Bei der Validierungsmethode müssen Sie auf dem Server, für den dieses Zertifikat ausgestellt wird, eine Datei mit dem Namen erstellen .well_known/pki-validation/29BD4C00B65613CCEC04C19C0050D931.txt. Die Datei sollte genau enthalten den Wert der contents Parameters.

Anschließend können Sie die besuchen validation_url Sie haben den vorherigen Aufruf gefunden, der die Bestellung erstellt hat, und fahren mit der Validierung fort, wie Sie es normalerweise bei einer Bestellung tun würden, die Sie über Ihr Kundenportal erstellt haben. (Sie können immer die besuchen Validierungen Seite und finden Sie die URL für die spezifische Bestellung).

Nach einer erfolgreichen Überprüfung der Domänensteuerung wird das Zertifikat ausgestellt und Sie können es herunterladen.

Rufen Sie das Zertifikat ab

Sie finden Ihr Zertifikat im Webportal oder können es über die API abrufen. Für unsere Zwecke werden wir die API verwenden. Wie im vorherigen Abschnitt gezeigt, enthält die Antwort beim Erstellen einer neuen Zertifikatsreihenfolge eine Referenznummer. Diese Nummer kann verwendet werden, um die Bestelldaten einschließlich der tatsächlichen Zertifikatdaten abzurufen.

$ curl --request GET -L --cacert SSL_COM_RSA_SSL_SUBCA.crt \ --data-urlencode 'secret_key = FY + s9 / ghUrv7SQ ==' --data-urlencode 'account_key = 4497618e5c98' \ 'https: // sws-test .sslpki.com / certificate / co-ac1ecm200? response_type = individual & response_encoding = base64 '{"description": "1 Jahr Basis-SSL", "Produkt": "106", "Produktname": "basicssl", "Auftragsstatus": "ausgestellt" , "order_date": "2019-05-02T10: 08: 48.000-05: 00", "registrant": {"organisation": "example", "organisationseinheit": null, "street_address_1": "example st", " street_address_2 ": null," street_address_3 ": null," locality ":" Houston "," state_or_province ":" Texas "," post_office_box ": null," postal_code ":" 77777 "," country ":" US "," E-Mail ": null}," Zertifikate ":" \ nMIIE1TCCA72gAwIBAgIRANsjhF + t ... 4CAw5Egg73IgIHggE1QEZiYQRu + 0wDQY \ n "," common_name ":" example.ssl.com "," Domains_qty_purchased ":" 1 "," subject_alternative_names ": [" example.ssl.com "," www.example.ssl.com "]," validations ": null," effektive_date ":" 0-2019-05T03: 11: 22-37.000: 05 "," expiration_date ":" 00-2020-05T02: 11: 22-37.000: 05 "," algorithm ":" SHA00 "," external_order_number ": null," domain ": null," site_seal_code " ": null," Abonnentenvereinbarung ": null," Serversoftware ": 256," Kontakte ": [{...}, {...}]}

Da die API programmgesteuert verwendet werden soll, müssen Sie die JSON-Antwort analysieren, um das Zertifikat zu isolieren und in einer Datei zu speichern. JSON-Analyse geht über den Rahmen dieses Artikels hinaus. Es ist jedoch eine einfache Aufgabe, die in den meisten modernen Skript- oder Programmiersprachen leicht implementiert werden kann.

Wenn Sie die Referenznummer nicht zur Hand haben, können Sie einen API-Aufruf ausführen, um alle Zertifikatsbestellungen Ihres Kontos abzurufen. Mit diesem Aufruf können Sie die Bestellungen sowie die angezeigten Informationen filtern.

$ curl --cacert SSL_COM_RSA_SSL_SUBCA.crt --request GET \ --data-urlencode 'secret_key = FY + s9 / ghUrv7SQ ==' --data-urlencode 'account_key = 4497618e5c98' \ 'https: //sws-test.sslpki.com / certificates? fields = Domains, ref, order_status '[{"ref": "co-ac1ecm200", "order_status": "ausgestellt", "Domains": ["example.ssl.com"]}, {" ref ":" co-581eclsap "," order_status ":" validieren, bitte warten "," Domains ": [" example.ssl.com "]}, {" ref ":" co-6f1ecm1of "," order_status ": "Warten auf Kontaktinformationen vom Kunden", "Domains": ["test.ssl.com"]}}

Das fields Mit dem URL-Parameter können Sie steuern, welche Zertifikatdetails in der Ausgabe angezeigt werden. Sie können zusätzlich über die paginieren per_page und page Parameter anfordern. Um die Anzahl der Zertifikate basierend auf ihren Ausstellungsdaten zu begrenzen, können Sie sie verwenden start und end Parameter. Schließlich können Sie die Bestellungen anhand von Kriterien wie Produkt-ID, Ablaufdatum oder einem anderen im Zertifikat enthaltenen Feld filtern und durchsuchen. Weitere Informationen finden Sie unter API-Dokumentation von SSL.com.

Widerrufen Sie das Zertifikat

Die letzte Funktion, die wir in diesem Handbuch betrachten werden, ist der Widerruf von Massenzertifikaten. Zertifikate können Sie schützen, solange nur Sie (oder Personen, denen Sie vertrauen) den ihnen zugeordneten privaten Schlüssel besitzen. Falls ein privater Schlüssel kompromittiert wird oder Informationen zum Zertifikat geändert werden müssen, muss das Zertifikat sofort widerrufen und ein neuer ausgestellt werden.

In Fällen, in denen der Verdacht besteht, dass der private Schlüssel gestohlen wurde, muss die Client-Software (z. B. Browser oder Betriebssysteme) ihn so schnell wie möglich nicht mehr als gültig akzeptieren. Aus diesem Grund empfehlen wir dringend, dass Sie ein automatisiertes System zum Widerrufen, erneuten Ausstellen, Abrufen und Installieren von Zertifikaten auf Ihren Servern implementieren.

Mit der SWS-API von SSL.com können Sie ein, mehrere oder alle Zertifikate unter einer Ihrer Zertifikatsbestellungen programmgesteuert widerrufen. Der folgende API-Aufruf widerruft alle Zertifikate in der Zertifikatreihenfolge co-ac1ecm200:

curl --cacert SSL_COM_RSA_SSL_SUBCA.crt --request DELETE --header "Inhaltstyp: application / json" \ --data-binary '{"account_key": "4497618e5c98", "secret_key": "FY + s9 / ghUrv7SQ = = "," Grund ":" gestohlen "} '\' https: //sws.sslpki.com / certificate / co-ac1ecm200 '{"status": "widerrufen"}

Dieser cURL-Befehl gibt eine DELETE-HTTP-Anforderung aus (anstelle eines GET- oder POST-Befehls wie bei vorherigen Befehlen) und stellt die JSON-Konfiguration inline bereit. Es ist auch gültig, eine Datei mit dem JSON-Inhalt zu erstellen und sie über den Dateinamen an cURL zu übergeben, genauso wie der Befehl, der die Zertifikatsreihenfolge ausgegeben hat.

Sie können den gewünschten Grund angeben reason  Parameter und kann optional eine Liste von Zertifikatseriennummern in den JSON aufnehmen, um nur die Zertifikate zu widerrufen, die diesen Serien entsprechen. Wenn keine Seriennummern enthalten sind, werden alle Zertifikate, die zur angegebenen Zertifikatsreihenfolge gehören, widerrufen.

Weitere Informationen zu diesem API-Aufruf finden Sie in unserem API-Dokumentation.

Zusammenfassung

Dieser Artikel beschreibt einen einfachen Prozess zum Ausstellen und Widerrufen eines DV-Serverzertifikats als vereinfachtes Beispiel für die Vorgänge, die Sie über die SWS-API von SSL.com ausführen können. Wir bei SSL.com empfehlen die Verwendung von Automatisierung, sofern dies möglich ist, da dadurch die mühsame manuelle Ausführung derselben sich wiederholenden Aufgaben entfällt und vor allem schnellere Reaktionszeiten in Notfällen möglich sind (siehe die Problem mit der Seriennummernentropie).

Bitte experimentieren Sie mit unserem Sandkasten und SWS-APIund zögern Sie nicht, sich bei Problemen an unsere Support-Mitarbeiter zu wenden.

Vielen Dank, dass Sie sich für SSL.com entschieden haben! Bei Fragen wenden Sie sich bitte per E-Mail an Support@SSL.com, Anruf 1-877-SSL-SECUREoder klicken Sie einfach auf den Chat-Link unten rechts auf dieser Seite. Antworten auf viele häufig gestellte Support-Fragen finden Sie auch in unserer Wissensbasis.
Twitter
Facebook
LinkedIn
Reddit
E-Mail

Bleiben Sie informiert und sicher

SSL.com ist ein weltweit führendes Unternehmen im Bereich Cybersicherheit, PKI und digitale Zertifikate. Melden Sie sich an, um die neuesten Branchennachrichten, Tipps und Produktankündigungen von zu erhalten SSL.com.

Wir würden uns über Ihr Feedback freuen

Nehmen Sie an unserer Umfrage teil und teilen Sie uns Ihre Meinung zu Ihrem letzten Kauf mit.