SSL.com의 SWS API – 소개

많은 수의 인증서를 관리하는 것은 매우 번거로울 수 있습니다. 최근 업계 전반에 걸쳐 무작위로 발생하는 사건 일련 번호 엔트로피 문제관리자가 수백 개의 인증서를 한 번에 수동으로 해지하고 다시 발급해야 할 수 있습니다. 우리의 지원 에이전트와 관리자는 과거에도 SSL.com이보다 실용적인 솔루션을 구현하도록 동기를 부여한 사실을 경험했습니다. SSL.com 웹 서비스 (SWS) API.

SWS API는 프로그래밍 또는 스크립팅 언어를 통해 인증서 발급, 주문 키 다시 작성 및 재 처리, 사용자 액세스 관리 등과 같은 다양한 인증서 관련 작업을 자동화하는 데 사용할 수 있습니다. 개별 주문에 대해 사전 생성 된 API cURL 명령을 얻으려면 추가하십시오. /developer 해당 인증서 주문 페이지 끝에서 (예 : https://www.ssl.com/certificate_orders/co-1234xyz/developer).

API의 일부 기능을 소개하기 위해이 자습서에서는 도메인 확인 (DV) 웹 서버 인증서. 이 과정에서 우리는 API 액세스, 생성과 같은 유용한 주제를 다룰 것입니다. CSR, 도메인 제어 유효성 검사를 위해 서버를 준비합니다. 또한 API를 통해 대량으로 인증서를 해지 할 수있는 방법을 살펴볼 것입니다. 이는 특히 보안 사고의 경우에 유용합니다.

샌드 박스

모든 종류의 자동화는 생산 시스템에서 시작하기 전에 특히 돈이 필요한 경우 광범위한 테스트를 필요로합니다. 이러한 이유로 SSL.com은 모래 상자. 샌드 박스는 프로덕션 API의 개발 복제본입니다. 원본의 모든 기능을 포함하지만 프로덕션 데이터베이스에 연결되어 있지 않습니다. 즉, 무언가를 엉망으로 만들고 실수를 저지르는 것에 대한 두려움없이 새로운 사용자를 만들고 자유롭게 실험 할 수 있습니다.

샌드 박스에서 자동화가 제대로 작동하는 것으로 확인되면 코드를 프로덕션으로 이동하여 스크립트가 실패하지 않을 수 있습니다.

알림: 이 기사는 샌드 박스 용으로 개발되었으며이 문서에 포함 된 API 호출을 실험 할 수 있습니다.

프로덕션 API는 다음 URL에서 찾을 수 있습니다.

https://sws.sslpki.com/

샌드 박스에 대한 API 호출을 수행하려면 다음 스 니펫에 표시된대로 도메인 이름 만 변경하면됩니다.

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

환경 준비

API를 가지고 놀기 전에 먼저 작업 환경을 준비해야합니다. 이 튜토리얼에서 사용할 도구는 Linux 터미널 및 신뢰할 수있는 텍스트 편집기입니다.

알림: 이 지침은 바닐라 용으로 작성되었습니다 우분투 리눅스 배포는 실제 환경에서 발생할 수있는 일반적인 개발 환경입니다. 이 문서에서 제공하는 스크립트는 다음을 통해 Windows에서도 작동합니다. Cygwin에서.

가장 먼저 필요한 것은 필요한 모든 파일을위한 디렉토리입니다. 유틸리티를 위해이 디렉토리를 다음과 같이 참조합니다. sslcom_api_test/ 또는 "작업 디렉토리". 디렉토리를 생성하고 입력하려면 터미널에 다음 명령을 실행하십시오.

$ mkdir ~ / sslcom_api_test $ cd ~ / sslcom_api_test

다음으로 다운로드해야합니다 SSL.com의 중간 인증서 번들API에 안전하게 액세스하는 데 필요한 모든 인증서 파일이 포함 된 아카이브 파일입니다. 이렇게하면 API 서버와 교환하는 모든 데이터가 암호화되며 API 키와 같은 민감한 정보가 도청으로부터 보호 될 수 있습니다.

위 링크에서 ZIP 아카이브를 다운로드하여 작업 디렉토리로 압축을 푸십시오. (변경했는지 확인하십시오 ~/Downloads 필요한 경우 ZIP 파일을 저장 한 디렉토리에 저장하십시오. 이 기사 전체에서 사용할 인증서 파일은 SSL_COM_RSA_SSL_SUBCA.crt.

알림: Windows에서는 ZIP 아카이브를 찾아 두 번 클릭 한 후 작업 디렉토리에서 파일을 추출해야합니다.
$ unzip ~ / Downloads / SSLcom_DV_CA_Zip.zip -d. 아카이브 : ./SSLcom_DV_CA_Zip.zip 추출 : ./SSL_COM_RSA_SSL_SUBCA.crt 추출 : ./SSL_COM_ROOT_CERTIFICATION_AUTHORITY_RSA.crt 추출 : ./CERTUM_TRUSTED_NETWORK_CA.crt

우리는 사용할 것입니다 이 자습서의 모든 API 호출에 대한 일반적인 Linux 네트워크 도구입니다. cURL은 모든 HTTP 작업을 수행 할 수 있으며 대부분의 Linux 배포에 기본적으로 설치됩니다. 또한 cURL은 cURL 프로젝트 페이지에 제공된 바이너리 실행 파일을 통해 또는 Cygwin 설치 프로그램에서 선택하여 Windows에 쉽게 설치할 수 있습니다. 그러나 API는 개방형 형식을 기반으로하기 때문에 거의 모든 다른 네트워크 도구 또는 프로그래밍 언어를 사용하여 액세스 할 수 있습니다.

또한, 우리는 사용할 것입니다 OpenSSL을 인증서 주문을 준비합니다. OpenSSL은 필요한 거의 모든 암호화 작업을 수행 할 수있는 오픈 소스 도구 키트입니다. 이 도구는 Cygwin 패키지 목록에도 포함되어 있으므로 Cygwin 인스턴스를 설정하는 동안 설치를 위해 선택하거나 프로젝트의 홈페이지에 제공된 바이너리 파일을 통해 수동으로 설치할 수 있습니다.

마지막으로 사용자 계정과 연결된 Sandbox를 사용하려면 두 개의 API 키가 필요합니다. 아직 샌드 박스에 계정이 없다면 샌드 박스를 통해 등록하십시오.  등록 양식. 프로세스는 일반 SSL.com 고객 계정을 만드는 것과 동일합니다. 샌드 박스에 이미 계정이있는 경우이 단계를 건너 뛸 수 있습니다.

API에 액세스

SWS API는 HTTP (프로토콜 브라우저 사용)를 기반으로하며 모든 데이터는 JSON 형식.

대부분의 API 호출에는 account_key 및 secret_key 권한 부여를위한 매개 변수. 샌드 박스의 대시 보드 페이지에서 언제든지 계정의 자격 증명을 찾을 수 있지만이 경우 API를 통해 검색합니다.

다음 코드 스 니펫에 나열된 명령은 포털에 로그인하고 이러한 API 키를 포함한 계정 정보를 검색합니다. 터미널 창에 명령을 복사하여 붙여 넣는 경우 USERNAME 과 PASSWORD 계정의 자격 증명으로.

$ 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 "}

이기는하지만 cURL의 구문 매우 간단합니다. 이전 통화를 자세히 살펴보면서 더 익숙해 지도록하겠습니다.

  • -L cURL이 모든 HTTP 리디렉션을 따르도록 지시합니다. 문제가 발생하지 않도록 모든 통화에이 옵션을 포함해야합니다.
  • --cacert SSL_COM_RSA_SSL_SUBCA.crt cURL에 지시 API 서버의 인증서를 확인하려면번들로 다운로드 한 인증서와 함께 이렇게하면 cURL이 서버로 전송 된 모든 데이터를 암호화 할 수 있습니다.
  • --request GET cURL에게 HTTP GET 요청을 수행하도록 지시합니다. 일부 호출은 HTTP POST 또는 PUT 요청 만 수락합니다. 이 옵션은 이러한 요청을 처리하는 방법입니다.
  • --data-urlencode 서버로 전송할 계정의 비밀번호를 준비합니다. GET 요청은 URL에 매개 변수를 포함 할 수있는 반면 PUT 및 POST 요청은 본문에 매개 변수 만 포함합니다. 비밀번호는 URL을 통해 전달되므로 기호를 이스케이프하려면 인코딩해야합니다 (예 : / , ? or # ) 서버를 혼동시킬 수 있습니다. 이 과정을 URL 인코딩.
알림: 백 슬래시 (\)는 첫 번째 행의 끝에 Linux 터미널이 개행 문자를 무시하고 원래 명령의 일부로 다음 행의 문자를 계속 구문 분석하도록 강제합니다. 우리는이 구문을 사용하여 긴 명령을 여러 줄로 나누고 더 잘 보이게 만들 것입니다.

API 호출의 결과는 다음을 포함하여 계정 정보가 포함 된 JSON 객체입니다. account_keysecret_key후속 API 호출에 필요합니다.

서버 인증서 발급

작업 환경을 준비하고 API 키를 확보 한 후 이제 API를 사용할 준비가되었습니다. 예를 들어, 우리는 기본 SSL 인증서 가상의 웹 서버라는 example.ssl.com. API를 사용하든 고객 포털을 사용하든 인증서를 발급하려면 특정 단계를 따라야합니다.

이 단계에는 개인 및 공개 키 쌍 생성, 인증서 서명 요청 (CSR), 인증서 주문 생성 및 수행 도메인 제어 검증.

생성 CSR

다음의 몇 가지 방법 만드는 방법 CSR하지만 이미 터미널을 사용하고 있기 때문에 생성하는 방법을 살펴 보겠습니다. CSR OpenSSL로. 이미 가지고 있다면 CSR 이 목적으로 사용할 수 있으므로이 단계를 건너 뛸 수 있습니다.

A CSR 최종 인증서 파일에 포함될 대부분의 정보를 포함하는 base64로 인코딩 된 파일입니다. 가장 중요한 내용은 공개 키 그리고 서버의 도메인 이름 인증서가 발급됩니다.

즉, 공개 키 페어를 발행하기 전에 공개 키 페어가 필요합니다. CSR. 다음 명령은 새로운 것을 만듭니다 PEM 작업 디렉토리의 파일 이름 example.ssl.com.key, 두 개의 키를 포함합니다.

$ openssl genrsa -out example.ssl.com.key 2048 RSA 개인 키 생성, 2048 비트 긴 모듈러스 ................... +++ ...... .................................................. ...... +++ e는 65537 (0x010001)입니다.

키 쌍을 사용하여 OpenSSL은 이제 CSR 당신을 위해. 이를 위해 다음 코드 스 니펫에 표시된 명령을 사용하십시오.

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

인증서 요청에 통합 될 정보를 입력하라는 메시지가 표시됩니다. 입력하려는 내용은 고유 이름 또는 DN입니다. 많은 필드가 있지만 일부는 비워 둘 수 있습니다. 일부 필드에는 기본값이 있습니다. '.'을 입력하면 필드가 비어 있습니다. ----- 국가 이름 (2 자 코드) [AU] : 미국 주 또는도 이름 (전체 이름) [일부 주] : 텍사스 지역 이름 (예 : 도시) [] : 휴스턴 조직 이름 (예 : 회사) [Internet Widgits Pty Ltd] : 조직 단위 이름 예 (예 : 섹션) [] : 예시 부서 일반 이름 (예 : 서버 FQDN 또는 사용자 이름) [] : example.ssl.com 이메일 주소 [] : admin@example.ssl. com 인증서 요청과 함께 전송할 다음 '추가'속성을 입력하십시오. 질문 암호 [] : 선택적 회사 이름 [] :

OpenSSL은 기본 연락처 정보와 공통 이름 인증서의. SSL 인증서의 경우 일반 이름은 서버의 도메인 이름입니다 (이 경우 example.ssl.com). 위의 명령을 실행하면 이름이 지정된 파일이 생성됩니다. example.ssl.com.csrbase64로 인코딩 된 현재 디렉토리에서 CSR.

$ 고양이 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-----

인증서 주문 작성

얻은 CSR, 이제 API를 통해 인증서 주문을 생성 할 준비가되었습니다. 우리가 본 첫 번째 API 호출은 GET 요청이었고 이것은 POST입니다. POST 요청은 본문의 모든 매개 변수를 JSON 객체로 포함해야합니다. 따라서 인증서 주문의 매개 변수를 JSON으로 형식화해야합니다. 이 예제의 JSON 구성은 다음 스 니펫에서 찾을 수 있습니다.

{ "account_key": "4497618e5c98", "secret_key": "FY + s9 / ghUrv7SQ ==", "product": "106", "period": "365", "server_software": "15", "organization_name" : "예", "street_address_1": "예제 st", "locality_name": "Houston", "state_or_province_name": "Texas", "postal_code": "77777", "country_name": "US", "duns_number": "1234567", "company_number": "예제 번호", "registered_country_name": "US", "unique_value": "1ed1c72baf", "csr":"----- 인증서 요청 시작 ----- MIIDIjCCAgwaRlkPnuD ... 0QQ3JKQqJbii3760Rgon8hZmbkiE = ----- 인증서 요청 종료 ----- "}

우리는 이미 API 키를 보았습니다. 그러나 인증서를 주문하려면 다음과 같은 추가 매개 변수를 포함해야합니다. product 아이디와 유효성 period. 제품 ID 목록은 SWS API 설명서. 이 예에서는 유효 기간이 1 년인 기본 SSL 인증서를 주문합니다. 다음 매개 변수 그룹은 등록자 (귀하)에 대한 연락처 정보를 저장합니다. 그만큼 unique_value 매개 변수 (선택 사항)는 요청의 고유성을 보장하는 영숫자 문자열을 포함합니다. 고유 한 값을 제공하지 않으면 임의의 값이 생성됩니다. 이러한 방식으로 고유 값을 지정하면 SSL.com의 사용자 포털 외부에서 DCV 파일 또는 CNAME 항목을 생성하려는 경우 유용합니다. 마지막으로 csr 매개 변수는 유효한 base64로 인코딩되어야합니다. CSR에 저장 한 것과 같은 example.ssl.com.csr.

매개 변수를 자신의 값으로 바꿉니다. 연락처 세부 정보CSR이 JSON 구성을 파일 이름으로 저장하십시오. example.ssl.com.json.

참고 : 줄 바꿈 문자를 모두 제거했는지 확인하십시오 CSR 명령에 추가하기 전에. 줄 바꾸기는 터미널이 줄 바꾸기 문자까지 입력 한 텍스트를 처리하도록 지시하는 데 사용됩니다. 문자를 그대로두면 cURL 명령이 실패 할 수 있습니다.

모든 설정이 완료되었으므로 이제 주문을 생성 할 준비가되었습니다. cURL은 인라인 문자열 또는 파일 이름을 통해 JSON 매개 변수를 허용합니다. 첫 번째 옵션이 너무 장황하므로 대신 파일 이름을 전달하겠습니다.

주의하십시오 --data-binary cURL 스위치는 cURL에 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 / 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": "검증 필요", "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,"인증서 ": 없는 }

작업 결과는 새로 생성 된 인증서 주문의 세부 정보를 포함하는 또 다른 JSON 개체입니다. 우리는 볼 수 있습니다 order_status의 참조 번호 ref 모든 후속 API 호출에서이 순서를 참조하는 데 사용되는 매개 변수입니다. 또한 출력에는 다음과 같은 다양한 URL이 포함됩니다. certificate_url, 포털에서 주문 세부 정보를 가리키고 validation_url주문의 유효성 검사 페이지를 가리 킵니다.

마지막으로, certificates 주문과 관련된 모든 인증서가 포함됩니다. 주문이 아직 검증되지 않았으므로 인증서가 작성되지 않았습니다.

도메인 제어 검증

인증서 주문서에 명시된대로 order_status of validation required인증서를 발급 받기 전에 유효성 검사를 수행해야합니다.

공개적으로 신뢰할 수있는 CA (예 : SSL.com)는 인증서를 발급하기 전에 인증서 구매자가 인증서가 발급 될 서버를 실제로 제어하는지 확인해야합니다. 이것은 여러 방법이 다음 API 호출을 통해 특정 주문에 대해 사용 가능한 모든 유효성 검사 방법을 볼 수 있습니다.

참조 번호를 교체하십시오 co-ac1ecm200 이전 API 호출에서 생성 된 주문의 참조 번호가 포함 된 URL

$ 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 '{ "instructions": "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 ","관리자 @ 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 \ nssl.com \ nXNUMXcXNUMXaXNUMXccsr_hash ": {"cname ":"_29BD4C00B65613CCEC04C19C0050D931.example.ssl.com. CNAME ff8716e0fd.ssl.com. ","name ":"_29BD4C00B65613CCEC04C19C0050D931.example.ssl.com ","value ":"BF340FDFD9C43D45B8310FC4A400E4D4.B61CAF8e2002f0945252BA.s, sl.ca_tag ":} s.sl.ca_tag" com "}

반환 된 출력에는 도메인 제어 유효성 검사를 수행하는 데 필요한 모든 정보가 포함됩니다. 예를 들어 http_csr_hash  유효성 검사 방법을 사용하려면이 인증서가 발급 될 서버에 파일을 만들어야합니다. .well_known/pki-validation/29BD4C00B65613CCEC04C19C0050D931.txt. 파일은 정확하게 의 가치를 포함 contents 매개 변수입니다.

그 후에는 validation_url 이전 호출에서 주문을 생성했으며 일반적으로 고객 포털을 통해 생성 한 주문과 마찬가지로 유효성 검사를 진행합니다. (항상 방문 할 수 있습니다 검증 페이지에서 특정 주문의 URL을 찾습니다).

도메인 제어 유효성 검사가 성공적으로 수행되면 인증서가 발급되고 인증서를 다운로드 할 수 있습니다.

인증서 검색

웹 포털에서 인증서를 찾거나 API를 통해 검색 할 수 있습니다. 우리의 목적을 위해 우리는 API를 사용할 것입니다. 이전 섹션에서 볼 수 있듯이 새 인증서 주문을 만들 때 응답에 참조 번호가 포함됩니다. 이 번호는 실제 인증서 데이터를 포함하여 주문 세부 정보를 검색하는 데 사용할 수 있습니다.

$ 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 년 기본 SSL", "product": "106", "product_name": "basicssl", "order_status": "발행 됨" , "order_date": "2019-05-02T10 : 08 : 48.000-05 : 00", "registrant": { "organization": "예", "organization_unit": null, "street_address_1": "예제 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},"certificates ":"\ nMIIE1TCCA72gAwIBAgIRANsjhF + t ... 4CAw5Egg73IgIHggE1QEZiYQRu + 0wDQY \ n ","common_name ":"example.ssl.com ","domains_qty_purchased ":"1 ","wildcard_qty_purchased ":"0 " 2019 ","subject_alternative_names ": ["example.ssl.com ","www.example.ssl.com "],"validations ": null,"유효 _ 날짜 ":"05-03-11T22 : 37.000 : 05-00 : 2020 ","expiration_date ":"05-02-11T22 : 37.000 : 05-00 : 256 ","algorithm ":"SHA15 ","external_order_number ": null,"domains ": null,"site_seal_code ": null,"subscriber_agreement ": null,"server_software ": XNUMX,"contacts ": [{...}, {...}]}

API는 프로그래밍 방식으로 사용되므로 인증서를 분리하여 파일로 저장하려면 JSON 응답을 구문 분석해야합니다. JSON 구문 분석은이 기사의 범위를 벗어납니다. 그러나 가장 현대적인 스크립팅 또는 프로그래밍 언어로 쉽게 구현할 수있는 간단한 작업입니다.

참조 번호가없는 경우 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 / certificates? fields = domains, ref, order_status '[{ "ref": "co-ac1ecm200", "order_status": "issued", "domains": [ "example.ssl.com"]}, { " ref ":"co-581eclsap ","order_status ":"확인 중입니다. 잠시 기다려주십시오. ","domains ": ["example.ssl.com "]}, {"ref ":"co-6f1ecm1of ","order_status ": "고객의 연락처 정보를 기다리는 중", "도메인": [ "test.ssl.com"]}}

  fields URL 매개 변수를 사용하면 출력에 표시 할 인증서 세부 사항을 제어 할 수 있습니다. 를 통해 추가로 페이지 매김을 할 수 있습니다 per_pagepage 요청 매개 변수. 사용할 수있는 발급 날짜를 기준으로 인증서 수를 제한하려면 startend 매개 변수. 마지막으로 제품 ID, 만료 날짜 또는 인증서에 포함 된 다른 필드와 같은 기준을 사용하여 주문을 필터링하고 검색 할 수 있습니다. 자세한 내용은 SSL.com의 API 문서.

인증서 해지

이 가이드에서 살펴볼 마지막 기능은 대량 인증서 해지입니다. 인증서는 자신 (또는 신뢰할 수있는 사람)만이 자신과 관련된 개인 키를 보유하는 한 귀하를 보호 할 수 있습니다. 개인 키가 손상되거나 인증서에 대한 정보를 변경해야하는 경우 인증서를 즉시 취소하고 새 인증서를 발행해야합니다.

개인 키가 도용 된 것으로 의심되는 경우, 클라이언트 소프트웨어 (예 : 브라우저 또는 운영 체제)가 가능한 한 빨리 유효한 키를 허용하지 않는 것이 중요합니다. 이러한 이유로 서버에서 인증서를 해지, 재발급, 검색 및 설치하는 자동화 된 시스템을 구현하는 것이 좋습니다.

SSL.com의 SWS API를 사용하면 인증서 주문에 따라 하나 이상의 인증서를 프로그래밍 방식으로 취소 할 수 있습니다. 다음 API 호출은 인증서 순서에 따라 모든 인증서를 취소합니다. 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 ":"stolen "} '\'https : //sws.sslpki.com / certificate / co-ac1ecm200 '{ "status": "revoked"}

이 cURL 명령은 이전 명령과 같은 GET 또는 POST 대신 DELETE HTTP 요청을 발행하고 JSON 구성을 인라인으로 제공합니다. 또한 JSON 컨텐츠로 파일을 작성하고 인증서 순서를 발행 한 명령과 동일한 방식으로 파일 이름을 통해 cURL로 전달하는 것도 유효합니다.

당신이 원하는 이유를 지정할 수 있습니다 reason  매개 변수를 포함하고 JSON에 인증서 일련 번호 목록을 포함하여 해당 일련 번호와 일치하는 인증서 만 취소 할 수 있습니다. 일련 번호가 포함되어 있지 않으면 지정된 인증서 순서에 속하는 모든 인증서가 해지됩니다.

이 API 호출에 대한 자세한 내용은 API 문서.

결론

이 문서에서는 SSL.com의 SWS API를 통해 수행 할 수있는 작업의 간단한 예로서 DV 서버 인증서를 발급하고 취소하는 간단한 프로세스를 설명합니다. SSL.com에서는 동일한 반복 작업을 수동으로 수행해야하는 번거 로움을 없애고 더 중요한 것은 긴급 상황에서 더 빠른 응답 시간을 허용하기 때문에 가능한 경우 자동화 사용을 권장합니다 ( 일련 번호 엔트로피 문제).

우리의 실험을 주시기 바랍니다 모래 상자SW API, 문제가 발생하면 주저하지 말고 지원 담당자에게 문의하십시오.

SSL.com을 선택해 주셔서 감사합니다! 문의 사항이 있으시면 이메일로 연락주십시오. Support@SSL.com, 전화 1-877-SSL-SECURE또는이 페이지의 오른쪽 하단에있는 채팅 링크를 클릭하십시오. 또한 Google의 여러 일반적인 지원 질문에 대한 답변을 찾을 수 있습니다. 지식.
트위터
페이스북
링크드인
레딧
이메일

최신 정보를 얻고 보안을 유지하세요

SSL.com 사이버 보안 분야의 글로벌 리더입니다. PKI 그리고 디지털 인증서. 최신 업계 뉴스, 팁, 제품 공지 사항을 받아보려면 등록하세요. SSL.com.

우리는 귀하의 피드백을 환영합니다

설문조사에 참여하여 최근 구매에 대한 의견을 알려주세요.