API SWS SSL.com - wprowadzenie

Zarządzanie dużą liczbą certyfikatów może być dość kłopotliwe. Losowo występujące incydenty, takie jak ostatnie w całej branży problem z entropią numeru seryjnego, może wymagać od administratorów ręcznego odwołania i ponownego wystawienia setek certyfikatów jednocześnie. Doświadczyli tego nasi nasi agenci wsparcia i administratorzy, co zmotywowało SSL.com do wdrożenia bardziej praktycznego rozwiązania: Interfejs API usług internetowych SSL.com (SWS).

Interfejsu API SWS można używać do automatyzacji różnych operacji związanych z certyfikatami, takich jak wydawanie certyfikatów, ponowne kluczowanie i ponowne przetwarzanie zamówień, zarządzanie dostępem użytkowników itd. Za pośrednictwem dowolnego języka programowania lub skryptowego. Aby uzyskać wstępnie wygenerowane komendy API cURL dla pojedynczego zamówienia, spróbuj dołączyć /developer na końcu strony zamówienia certyfikatu (np https://www.ssl.com/certificate_orders/co-1234xyz/developer).

Aby przedstawić niektóre funkcje interfejsu API, ten samouczek przeprowadzi Cię przez proces wydawania pliku certyfikat serwera internetowego zweryfikowany przez domenę (DV). W tym procesie zajmiemy się wieloma przydatnymi tematami, takimi jak uzyskanie dostępu do interfejsu API, utworzenie CSRi przygotowywanie serwera do weryfikacji kontroli domeny. Co więcej, zobaczymy, jak możemy zbiorczo odwołać certyfikaty za pośrednictwem API, co jest szczególnie przydatne w przypadku incydentów bezpieczeństwa.

Piaskownica

Każdy rodzaj automatyzacji wymaga obszernych testów przed uruchomieniem w systemie produkcyjnym, zwłaszcza gdy wiąże się to z pieniędzmi. Z tego powodu SSL.com wdrożył i utrzymuje Piaskownica. Sandbox jest klonem programistycznym naszego produkcyjnego API. Zawiera wszystkie funkcje oryginału, ale nie jest podłączony do produkcyjnej bazy danych. Oznacza to, że możesz tworzyć nowych użytkowników i swobodnie eksperymentować bez obawy, że coś zepsujesz i zostaniesz obciążony za błąd.

Gdy będziesz zadowolony, że Twoja automatyzacja działa poprawnie w piaskownicy, możesz przenieść kod do wersji produkcyjnej i mieć pewność, że skrypty nie zawiodą.

UWAGA: Ten artykuł został opracowany dla piaskownicy i możesz eksperymentować z dowolnymi wywołaniami API zawartymi w tym dokumencie.

Produkcyjny interfejs API można znaleźć pod następującym adresem URL:

https://sws.sslpki.com/

Aby wykonywać wywołania interfejsu API do piaskownicy, wystarczy zmienić nazwę domeny, jak pokazano w poniższym fragmencie:

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

Przygotuj środowisko

Zanim zaczniesz bawić się interfejsem API, musisz najpierw przygotować środowisko robocze. Narzędziami, których będziemy używać w tym samouczku, są terminal Linux i zaufany edytor tekstu.

UWAGA: Te instrukcje zostały napisane dla wanilii Ubuntu Linux dystrybucja, która jest typowym środowiskiem programistycznym, które można spotkać w prawdziwym świecie. Mimo to skrypty przedstawione w tym dokumencie działają również w systemie Windows za pośrednictwem Cygwin.

Pierwszą rzeczą, której będziesz potrzebować, jest katalog na wszystkie niezbędne pliki. Ze względu na narzędzie będziemy odnosić się do tego katalogu jako sslcom_api_test/ lub „katalog roboczy”. Aby utworzyć i wejść do katalogu, wprowadź następujące polecenia do terminala.

$ mkdir ~ / sslcom_api_test $ cd ~ / sslcom_api_test

Następnie musisz pobrać Pakiet certyfikatów pośrednich SSL.com, który jest plikiem archiwum zawierającym wszystkie niezbędne pliki certyfikatów umożliwiające bezpieczny dostęp do interfejsu API. W ten sposób wszelkie dane wymieniane z serwerem API będą szyfrowane i możesz mieć pewność, że wszelkie poufne informacje, takie jak klucze API, będą chronione przed podsłuchem.

Pobierz archiwum ZIP z linku powyżej i rozpakuj je do katalogu roboczego. (Upewnij się, że się zmieniłeś ~/Downloads do katalogu, w którym zapisałeś plik ZIP, jeśli to konieczne). Plik certyfikatu, którego będziemy używać w tym artykule, to SSL_COM_RSA_SSL_SUBCA.crt.

UWAGA: W systemie Windows musisz zlokalizować archiwum ZIP, kliknąć je dwukrotnie i rozpakować pliki w katalogu roboczym.
$ unzip ~ / Downloads / SSLcom_DV_CA_Zip.zip -d. Archiwum: ./SSLcom_DV_CA_Zip.zip wypakowywanie: ./SSL_COM_RSA_SSL_SUBCA.crt wypakowywanie: ./SSL_COM_ROOT_CERTIFICATION_AUTHORITY_RSA.crt wypakowywanie: ./CERTUM_TRUSTED_NETWORK_CA.crt

Będziemy używać cURL, typowe narzędzie sieciowe Linuksa, dla wszystkich wywołań API w tym samouczku. cURL może wykonywać dowolną operację HTTP i jest instalowany domyślnie w większości dystrybucji Linuksa. Co więcej, cURL można łatwo zainstalować w systemie Windows za pomocą binarnych plików wykonywalnych znajdujących się na stronie projektu cURL lub wybierając go w instalatorze Cygwin. Należy jednak pamiętać, że ponieważ API jest oparte na otwartych formatach, można uzyskać do niego dostęp przy użyciu prawie każdego innego narzędzia sieciowego lub języka programowania.

Co więcej, będziemy korzystać OpenSSL aby przygotować nasze zamówienie na certyfikat. OpenSSL to zestaw narzędzi typu open source, który może wykonać prawie każdą operację kryptograficzną, jakiej możesz potrzebować. To narzędzie znajduje się również na liście pakietów Cygwin, dlatego możesz wybrać je do instalacji podczas konfigurowania instancji Cygwin lub zainstalować je ręcznie za pomocą plików binarnych znajdujących się na stronie głównej projektu.

Na koniec będziesz potrzebować dwóch kluczy API, aby pracować z piaskownicą, które są powiązane z Twoim kontem użytkownika. Jeśli nie masz jeszcze konta w piaskownicy, zarejestruj się za pośrednictwem piaskownicy  Formularz rejestracyjny. Proces jest identyczny jak utworzenie zwykłego konta klienta SSL.com. Jeśli masz już konto w piaskownicy, możesz bezpiecznie pominąć ten krok.

Uzyskaj dostęp do interfejsu API

Nasz interfejs SWS API oparty jest na protokole HTTP (używają przeglądarki protokołów), a wszystkie dane są wymieniane w Format JSON.

Większość wywołań API wymaga dołączenia account_key oraz secret_key parametr do celów autoryzacji. Zawsze możesz znaleźć poświadczenia swojego konta na stronie Pulpit nawigacyjny piaskownicy, chociaż w tym przypadku zamierzamy je odzyskać za pośrednictwem interfejsu API.

Polecenie wymienione w następnym fragmencie kodu spowoduje zalogowanie się do portalu i pobranie informacji o koncie, w tym tych kluczy API. Jeśli kopiujesz i wklejasz polecenie w oknie terminala, upewnij się, że zastąpiłeś USERNAME i PASSWORD z danymi logowania do Twojego konta.

$ 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": "włączone", "user_url": "https: //sws-test.sslpki.com / users / 1322857 "," available_funds ":" 0.00 $ "}

Chociaż składnia cURL jest dość prosta, zapoznajmy się z nią dokładniej, szczegółowo przyglądając się poprzedniej rozmowie.

  • -L instruuje cURL, aby śledził wszystkie przekierowania HTTP. Tę opcję należy uwzględnić we wszystkich połączeniach, aby uniknąć problemów.
  • --cacert SSL_COM_RSA_SSL_SUBCA.crt instruuje cURL aby zweryfikować certyfikat serwera API, z certyfikatem pobranym w pakiecie. Umożliwi to cURL szyfrowanie wszystkich danych wysyłanych do serwera.
  • --request GET instruuje cURL, aby wykonał żądanie HTTP GET. Niektóre połączenia akceptują tylko żądania HTTP POST lub PUT. Ta opcja jest sposobem na obsługę takich żądań.
  • --data-urlencode przygotowuje hasło do konta do przesłania na serwer. Żądania GET mogą zawierać parametry w adresie URL, a żądania PUT i POST tylko parametry w treści. Ponieważ hasło zostanie przekazane za pośrednictwem adresu URL, musimy go zakodować, aby uniknąć symboli (np / , ? or # ), które mogą mylić serwer. Ten proces nazywa się Kodowanie adresów URL.
UWAGA: Ukośnik odwrotny (\) na końcu pierwszego wiersza zmusza terminal Linuksa do zignorowania znaku nowej linii i kontynuowania analizy znaków w następnym wierszu w ramach oryginalnego polecenia. Będziemy używać tej składni do dzielenia długich poleceń na wiele linii, aby uczynić je bardziej reprezentatywnymi.

Wynikiem wywołania interfejsu API jest obiekt JSON zawierający informacje o koncie, w tym account_key i secret_key, wymagane w kolejnych wywołaniach API.

Wystaw certyfikat serwera

Po przygotowaniu środowiska pracy i zdobyciu kluczy API możesz teraz zacząć bawić się interfejsem API. Jako przykład poprosimy o wydanie Podstawowy certyfikat SSL dla wyimaginowanego serwera WWW o nazwie example.ssl.com. Niezależnie od tego, czy korzystasz z interfejsu API czy portalu klienta, wydanie certyfikatu wymaga wykonania określonych kroków.

Kroki te obejmują wygenerowanie pary klucza prywatnego i publicznego, utworzenie pliku żądanie podpisania certyfikatu (CSR), utworzenie zamówienia na certyfikat i wykonanie sprawdzanie poprawności kontroli domeny.

Wygeneruj CSR

Tam są kilka metod stworzyć CSRjednak ponieważ używamy już terminala, przyjrzyjmy się, jak utworzyć plik CSR z OpenSSL. Jeśli masz już CSR możesz użyć do tego celu, możesz pominąć ten krok.

A CSR to plik zakodowany w formacie base64, który zawiera większość informacji, które zostaną zawarte w końcowym pliku certyfikatu. Do jego najważniejszych treści należą klucz publiczny oraz nazwa domeny serwera certyfikat zostanie wydany dla.

Oznacza to, że będziemy potrzebować pary kluczy publicznych przed wydaniem CSR. Poniższe polecenie utworzy nowe PEM plik w katalogu roboczym o nazwie example.ssl.com.key, zawierający dwa klucze.

$ openssl genrsa -out example.ssl.com.key 2048 Generowanie klucza prywatnego RSA, moduł o długości 2048 bitów ................... +++ ...... .................................................. ...... +++ e jest 65537 (0x010001)

Korzystając z pary kluczy, OpenSSL może teraz generować plik CSR dla Ciebie. Aby to zrobić, użyj polecenia pokazanego w poniższym fragmencie kodu.

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

Za chwilę zostaniesz poproszony o wprowadzenie informacji, które zostaną uwzględnione we wniosku o certyfikat. To, co zamierzasz wprowadzić, to tak zwana nazwa wyróżniająca lub nazwa wyróżniająca. Jest kilka pól, ale możesz zostawić je puste. W przypadku niektórych pól będzie wartość domyślna. Jeśli wpiszesz „.”, Pole pozostanie puste. ----- Nazwa kraju (dwuliterowy kod) [AU]: Nazwa stanu lub prowincji USA (pełna nazwa) [Jakiś stan]: Nazwa miejscowości w Teksasie (np. Miasto) []: Nazwa organizacji Houston (np. Firma) [Internet Widgits Pty Ltd]: Przykładowa nazwa jednostki organizacyjnej (np. Sekcja) []: Przykładowa nazwa zwyczajowa działu (np. Nazwa FQDN serwera lub TWOJA nazwa) []: example.ssl.com Adres e-mail []: admin@example.ssl. com Wprowadź następujące atrybuty „dodatkowe”, które mają być wysłane wraz z żądaniem certyfikatu. Hasło weryfikacyjne []: Opcjonalna nazwa firmy []:

OpenSSL zapyta Cię o podstawowe informacje kontaktowe oraz Nazwa zwyczajowa certyfikatu. W przypadku certyfikatów SSL nazwa zwykła to nazwa domeny serwera (w tym przypadku example.ssl.com). Uruchomienie powyższego polecenia spowoduje utworzenie pliku o nazwie example.ssl.com.csr, w bieżącym katalogu zawierającym kodowanie base64 CSR.

$ kot przyklad.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-----

Utwórz kolejność certyfikatów

Po uzyskaniu CSR, możesz teraz utworzyć zamówienie na certyfikat za pośrednictwem interfejsu API. Pierwsze wywołanie API, które sprawdziliśmy, było żądaniem GET, podczas gdy to jest POST. Żądania POST muszą zawierać wszystkie parametry w swoich treściach jako obiekty JSON. W związku z tym należy sformatować parametry zamówienia certyfikatu w formacie JSON. Konfigurację JSON dla tego przykładu można znaleźć w poniższym fragmencie.

{"account_key": "4497618e5c98", "secret_key": "FY + s9 / ghUrv7SQ ==", "product": "106", "period": "365", "server_software": "15", "nazwa_organizacji" : "Przykład", "street_address_1": "Example st", "locality_name": "Houston", "state_or_province_name": "Texas", "postal_code": "77777", "country_name": "US", "duns_number": "1234567", "numer_firmy": "Przykładowy numer", "nazwa_zarejestrowanego_kraju": "USA", "unikalna_wartość": "1ed1c72baf", "csr":" ----- POCZĄTEK WNIOSKU O CERTYFIKAT ----- MIIDIjCCAgwaRlkPnuD ... 0QQ3JKQqJbii3760Rgon8hZmbkiE = ----- KONIEC WNIOSKU O CERTYFIKAT ----- "}

Wcześniej już widzieliśmy klucze API. Jednak aby zamówić certyfikaty, musimy również dołączyć dodatkowe parametry, takie jak product ID i ważność period. Listę identyfikatorów produktów można znaleźć w Dokumentacja API SWS. W tym przykładzie zamówienie dotyczy podstawowego certyfikatu SSL z okresem ważności 1 rok. Kolejna grupa parametrów zawiera informacje kontaktowe rejestrującego (czyli Ciebie). Plik unique_value parametr (opcjonalny), zawiera ciąg alfanumeryczny zapewniający niepowtarzalność żądania. Jeśli nie podasz unikalnej wartości, zostanie dla Ciebie wygenerowana losowa. Określenie unikalnej wartości w ten sposób jest przydatne, jeśli chcesz generować pliki DCV lub wpisy CNAME poza portalem użytkowników SSL.com. Wreszcie csr parametr musi zawierać poprawny kodowany base64 CSR, jak ten, który zapisaliśmy example.ssl.com.csr.

Zastąp parametry własnymi wartościami kontakty i CSRi zapisz tę konfigurację JSON w pliku o nazwie example.ssl.com.json.

Uwaga: Upewnij się, że usunąłeś wszystkie znaki nowej linii z CSR przed dodaniem go do polecenia. Nowe wiersze służą do instruowania terminalu, aby przetwarzał wprowadzony tekst do znaku nowego wiersza. Pozostawienie znaków może spowodować, że twoje polecenia cURL zawiodą.

Po skonfigurowaniu wszystkiego możesz teraz utworzyć zamówienie. cURL akceptuje parametry JSON jako ciąg wbudowany lub za pośrednictwem nazwy pliku. Ponieważ pierwsza opcja jest zbyt szczegółowa, przekażmy zamiast tego nazwę pliku.

Proszę zwrócić uwagę na --data-binary przełącznik cURL, który instruuje cURL, aby zawarł zawartość pliku w treści żądania POST.

$ 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 / certificate '{"ref": "co-ac1ecm200", "registerrant": {"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”: „wymaga weryfikacji”, „validations”: null, „order_amount”: „49.00 USD”, „certificate_url”: „https://sandbox.ssl.com/team/abc-1ec6012/certificate_orders/co-ac1ecm200 "," recepty_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 ": zero }

Wynikiem operacji jest kolejny obiekt JSON, który zawiera szczegóły nowo utworzonego zamówienia na certyfikat. Widzimy to order_statusoraz jego numer referencyjny w ref parametr używany do odwołania do tej kolejności we wszystkich kolejnych wywołaniach API. Ponadto dane wyjściowe zawierają różne adresy URL, takie jak certificate_url, co wskazuje na szczegóły zamówienia w portalu i plik validation_url, który wskazuje na stronę weryfikacji zamówienia.

Wreszcie, certificates będzie zawierać wszystkie certyfikaty związane z zamówieniem. Ponieważ zamówienie nie zostało jeszcze zweryfikowane, nie utworzono żadnych certyfikatów.

Sprawdzanie poprawności kontroli domeny

Jak podano w zamówieniu certyfikatu order_status of validation required, musisz przeprowadzić weryfikację przed wydaniem certyfikatu.

Publicznie zaufane urzędy certyfikacji (takie jak SSL.com) są zobowiązane do sprawdzenia, czy nabywca certyfikatu rzeczywiście kontroluje serwer, dla którego zostanie wydany certyfikat, przed wydaniem im jakichkolwiek certyfikatów. Można to osiągnąć poprzez wiele metod, i możesz wyświetlić wszystkie dostępne metody sprawdzania poprawności dla konkretnego zamówienia za pośrednictwem następnego wywołania interfejsu API.

Proszę wymienić numer referencyjny co-ac1ecm200 w adresie URL z numerem referencyjnym zamówienia, który został wygenerowany w poprzednim wywołaniu API.

$ 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 '{"instrukcje": "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 ":" BF340FDFD9C43D45B8310FC4A400E4D4B61CAF8D2002BAAF0945252E35F9D751 \ nc167} "csr_hash ": {" cname ":" _29BD4C00B65613CCEC04C19C0050D931.example.ssl.com. CNAME ff8716e0fd.ssl.com. "," Name ":" _29BD4C00B65613CCEC04C19C0050D931.example.ssl.com "," value ":" BF340FDFD9C43D45B8310FC4A400E4D4.B61CAF8D2002BAF0945252ss.ssl. pl "}

Zwracane dane wyjściowe będą zawierać wszystkie informacje potrzebne do przeprowadzenia weryfikacji kontroli domeny. Na przykład, jeśli chcesz użyć http_csr_hash  metoda sprawdzania poprawności, musisz utworzyć plik na serwerze, dla którego zostanie wystawiony certyfikat, o nazwie .well_known/pki-validation/29BD4C00B65613CCEC04C19C0050D931.txt. Plik powinien dokładnie zawierają wartość contents parametr.

Następnie możesz odwiedzić validation_url znalezione w poprzednim wywołaniu, które utworzyło zamówienie, i kontynuuj weryfikację, tak jak w przypadku zamówienia utworzonego za pośrednictwem portalu klienta. (Zawsze możesz odwiedzić Walidacje stronę i znajdź adres URL określonego zamówienia).

Po pomyślnym sprawdzeniu poprawności kontroli domeny certyfikat zostanie wydany i będzie można go pobrać.

Odzyskaj certyfikat

Możesz znaleźć swój certyfikat w portalu internetowym lub pobrać go za pośrednictwem interfejsu API. Do naszych celów będziemy używać API. Jak widać w poprzedniej sekcji, podczas tworzenia nowego zamówienia na certyfikat odpowiedź zawiera numer referencyjny. Ten numer może być użyty do pobrania szczegółów zamówienia, w tym rzeczywistych danych certyfikatu.

$ 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 = indywidualnie & response_encoding = base64 '{"description": "1 rok Basic SSL", "product": "106", "product_name": "basicssl", "order_status": "wydany" , "data_zamówienia": "2019-05-02T10: 08: 48.000-05: 00", "registerrant": {"organization": "Przykład", "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}," certyfikaty ":" \ nMIIE1TCCA72gAwIBAgIRANsjhF + t ... 4CAw5Egg73IgIHggE1QEZiYQRu + 0wDQY \ n "," nazwa_wspólna ":" example.ssl.com "," domains_qty_qty_purchased ":" domains_qty_qty_purch ":" 1 "," subject_alternative_names ": [" example.ssl.com "," www.example.ssl.com "]," validations ": null," efektywna_data ":" 0-2019-05T03: 11: 22-37.000: 05 "," expiration_date ":" 00-2020-05T02: 11: 22-37.000: 05 "," algorytm ":" SHA00 "," external_order_number ": null," domains ": null," site_seal_code ": null," subscriber_agreement ": null," server_software ": 256," kontakty ": [{...}, {...}]}

Ponieważ interfejs API ma być używany programowo, należy przeanalizować odpowiedź JSON w celu wyizolowania certyfikatu i zapisania go w pliku. Analiza składni JSON wykracza poza zakres tego artykułu; jest to jednak proste zadanie, które można łatwo wykonać w większości nowoczesnych języków skryptowych lub programistycznych.

Jeśli nie masz pod ręką numeru referencyjnego, możesz wysłać wywołanie API, aby pobrać wszystkie zamówienia certyfikatów z Twojego konta. To wywołanie umożliwia filtrowanie zamówień, a także to, które informacje zostaną wyświetlone.

$ 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 ":" weryfikacja, proszę czekać "," domeny ": [" example.ssl.com "]}, {" ref ":" co-6f1ecm1of "," order_status ": "oczekiwanie na informacje kontaktowe od klienta", "domeny": ["test.ssl.com"]}}

Połączenia fields Parametr URL pozwala kontrolować, które szczegóły certyfikatu będą wyświetlane w danych wyjściowych. Możesz dodatkowo paginować za pomocą per_page i page parametry żądania. Aby ograniczyć liczbę certyfikatów na podstawie dat ich wydania, możesz użyć start i end parametry Na koniec możesz filtrować i wyszukiwać zamówienia według kryteriów, takich jak identyfikator produktu, data ważności lub dowolne inne pole zawarte w certyfikacie. Aby uzyskać więcej informacji, spójrz na Dokumentacja API SSL.com.

Odwołaj certyfikat

Ostatnią funkcją, którą omówimy w tym przewodniku, jest masowe cofanie certyfikatów. Certyfikaty mogą Cię chronić, o ile tylko Ty (lub osoby, którym ufasz) posiadasz powiązany z nimi klucz prywatny. W przypadku naruszenia klucza prywatnego lub zmiany jakichkolwiek informacji na certyfikacie, certyfikat należy natychmiast unieważnić i wydać nowy.

W przypadkach podejrzenia kradzieży klucza prywatnego konieczne jest, aby oprogramowanie klienckie (takie jak przeglądarki lub systemy operacyjne) przestało go akceptować tak szybko, jak to możliwe. Z tego powodu zdecydowanie zalecamy wdrożenie automatycznego systemu odwoływania, ponownego wystawiania, pobierania i instalowania certyfikatów na serwerach.

API SWS SSL.com umożliwia programowe unieważnienie jednego, więcej lub wszystkich certyfikatów w ramach dowolnego zamówienia na certyfikaty. Następujące wywołanie interfejsu API spowoduje unieważnienie wszystkich certyfikatów w ramach zamówienia certyfikatu 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 = = "," powód ":" skradziony "} '\' https: //sws.sslpki.com / certificate / co-ac1ecm200 '{"status": "unieważniono"}

Ta komenda cURL wydaje żądanie DELETE HTTP (zamiast GET lub POST jak poprzednie komendy) i zapewnia wbudowaną konfigurację JSON. Prawidłowe jest również utworzenie pliku z zawartością JSON i przekazanie go do cURL przez nazwę pliku w taki sam sposób, jak polecenie, które wydało kolejność certyfikatów.

Możesz podać dowolny powód w reason  parametr i może opcjonalnie zawierać listę numerów seryjnych certyfikatów w JSON, aby unieważnić tylko certyfikaty pasujące do tych numerów seryjnych. Jeśli nie podano numerów seryjnych, wszystkie certyfikaty należące do określonej kolejności certyfikatów zostaną odwołane.

Aby uzyskać więcej informacji na temat tego wywołania interfejsu API, zapoznaj się z naszym Dokumentacja API.

Wnioski

W tym artykule opisano prosty proces wystawiania i unieważniania certyfikatu serwera DV, jako uproszczony przykład operacji, które można wykonać za pośrednictwem SWS API SSL.com. W SSL.com zachęcamy do korzystania z automatyzacji tam, gdzie to możliwe, ponieważ eliminuje ona kłopoty z ręcznym wykonywaniem tych samych powtarzalnych zadań, a co ważniejsze, pozwala na szybsze czasy reakcji w nagłych przypadkach (patrz problem z entropią numeru seryjnego).

Zapraszamy do eksperymentowania z naszymi Piaskownica i API SWSi nie wahaj się skontaktować z naszymi pracownikami pomocy technicznej, jeśli napotkasz jakiekolwiek problemy.

Dziękujemy za wybranie SSL.com! W razie jakichkolwiek pytań prosimy o kontakt mailowy pod adresem Support@SSL.com, połączenie 1-877-SSL-SECURElub po prostu kliknij łącze czatu w prawym dolnym rogu tej strony. Odpowiedzi na wiele często zadawanych pytań można również znaleźć w naszym baza wiedzy.
Twitter
Facebook
LinkedIn
Reddit
E-mail

Bądź na bieżąco i bezpiecznie

SSL.com jest światowym liderem w dziedzinie cyberbezpieczeństwa, PKI i certyfikaty cyfrowe. Zarejestruj się, aby otrzymywać najnowsze wiadomości branżowe, wskazówki i ogłoszenia o produktach od SSL.com.

Będziemy wdzięczni za Twoją opinię

Weź udział w naszej ankiecie i daj nam znać, co myślisz o swoim ostatnim zakupie.