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ą.
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.
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
.
$ 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=HASŁO' \ '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" }
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.
\
) 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 i 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 example.ssl.com.key -out example.ssl.com.csr Zostaniesz poproszony o podanie informacji, które zostaną włączone do Twojego wniosku o certyfikat. To, co zamierzasz wprowadzić, to tzw. nazwa wyróżniająca lub DN. Jest sporo pól, ale możesz pozostawić niektóre puste. W przypadku niektórych pól będzie wartość domyślna. Jeśli wpiszesz '.', pole pozostanie puste. ----- Nazwa kraju (kod 2-literowy) [AU]: Nazwa stanu lub prowincji USA (pełna nazwa) [Some-State]: Nazwa miejscowości w Teksasie (np. miasto) []: Nazwa organizacji w Houston (np. firma) [Internet Widgits Pty Ltd]: Przykładowa nazwa jednostki organizacyjnej (np. sekcja) []: Przykładowa nazwa działu (np. pełna nazwa domeny serwera lub TWOJA nazwa) []: przykład.ssl.com Adres e-mail []: admin@example.ssl.com Wprowadź następujące „dodatkowe” atrybuty, które zostaną wysłane wraz z żądaniem certyfikatu Hasło zabezpieczające []: 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.
$ 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-----
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", "organization_name": "Example", "street_address_1": "Example st", "locality_name": "Houston", "state_or_province_name": "Texas", "postal_code": "77777", "country_name": "US", "duns_number": "1234567", "company_number": "Przykładowy numer", "registered_country_name": "US", "unique_value": "1ed1c72baf", "csr":"-----POCZĄTEK CERTYFIKATU ŻĄDANIE-----MIIDIjCCAgwaRlkPnuD ... 0QQ3JKQqJbii3760Rgon8hZmbkiE=-----KONIEC ŻĄDANIA CERTYFIKATU-----" }
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
.
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 "Typ zawartości: application/json" \ --data-binary "@example.ssl.com.json" 'https://sws-test.sslpki.com/certificates' { "ref": "co-ac1ecm200", "rejestrujący": { "organizacja": "Przykład", "jednostka_organizacyjna": null, "adres_ulicy_1": "Przykład st", "adres_ulicy_2": null, "adres_ulicy_3": null, "lokalizacja": "Houston", "stan_lub_prowincja": "Teksas", "skrzynka_pocztowa": null, "kod_pocztowy": "77777", "kraj": "US", "email": null }, „order_status”: „wymagana walidacja”, „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”, „zewnętrzny_numer_zamówienia”: null, „certyfikaty”: null }
Wynikiem operacji jest kolejny obiekt JSON, który zawiera szczegóły nowo utworzonego zamówienia na certyfikat. Widzimy to order_status
oraz 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 'klucz_tajny=FY+s9/ghUrv7SQ==' --data-urlencode 'klucz_konta=4497618e5c98' \ 'https://sws-test.sslpki.com/certificate/co-ac1ecm200/validations/methods' { "instructions": "https://www.ssl.com/faqs/ssl-dv-validation-requirements/", "md5_hash": "29BD4C00B65613CCEC04C19C0050D931", "sha2_hash": „BF340FDFD9C43D45B8310FC4A400E4D4B61CAF8D2002BAAF0945252E35F9D751”, „dns_sha2_hash”: „BF340FDFD9C43D45B8310FC4A400E4D4.B61CAF8D2002BAAF0945252E35F9D751.167c8a5c49”, „metody_dcv”: { „przykład.ssl.com”: { „adresy_email”: [ „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", "contents": "BF340FDFD9C43D45B8310FC4A400E4D4B61CAF8D2002BAAF0945252E35F9D751\nssl.com\n167c8a5c49" }, "cname_csr_hash": { „cname”: „_29BD4C00B65613CCEC04C19C0050D931.example.ssl.com. CNAME ff8716e0fd.ssl.com.”, „name”: „_29BD4C00B65613CCEC04C19C0050D931.example.ssl.com”, „value”: „BF340FDFD9C43D45B8310FC4A400E4D4.B61CAF8D2002BAAF0945252E35F9D751.ff8716e0fd.ssl.com.” } } }, „ca_tag”: „ssl.com” }
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=individually&response_encoding=base64' { "description": "Podstawowy certyfikat SSL na 1 rok", "product": "106", "product_name": "basicssl", "order_status": "issued", "order_date": "2019-05-02T10:08:48.000-05:00", "registrant": { "organization": "Przykład", „organization_unit”: null, „street_address_1”: „Przykład st”, „street_address_2”: null, „street_address_3”: null, „locality”: „Houston”, „state_or_province”: „Teksas”, „post_office_box”: null, „postal_code”: „77777”, „country”: „US”, „email”: null }, „certificates”: „\nMIIE1TCCA72gAwIBAgIRANsjhF+t ... 4CAw5Egg73IgIHggE1QEZiYQRu+0wDQY\n”, „common_name”: „example.ssl.com”, „domains_qty_purchased”: „1”, „wildcard_qty_purchased”: „0”, „subject_alternative_names”: [ „example.ssl.com”, „www.example.ssl.com” ], „walidacje”: null, „data_obowiązywania”: „2019-05-03T11:22:37.000-05:00”, „data_wygaśnięcia”: „2020-05-02T11:22:37.000-05:00”, „algorytm”: „SHA256”, „zewnętrzny_numer_zamówienia”: null, „domeny”: null, „kod_pieczęci_witryny”: null, „umowa_subskrybenta”: null, „oprogramowanie_serwerowe”: 15, „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.
Wyszukaj zamówienia certyfikatów
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ć", "domains": [ "example.ssl.com" ] }, { "ref": „co-6f1ecm1of”, „order_status”: „oczekiwanie na informacje kontaktowe od klienta”, „domains”: [ „test.ssl.com” ] } }
Kurs 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 "Typ zawartości: application/json" \ --data-binary '{"account_key":"4497618e5c98","secret_key":"FY+s9/ghUrv7SQ==","reason":"skradziony"}' \ 'https://sws.sslpki.com/certificate/co-ac1ecm200' { "status":"odwołany" }
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.
Podsumowanie
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.
- Twoje konto SSL.com - przesyłanie pliku CSR
- Nieudany test wstępny ?!
- Twoje konto SSL.com - walidacje
- Twoje konto SSL.com - zamówienia
- Twoje konto SSL.com - domeny
- SSL /TLS Wydawanie i unieważnianie certyfikatów z ACME
- Obsługiwane moduły HSM w chmurze do podpisywania dokumentów i podpisywania kodu EV