SSL.com's SWS API - Inleiding

Het beheren van grote aantallen certificaten kan een hele klus zijn. Willekeurig voorkomende incidenten, zoals de recente branchebrede serienummer entropie probleem, kan het nodig zijn dat beheerders honderden certificaten handmatig intrekken en opnieuw uitgeven. Onze eigen supportmedewerkers en beheerders hebben dit in het verleden ook ervaren, een feit dat SSL.com motiveerde om een ​​meer praktische oplossing te implementeren: de SSL.com-webservices (SWS) API.

De SWS API kan worden gebruikt om verschillende certificaatgerelateerde bewerkingen te automatiseren, zoals het uitgeven van certificaten, het opnieuw intoetsen en opnieuw verwerken van bestellingen, het beheren van gebruikerstoegang, enzovoort via elke programmeer- of scripttaal. Probeer voor het genereren van vooraf gegenereerde API cURL-opdrachten voor een individuele bestelling /developer aan het einde van die certificaatbestellingspagina (bijv https://www.ssl.com/certificate_orders/co-1234xyz/developer).

Om enkele van de API-functies te introduceren, leidt deze tutorial u door de uitgifte van een domein-gevalideerd (DV) webservercertificaat. In het proces zullen we veel nuttige onderwerpen behandelen, zoals toegang tot de API, het creëren van een CSR, en uw server voorbereiden voor validatie van domeincontrole. Bovendien zullen we zien hoe we certificaten in bulk kunnen intrekken via de API, wat vooral handig is in geval van beveiligingsincidenten.

De zandbak

Elke vorm van automatisering vereist uitgebreide tests voordat deze in een productiesysteem wordt gelanceerd, vooral als er geld mee gemoeid is. Om deze reden heeft SSL.com het sandbox. De Sandbox is een ontwikkelingskloon van onze productie-API. Het bevat alle functionaliteit van het origineel, maar is niet verbonden met de productiedatabase. Dit betekent dat u nieuwe gebruikers kunt maken en vrij kunt experimenteren zonder bang te hoeven zijn iets te verknoeien en in rekening te worden gebracht voor een fout.

Als u er zeker van bent dat uw automatisering naar behoren werkt in de Sandbox, kunt u uw code naar productie verplaatsen en er zeker van zijn dat uw scripts niet zullen falen.

NOTITIE: Dit artikel is ontwikkeld voor de Sandbox en u kunt experimenteren met alle API-aanroepen in dit document.

De productie-API is te vinden in de volgende URL:

https://sws.sslpki.com/

Om API-aanroepen naar de Sandbox uit te voeren, hoeft u alleen de domeinnaam te wijzigen zoals weergegeven in het volgende fragment:

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

Bereid het milieu voor

Voordat je met de API gaat spelen, moet je eerst een werkomgeving voorbereiden. De tools die we in deze tutorial zullen gebruiken, zijn een Linux-terminal en uw vertrouwde teksteditor.

NOTITIE: Deze instructies zijn geschreven voor de vanille Ubuntu Linux distributie, wat een typische ontwikkelomgeving is die men in de echte wereld zou kunnen tegenkomen. Dat gezegd hebbende, de scripts in dit document werken ook op Windows via Cygwin.

Het eerste dat u nodig heeft, is een map voor alle benodigde bestanden. Omwille van het nut zullen we naar deze map verwijzen als sslcom_api_test/ of "de werkmap". Om de directory aan te maken en in te voeren, geeft u de volgende opdrachten op in de terminal.

$ mkdir ~ / sslcom_api_test $ cd ~ / sslcom_api_test

Vervolgens moet je downloaden SSL.com's tussenliggende certificatenbundel, een archiefbestand dat alle benodigde certificaatbestanden bevat om veilig toegang te krijgen tot de API. Op die manier worden alle gegevens die u uitwisselt met de API-server gecodeerd en kunt u er zeker van zijn dat gevoelige informatie, zoals de API-sleutels, wordt beschermd tegen afluisteren.

Download het ZIP-archief via de bovenstaande link en pak het uit in de werkdirectory. (Zorg ervoor dat u verandert ~/Downloads naar de directory waar u het ZIP-bestand hebt opgeslagen, indien nodig). Het certificaatbestand dat we in dit artikel zullen gebruiken, is SSL_COM_RSA_SSL_SUBCA.crt.

NOTITIE: In Windows moet u het ZIP-archief lokaliseren, erop dubbelklikken en de bestanden in de werkdirectory uitpakken.
$ unzip ~ / Downloads / SSLcom_DV_CA_Zip.zip -d. Archief: ./SSLcom_DV_CA_Zip.zip extraheren: ./SSL_COM_RSA_SSL_SUBCA.crt extraheren: ./SSL_COM_ROOT_CERTIFICATION_AUTHORITY_RSA.crt extraheren: ./CERTUM_TRUSTED_NETWORK_CA.crt

We zullen gebruiken Krul, een typische Linux-netwerktool, voor alle API-aanroepen in deze tutorial. cURL kan elke HTTP-bewerking uitvoeren en wordt standaard geïnstalleerd in de meeste Linux-distributies. Bovendien kan cURL eenvoudig op Windows worden geïnstalleerd via de binaire uitvoerbare bestanden op de cURL-projectpagina of door het te selecteren in het Cygwin-installatieprogramma. Houd er echter rekening mee dat, aangezien de API is gebaseerd op open formaten, u bijna elke andere dergelijke netwerktool of programmeertaal kunt gebruiken om er toegang toe te krijgen.

Bovendien gaan we gebruiken OpenSSL om onze certificaatopdracht voor te bereiden. OpenSSL is een open-source toolkit die bijna elke cryptografische bewerking kan uitvoeren die u nodig heeft. Deze tool is ook opgenomen in de Cygwin-pakketlijst, dus je kunt het ofwel selecteren voor installatie tijdens het instellen van je Cygwin-instantie, of het handmatig installeren via de binaire bestanden die op de startpagina van het project staan.

Ten slotte heeft u twee API-sleutels nodig om met de Sandbox te werken, die aan uw gebruikersaccount zijn gekoppeld. Als je nog geen account in de Sandbox hebt, registreer je dan via de Sandbox's  inschrijfformulier. Het proces is identiek aan het aanmaken van een normaal SSL.com-klantaccount. Als je al een account in de Sandbox hebt, kun je deze stap gerust overslaan.

Toegang tot de API

Onze SWS API is gebaseerd op HTTP (de protocolbrowsers gebruiken) en alle gegevens worden uitgewisseld in de JSON-indeling.

Voor de meeste API-aanroepen moet u een account_key en secret_key parameter voor autorisatiedoeleinden. U kunt de inloggegevens van uw account altijd vinden op de Dashboard-pagina van de Sandbox, maar in dit geval gaan we ze ophalen via de API.

De opdracht die in het volgende codefragment wordt vermeld, logt u in op de portal en haalt de gegevens van uw account op, inclusief deze API-sleutels. Als u de opdracht in een terminalvenster kopieert en plakt, zorg er dan voor dat u USERNAME en PASSWORD met de inloggegevens van uw account.

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

Hoewel syntaxis van cURL is vrij eenvoudig, laten we u er meer vertrouwd mee maken door de vorige oproep in detail te bekijken.

  • -L instrueert cURL om alle HTTP-omleidingen te volgen. U moet deze optie opnemen in alle oproepen om problemen te voorkomen.
  • --cacert SSL_COM_RSA_SSL_SUBCA.crt instrueert cURL om het certificaat van de API-server te valideren, met het certificaat dat we in de bundel hebben gedownload. Hierdoor kan cURL alle naar de server verzonden gegevens versleutelen.
  • --request GET instrueert cURL om een ​​HTTP GET-verzoek uit te voeren. Sommige oproepen accepteren alleen HTTP POST- of PUT-verzoeken. Deze optie is de manier om dergelijke verzoeken af ​​te handelen.
  • --data-urlencode bereidt het wachtwoord van de account voor om naar de server te worden verzonden. GET-verzoeken kunnen parameters in de URL bevatten, terwijl PUT- en POST-verzoeken alleen parameters in de hoofdtekst bevatten. Aangezien het wachtwoord via de URL wordt doorgegeven, moeten we het coderen om eventuele symbolen te ontsnappen (bijv / , ? or # ) die de server kunnen verwarren. Dit proces wordt genoemd URL-codering.
NOTITIE: De backslash (\) aan het einde van de eerste regel dwingt Linux terminal om een ​​nieuw-regel teken te negeren en door te gaan met het ontleden van tekens op de volgende regel als onderdeel van de oorspronkelijke opdracht. We zullen deze syntaxis gebruiken om lange opdrachten in meerdere regels op te splitsen, in een poging ze beter presentabel te maken.

Het resultaat van de API-aanroep is een JSON-object met accountgegevens, waaronder de account_key en secret_key, vereist in volgende API-aanroepen.

Geef een servercertificaat uit

Nadat je de werkomgeving hebt voorbereid en de API-sleutels hebt gekregen, ben je nu klaar om te gaan spelen met de API. Als voorbeeld vragen we om de uitgifte van een Basis SSL-certificaat voor een denkbeeldige webserver genaamd example.ssl.com. Ongeacht of u de API of het klantenportaal gebruikt, voor de uitgifte van een certificaat zijn bepaalde stappen vereist.

Deze stappen omvatten het genereren van een privé- en een openbaar sleutelpaar, het maken van een aanvraag voor certificaatondertekening (CSR), het maken van een certificaatopdracht en het uitvoeren van de domein controle validatie.

Genereer de CSR

Er zijn verschillende methoden om een ​​te maken CSR, maar aangezien we de terminal al gebruiken, laten we eens kijken hoe we een CSR met OpenSSL. Als je al een CSR die u hiervoor kunt gebruiken, kunt u deze stap overslaan.

A CSR is een base64-gecodeerd bestand dat de meeste informatie bevat die in het uiteindelijke certificaatbestand zal worden opgenomen. Een van de belangrijkste inhoud is de public keys en domeinnaam van de server het certificaat wordt afgegeven voor.

Dat betekent dat we een paar openbare sleutels nodig hebben voordat we een CSR. De volgende opdracht maakt een nieuwe aan PEM bestand in de werkmap, genaamd example.ssl.com.key, met de twee sleutels.

$ openssl genrsa -out example.ssl.com.key 2048 Genereren van RSA private key, 2048 bit lange modulus ................... +++ ...... .................................................. ...... +++ e is 65537 (0x010001)

Met behulp van het sleutelpaar kan OpenSSL nu een CSR voor jou. Gebruik hiervoor de opdracht die wordt weergegeven in het volgende codefragment.

$ openssl req -new -key example.ssl.com.key -out example.ssl.com.csr U wordt gevraagd om informatie in te voeren die in uw certificaataanvraag wordt opgenomen. Wat u gaat invoeren is wat een Distinguished Name of DN wordt genoemd. Er zijn behoorlijk wat velden, maar u kunt er een aantal leeg laten. Voor sommige velden is er een standaardwaarde. Als u '.' invoert, blijft het veld leeg. ----- Landnaam (2-lettercode) [AU]:VS Staat of provincienaam (volledige naam) [Some-State]:Texas Plaatsnaam (bijv. stad) []:Houston Organisatienaam (bijv. bedrijf) [Internet Widgits Pty Ltd]:Voorbeeld Naam van organisatorische eenheid (bijv. sectie) []:Voorbeeld Algemene naam van afdeling (bijv. server FQDN of UW naam) []:example.ssl.com E-mailadres []:admin@example.ssl.com Voer de volgende 'extra' kenmerken in die met uw certificaataanvraag moeten worden meegestuurd Een uitdagingswachtwoord []: Een optionele bedrijfsnaam []:

OpenSSL zal u vragen naar uw basis contactgegevens en de Gemeenschappelijke naam van het certificaat. Voor SSL-certificaten is de Common Name de domeinnaam van de server (in dit geval example.ssl.com). Als u de bovenstaande opdracht uitvoert, wordt een bestand met de naam gemaakt example.ssl.com.csr, in de huidige directory die de base64-codering bevat 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-----

Maak de certificaatbestelling

Na de CSR, bent u nu klaar om een ​​certificaatopdracht aan te maken via de API. De eerste API-aanroep die we hebben bekeken, was een GET-verzoek, terwijl dit een POST is. POST-verzoeken moeten alle parameters in hun hoofdtekst bevatten als JSON-objecten. Daarom moet u de parameters van de certificaatorder in JSON opmaken. Een JSON-configuratie voor dit voorbeeld is te vinden in het volgende fragment.

{ "account_key": "4497618e5c98", "secret_key": "FY+s9/ghUrv7SQ==", "product": "106", "period": "365", "server_software": "15", "organization_name": "Voorbeeld", "street_address_1": "Voorbeeld st", "locality_name": "Houston", "state_or_province_name": "Texas", "postal_code": "77777", "country_name": "VS", "duns_number": "1234567", "company_number": "Voorbeeld nummer", "registered_country_name": "VS", "unique_value": "1ed1c72baf", "csr":"-----BEGIN CERTIFICAAT AANVRAAG-----MIIDIjCCAgwaRlkPnuD ... 0QQ3JKQqJbii3760Rgon8hZmbkiE=-----EINDE CERTIFICAATAANVRAAG-----" }

We hebben de API-sleutels al eerder gezien. Om certificaten te bestellen, moeten we echter ook aanvullende parameters opnemen, zoals de product ID en de geldigheid period. U vindt een lijst met product-ID's in de SWS API-documentatie. In dit voorbeeld is de bestelling gedaan voor een basis SSL certificaat met een geldigheidsduur van 1 jaar. De volgende groep parameters slaat contactgegevens op over de registrant (dat ben jij). De unique_value parameter (optioneel), bevat een alfanumerieke tekenreeks die het unieke karakter van het verzoek garandeert. Als u geen unieke waarde opgeeft, wordt er een willekeurige voor u gegenereerd. Het op deze manier specificeren van een unieke waarde is handig als u DCV-bestanden of CNAME-vermeldingen wilt genereren buiten het gebruikersportaal van SSL.com. eindelijk, de csr parameter moet een geldige base64-gecodeerde bevatten CSR, zoals degene waarin we hebben opgeslagen example.ssl.com.csr.

Vervang de parameters door uw eigen waarden contactgegevens en CSRen sla deze JSON-configuratie op in een bestand met de naam example.ssl.com.json.

Opmerking: Zorg ervoor dat u alle nieuwe-lijntekens uit de CSR voordat u het aan de opdracht toevoegt. Nieuwe regels worden gebruikt om de terminal te instrueren om de ingevoerde tekst te verwerken tot het teken van de nieuwe regel. Als u de tekens achterlaat, kunnen uw cURL-opdrachten mislukken.

Nu alles is ingesteld, bent u klaar om uw bestelling te maken. cURL accepteert de JSON-parameters als een inline-tekenreeks of via een bestandsnaam. Omdat de eerste optie te uitgebreid is, laten we in plaats daarvan de bestandsnaam doorgeven.

Let op de --data-binary cURL-schakelaar, die cURL instrueert om de inhoud van het bestand op te nemen in de hoofdtekst van het POST-verzoek.

$ curl -L --cacert SSL_COM_RSA_SSL_SUBCA.crt --request POST --header "Content-Type: application/json" \ --data-binary "@example.ssl.com.json" 'https://sws-test.sslpki.com/certificates' { "ref": "co-ac1ecm200", "registrant": { "organization": "Example", "organization_unit": 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", "email": null }, "order_status": "validatie vereist", "validations": null, "order_amount": "$49.00", "certificate_url": "https://sandbox.ssl.com/team/abc-1ec6012/certificate_orders/co-ac1ecm200", "receipt_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, "certificaten": null }

Het resultaat van de bewerking is een ander JSON-object dat de details van de nieuw gemaakte certificaatopdracht bevat. We kunnen het zien order_status, en het referentienummer in de ref parameter die wordt gebruikt om naar deze volgorde te verwijzen in alle volgende API-aanroepen. Bovendien bevat de output verschillende URL's, zoals de certificate_url, wat verwijst naar de details van de bestelling in de portal en het validation_url, die verwijst naar de validatiepagina van de bestelling.

Tenslotte certificates bevat alle certificaten die aan de bestelling zijn gekoppeld. Aangezien de bestelling nog niet is gevalideerd, zijn er geen certificaten aangemaakt.

Domeinbeheer validatie

Zoals vermeld in de certificaatbestellingen order_status of validation required, moet u de validatie uitvoeren voordat u een certificaat krijgt.

Openbaar vertrouwde CA's (zoals SSL.com) zijn vereist om te verifiëren dat de koper van het certificaat inderdaad de server beheert waarvoor het certificaat zal worden uitgegeven voordat ze certificaten uitgeven. Dit kan worden bereikt door meerdere methoden, en u kunt alle beschikbare validatiemethoden voor een specifieke order bekijken via deze volgende API-aanroep.

Zorg ervoor dat u het referentienummer vervangt co-ac1ecm200 in de URL met het referentienummer van uw bestelling, die is gegenereerd tijdens de vorige API-oproep.

$ curl --cacert SSL_COM_RSA_SSL_SUBCA.crt --request GET \ --data-urlencode 'geheime_sleutel=FY+s9/ghUrv7SQ==' --data-urlencode 'account_sleutel=4497618e5c98' \ 'https://sws-test.sslpki.com/certificate/co-ac1ecm200/validations/methods' { "instructies": "https://www.ssl.com/faqs/ssl-dv-validatievereisten/", "md5_hash": "29BD4C00B65613CCEC04C19C0050D931", "sha2_hash": "BF340FDFD9C43D45B8310FC4A400E4D4B61CAF8D2002BAAF0945252E35F9D751", "dns_sha2_hash": "BF340FDFD9C43D45B8310FC4A400E4D4.B61CAF8D2002BAAF0945252E35F9D751.167c8a5c49", "dcv_methoden": { "voorbeeld.ssl.com": { "e-mailadressen": [ "beheerder@ssl.com", "beheerder@ssl.com", "webmaster@ssl.com", "hostmaster@ssl.com", "postmaster@ssl.com", "beheerder@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", "contents": "BF340FDFD9C43D45B8310FC4A400E4D4B61CAF8D2002BAAF0945252E35F9D751\nssl.com\n167c8a5c49" }, "cname_csr_hash": { "cname": "_29BD4C00B65613CCEC04C19C0050D931.example.ssl.com. CNAME ff8716e0fd.ssl.com.", "naam": "_29BD4C00B65613CCEC04C19C0050D931.example.ssl.com", "waarde": "BF340FDFD9C43D45B8310FC4A400E4D4.B61CAF8D2002BAAF0945252E35F9D751.ff8716e0fd.ssl.com." } } }, "ca_tag": "ssl.com" }

De geretourneerde uitvoer bevat alle informatie die u nodig hebt om validatie van het domeinbeheer uit te voeren. Als u bijvoorbeeld de http_csr_hash  validatiemethode, moet u een bestand maken op de server waarvoor dit certificaat wordt uitgegeven, met de naam .well_known/pki-validation/29BD4C00B65613CCEC04C19C0050D931.txt. Het bestand moet precies bevatten de waarde van de contents parameter.

Daarna kunt u de validation_url gevonden in het vorige gesprek dat de bestelling heeft aangemaakt en ga verder met de validatie zoals u normaal zou doen met een bestelling die u hebt gemaakt via uw klantenportaal. (U kunt altijd de Validaties pagina en zoek de URL voor de specifieke bestelling).

Nadat de validatie van de domeincontrole is geslaagd, wordt het certificaat uitgegeven en kunt u het downloaden.

Haal het certificaat op

U kunt uw certificaat terugvinden in de webportal of opvragen via de API. Voor onze doeleinden zullen we de API gebruiken. Zoals we in de vorige sectie hebben gezien, bevat het antwoord bij het aanmaken van een nieuwe certificaatopdracht een referentienummer. Dit nummer kan worden gebruikt om de details van de bestelling op te halen, inclusief de feitelijke certificaatgegevens.

$ 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=individually&response_encoding=base64' { "description": "1 jaar basis SSL", "product": "106", "product_name": "basicssl", "order_status": "uitgegeven", "order_date": "2019-05-02T10:08:48.000-05:00", "registrant": { "organization": "Voorbeeld", "organization_unit": null, "straat_adres_1": "Voorbeeld st", "straat_adres_2": null, "straat_adres_3": null, "plaats": "Houston", "staat_of_provincie": "Texas", "postbus": null, "postcode": "77777", "land": "VS", "e-mail": null }, "certificaten": "\nMIIE1TCCA72gAwIBAgIRANsjhF+t ... 4CAw5Egg73IgIHggE1QEZiYQRu+0wDQY\n", "algemene_naam": "voorbeeld.ssl.com", "aangeschafte_hoeveelheid_domeinen": "1", "aangeschafte_hoeveelheid_wildcard": "0", "alternatieve_onderwerpnamen": [ "voorbeeld.ssl.com", "www.example.ssl.com" ], "validaties": null, "ingangsdatum": "2019-05-03T11:22:37.000-05:00", "vervaldatum": "2020-05-02T11:22:37.000-05:00", "algoritme": "SHA256", "extern_ordernummer": null, "domeinen": null, "site_seal_code": null, "abonneeovereenkomst": null, "serversoftware": 15, "contacten": [ { ... }, { ... }] }

Aangezien de API bedoeld is om programmatisch te gebruiken, moet u het JSON-antwoord parseren om het certificaat te isoleren en op te slaan in een bestand. JSON-parsering valt buiten het bestek van dit artikel; het is echter een eenvoudige taak die gemakkelijk kan worden geïmplementeerd in de meeste moderne script- of programmeertalen.

Als u het referentienummer niet bij de hand heeft, kunt u een API-oproep doen om alle certificaatbestellingen van uw account op te halen. Met deze oproep kunt u de bestellingen filteren, evenals welke informatie wordt getoond.

$ 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": "issued", "domains": [ "example.ssl.com" ] }, { "ref": "co-581eclsap", "order_status": "valideren, even geduld", "domains": [ "example.ssl.com" ] }, { "ref": "co-6f1ecm1of", "order_status": "wachten op contacten informatie van klant", "domeinen": [ "test.ssl.com" ] } }

De fields Met de URL-parameter kunt u bepalen welke certificaatdetails in de uitvoer worden weergegeven. U kunt ook pagineren via de per_page en page verzoekparameters. Om het aantal certificaten te beperken op basis van hun uitgiftedatums, kunt u deze gebruiken start en end parameters. Ten slotte kunt u de bestellingen filteren en doorzoeken met criteria zoals product-ID, vervaldatum of een ander veld in het certificaat. Kijk voor meer informatie op SSL.com's API-documentatie.

Trek het certificaat in

De laatste functie die we in deze handleiding gaan bekijken, is het intrekken van bulkcertificaten. Certificaten kunnen u beschermen zolang alleen u (of mensen die u vertrouwt) de bijbehorende privésleutel bezit. Als een privésleutel in gevaar komt of als er informatie op het certificaat moet worden gewijzigd, moet het certificaat onmiddellijk worden ingetrokken en moet er een nieuwe worden uitgegeven.

In gevallen waarin wordt vermoed dat de privésleutel wordt gestolen, is het absoluut noodzakelijk dat clientsoftware (zoals browsers of besturingssystemen) deze zo snel mogelijk niet meer als geldig accepteert. Om deze reden raden we u ten zeerste aan om een ​​geautomatiseerd systeem te implementeren voor het intrekken, opnieuw uitgeven, ophalen en installeren van certificaten op uw servers.

Met de SWS-API van SSL.com kunt u programmatisch een, meer of alle certificaten onder uw certificaatbestellingen intrekken. De volgende API-aanroep zal alle certificaten onder certificaatorder intrekken co-ac1ecm200:

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

Deze cURL-opdracht geeft een VERWIJDER HTTP-verzoek (in plaats van een GET of POST zoals eerdere opdrachten) en biedt de JSON-configuratie inline. Het is ook geldig om een ​​bestand met de JSON-inhoud te maken en het via de bestandsnaam door te geven aan cURL op dezelfde manier als de opdracht die de certificaatopdracht heeft gegeven.

U kunt om het even welke reden aangeven in de reason  parameter, en kan optioneel een lijst met serienummers van certificaten in de JSON bevatten om alleen de certificaten in te trekken die overeenkomen met die serienummers. Als er geen serienummers zijn opgenomen, worden alle certificaten die tot de opgegeven certificaatvolgorde behoren, ingetrokken.

Kijk voor meer informatie over deze API-aanroep op onze API-documentatie.

Conclusie

Dit artikel beschrijft een eenvoudig proces om een ​​DV-servercertificaat uit te geven en in te trekken, als een simplistisch voorbeeld van de bewerkingen die u kunt uitvoeren via de SWS-API van SSL.com. Bij SSL.com moedigen we het gebruik van automatisering waar mogelijk aan, omdat het het gedoe van het handmatig uitvoeren van dezelfde repetitieve taken wegneemt en wat nog belangrijker is, snellere responstijden mogelijk maakt in geval van nood (zie de serienummer entropie probleem).

Voel je vrij om met ons te experimenteren sandbox en SWS-APIen aarzel niet om contact op te nemen met onze ondersteuningsmedewerkers als u problemen ondervindt.

Bedankt voor het kiezen van SSL.com! Als u vragen heeft, neem dan contact met ons op via e-mail op Support@SSL.com, bel 1-877-SSL-SECURE, of klik gewoon op de chatlink rechtsonder op deze pagina. U kunt ook antwoorden op veel voorkomende ondersteuningsvragen vinden in onze kennis basis.
Twitter
Facebook
LinkedIn
Reddit
E-mail of een

Blijf geïnformeerd en veilig

SSL.com is een wereldleider op het gebied van cyberbeveiliging, PKI en digitale certificaten. Meld u aan om het laatste branchenieuws, tips en productaankondigingen te ontvangen van SSL.com.

We willen graag uw feedback

Vul onze enquête in en laat ons uw mening over uw recente aankoop weten.