API SWS của SSL.com - Giới thiệu

Quản lý số lượng lớn chứng chỉ có thể khá phức tạp. Sự cố xảy ra ngẫu nhiên, chẳng hạn như toàn ngành gần đây vấn đề entropy số serial, có thể yêu cầu quản trị viên thu hồi thủ công và cấp lại hàng trăm chứng chỉ cùng một lúc. Các đại lý hỗ trợ và quản trị viên của chúng tôi cũng đã từng trải qua điều này trong quá khứ, một thực tế đã thúc đẩy SSL.com triển khai một giải pháp thiết thực hơn: API dịch vụ web SSL.com (SWS).

API SWS có thể được sử dụng để tự động hóa các hoạt động liên quan đến chứng chỉ khác nhau, chẳng hạn như cấp chứng chỉ, nhập lại và xử lý lại đơn đặt hàng, quản lý quyền truy cập của người dùng, v.v. thông qua bất kỳ ngôn ngữ lập trình hoặc tập lệnh nào. Để nhận các lệnh cURL API được tạo trước cho một đơn hàng riêng lẻ, hãy thử nối thêm /developer ở cuối trang đặt hàng chứng chỉ đó (vd https://www.ssl.com/certificate_orders/co-1234xyz/developer).

Để giới thiệu một số tính năng của API, hướng dẫn này sẽ hướng dẫn bạn cách phát hành chứng chỉ máy chủ web xác thực tên miền (DV). Trong quá trình chúng tôi sẽ đề cập đến nhiều chủ đề hữu ích, chẳng hạn như truy cập API, tạo ra một CSRvà chuẩn bị máy chủ của bạn để xác thực kiểm soát miền. Hơn nữa, chúng ta sẽ thấy cách chúng ta có thể thu hồi hàng loạt chứng chỉ thông qua API, đặc biệt hữu ích trong các trường hợp có sự cố bảo mật.

Hộp cát

Bất kỳ loại tự động hóa nào cũng cần phải thử nghiệm rộng rãi trước khi đưa vào hệ thống sản xuất, đặc biệt là khi có tiền. Vì lý do này, SSL.com đã triển khai và duy trì hộp đựng cát. Sandbox là một bản sao phát triển của API sản xuất của chúng tôi. Nó chứa tất cả các chức năng của bản gốc, nhưng không được kết nối với cơ sở dữ liệu sản xuất. Điều này có nghĩa là bạn có thể tạo người dùng mới và thử nghiệm một cách tự do mà không sợ làm hỏng thứ gì đó và bị tính phí cho một lỗi.

Khi bạn hài lòng rằng tự động hóa của bạn hoạt động đúng trong Sandbox, sau đó bạn có thể chuyển mã của mình sang sản xuất và chắc chắn rằng các tập lệnh của bạn sẽ không bị lỗi.

LƯU Ý: Bài viết này đã được phát triển cho Sandbox và bạn có thể thử nghiệm với bất kỳ lệnh gọi API nào có trong tài liệu này.

API sản xuất có thể được tìm thấy trong URL sau:

https://sws.sslpki.com/

Để thực hiện các lệnh gọi API đến Sandbox, bạn chỉ cần thay đổi tên miền như được hiển thị trong đoạn mã sau:

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

Chuẩn bị môi trường

Trước khi bạn bắt đầu chơi xung quanh với API, trước tiên bạn phải chuẩn bị môi trường làm việc. Các công cụ chúng tôi sẽ sử dụng trong suốt hướng dẫn này là một thiết bị đầu cuối Linux và trình soạn thảo văn bản đáng tin cậy của bạn.

LƯU Ý: Những hướng dẫn này đã được viết cho vanilla Ubuntu Linux phân phối, đó là một môi trường phát triển điển hình mà người ta có thể gặp phải trong thế giới thực. Phải nói rằng, các tập lệnh được cung cấp trong tài liệu này cũng hoạt động trên Windows thông qua Cygwin.

Điều đầu tiên bạn cần là một thư mục cho tất cả các tệp cần thiết. Vì lợi ích của tiện ích, chúng tôi sẽ gọi thư mục này là sslcom_api_test/ hoặc "thư mục làm việc". Để tạo và nhập thư mục, vui lòng nhập các lệnh sau vào thiết bị đầu cuối.

$ mkdir ~ / sslcom_api_test $ cd ~ / sslcom_api_test

Tiếp theo, bạn phải tải xuống Gói chứng chỉ trung gian của SSL.com, là tệp lưu trữ chứa tất cả các tệp chứng chỉ cần thiết để truy cập API một cách an toàn. Bằng cách đó, mọi dữ liệu bạn trao đổi với máy chủ API sẽ được mã hóa và bạn có thể yên tâm rằng mọi thông tin nhạy cảm, như các khóa API, sẽ được bảo vệ khỏi việc nghe lén.

Tải về kho lưu trữ ZIP từ liên kết ở trên và giải nén nó vào thư mục làm việc. (Hãy chắc chắn rằng bạn thay đổi ~/Downloads vào thư mục nơi bạn đã lưu tệp ZIP, nếu cần). Tệp chứng chỉ chúng tôi sẽ sử dụng trong suốt bài viết này là SSL_COM_RSA_SSL_SUBCA.crt.

LƯU Ý: Trên Windows, bạn sẽ phải xác định vị trí lưu trữ ZIP, bấm đúp vào tệp đó và giải nén các tệp trong thư mục làm việc.
$ giải nén ~ / Downloads / SSLcom_DV_CA_Zip.zip -d. Lưu trữ: ./SSLcom_DV_CA_Zip.zip giải nén: ./SSL_COM_RSA_SSL_SUBCA.crt giải nén: ./SSL_COM_ROOT_CERTIFICATION_AUTHORITY_RSA.c trích xuất ngắn: ./CERTUM_TRUSTED_NETWORK_CA.crt

Chúng tôi sẽ sử dụng cURL, một công cụ mạng Linux điển hình, cho tất cả các lệnh gọi API trong hướng dẫn này. cURL có thể thực hiện bất kỳ thao tác HTTP nào và được cài đặt theo mặc định trong hầu hết các bản phân phối Linux. Hơn nữa, cURL có thể được cài đặt dễ dàng trên Windows thông qua các tệp thực thi nhị phân được cung cấp trong trang dự án cURL hoặc bằng cách chọn nó trong trình cài đặt Cygwin. Tuy nhiên, xin lưu ý rằng vì API dựa trên các định dạng mở nên bạn có thể sử dụng hầu hết các công cụ mạng hoặc ngôn ngữ lập trình khác để truy cập nó.

Hơn nữa, chúng tôi sẽ sử dụng OpenSSL để chuẩn bị đơn đặt hàng chứng chỉ của chúng tôi. OpenSSL là một bộ công cụ mã nguồn mở có thể thực hiện hầu hết mọi hoạt động mật mã mà bạn có thể thấy cần. Công cụ này cũng có trong danh sách gói Cygwin, do đó bạn có thể chọn nó để cài đặt trong khi thiết lập phiên bản Cygwin của mình hoặc cài đặt thủ công thông qua các tệp nhị phân được cung cấp trong trang chủ của dự án.

Cuối cùng, bạn sẽ cần hai khóa API để hoạt động với Hộp cát, được liên kết với tài khoản người dùng của bạn. Nếu bạn chưa có tài khoản trong Sandbox, vui lòng đăng ký qua Sandbox's  Mẫu đăng ký. Quá trình này giống với việc tạo tài khoản khách hàng SSL.com thông thường. Nếu bạn đã có tài khoản trong Sandbox, bạn có thể bỏ qua bước này một cách an toàn.

Truy cập API

API SWS của chúng tôi dựa trên HTTP (trình duyệt giao thức sử dụng) và tất cả dữ liệu được trao đổi trong Định dạng JSON.

Phần lớn các lệnh gọi API sẽ yêu cầu bạn bao gồm một account_key và secret_key tham số cho mục đích ủy quyền. Bạn luôn có thể tìm thấy thông tin đăng nhập tài khoản của mình trong trang Bảng điều khiển của Sandbox, mặc dù trong trường hợp này, chúng tôi sẽ truy xuất chúng qua API.

Lệnh được liệt kê trong đoạn mã tiếp theo sẽ đăng nhập bạn vào cổng và truy xuất thông tin tài khoản của bạn bao gồm các khóa API này. Nếu bạn đang sao chép và dán lệnh trong cửa sổ dòng lệnh, hãy đảm bảo rằng bạn thay thế USERNAME và PASSWORD bằng thông tin đăng nhập tài khoản của bạn.

$ curl -L --cacert SSL_COM_RSA_SSL_SUBCA.crt --request GET --data-urlencode 'password=PASSWORD' \ 'https://sws-test.sslpki.com/user/USERNAME' { "đăng nhập": "JDemo", "email": "jdemo@mailinator.com", "số_tài_khoản": "abc-1ec6012", "khóa_tài_khoản": "4497618e5c98", "khóa_bí_mật": "FY+s9/ghUrv7SQ==", "trạng thái": "đã bật", "url_người_dùng": "https://sws-test.sslpki.com/users/1322857", "quỹ_có_sẵn": "$0.00" }

Mặc dù cú pháp của cURL khá đơn giản, hãy để bạn làm quen với nó bằng cách xem xét chi tiết cuộc gọi trước.

  • -L hướng dẫn cURL tuân theo tất cả các chuyển hướng HTTP. Bạn nên bao gồm tùy chọn này trong tất cả các cuộc gọi để tránh mọi vấn đề.
  • --cacert SSL_COM_RSA_SSL_SUBCA.crt hướng dẫn để xác thực chứng chỉ của máy chủ API, với chứng chỉ chúng tôi đã tải xuống trong gói. Điều này sẽ cho phép cURL mã hóa tất cả dữ liệu được gửi đến máy chủ.
  • --request GET hướng dẫn cURL thực hiện yêu cầu HTTP GET. Một số cuộc gọi chỉ chấp nhận yêu cầu HTTP POST hoặc PUT. Tùy chọn này là cách để xử lý các yêu cầu như vậy.
  • --data-urlencode chuẩn bị mật khẩu của tài khoản để truyền đến máy chủ. Yêu cầu GET có thể bao gồm các tham số trong URL, trong khi yêu cầu PUT và POST chỉ bao gồm các tham số trong phần thân. Vì mật khẩu sẽ được chuyển qua URL, chúng tôi phải mã hóa nó để thoát bất kỳ ký hiệu nào (ví dụ: / , ? or # ) có thể gây nhầm lẫn cho máy chủ. Quá trình này được gọi là Mã hóa URL.
LƯU Ý: Dấu gạch chéo ngược (\) ở cuối dòng đầu tiên buộc thiết bị đầu cuối Linux bỏ qua ký tự dòng mới và tiếp tục phân tích cú pháp các ký tự trong dòng tiếp theo như một phần của lệnh gốc. Chúng tôi sẽ sử dụng cú pháp này để phân chia các lệnh dài thành nhiều dòng, trong nỗ lực làm cho chúng có thể trình bày nhiều hơn.

Kết quả của lệnh gọi API là một đối tượng JSON chứa thông tin tài khoản, bao gồm cả account_keysecret_key, được yêu cầu trong các cuộc gọi API tiếp theo.

Cấp chứng chỉ máy chủ

Sau khi đã chuẩn bị môi trường làm việc và nhận được các khóa API, giờ bạn đã sẵn sàng để bắt đầu chơi xung quanh với API. Ví dụ, chúng tôi sẽ yêu cầu ban hành một Chứng chỉ SSL cơ bản cho một máy chủ web tưởng tượng có tên example.ssl.com. Bất kể bạn sử dụng API hay cổng thông tin khách hàng, việc cấp chứng chỉ đòi hỏi phải tuân theo một số bước nhất định.

Các bước này bao gồm tạo cặp khóa riêng và khóa chung, tạo một yêu cầu đăng kí chứng chỉ (CSR), tạo một thứ tự chứng chỉ và thực hiện xác nhận kiểm soát tên miền.

Tạo ra CSR

một số phương pháp để tạo ra một CSR, tuy nhiên, vì chúng tôi đã sử dụng terminal, hãy xem cách tạo CSR với OpenSSL. Nếu bạn đã có một CSR bạn có thể sử dụng cho mục đích này, bạn có thể bỏ qua bước này.

A CSR là một tệp được mã hóa base64 chứa hầu hết các thông tin sẽ được bao gồm trong tệp chứng chỉ cuối cùng. Trong số các nội dung quan trọng nhất của nó là khóa công khaitên miền của máy chủ Giấy chứng nhận sẽ được cấp cho.

Điều đó có nghĩa là chúng ta sẽ cần một cặp khóa công khai trước khi ban hành CSR. Lệnh sau sẽ tạo mới PEM tập tin trong thư mục làm việc, được đặt tên example.ssl.com.key, chứa hai phím.

$ openssl genrsa -out example.ssl.com.key 2048 Tạo khóa cá nhân RSA, mô-đun dài 2048 bit ................... +++ ...... ...................................................... ...... +++ e là 65537 (0x010001)

Sử dụng cặp khóa, OpenSSL hiện có thể tạo CSR cho bạn. Để thực hiện điều này, vui lòng sử dụng lệnh được hiển thị trong đoạn mã sau.

$ openssl req -new -key example.ssl.com.key -out example.ssl.com.csr Bạn sắp được yêu cầu nhập thông tin sẽ được đưa vào yêu cầu cấp chứng chỉ của bạn. Những gì bạn sắp nhập được gọi là Tên phân biệt hoặc DN. Có khá nhiều trường nhưng bạn có thể để trống một số trường Đối với một số trường sẽ có giá trị mặc định, Nếu bạn nhập '.', trường sẽ được để trống. ----- Tên quốc gia (mã 2 chữ cái) [AU]: Tên tiểu bang hoặc tỉnh của Hoa Kỳ (tên đầy đủ) [Some-State]: Tên địa phương Texas (ví dụ: thành phố) []: Tên tổ chức Houston (ví dụ: công ty) [Internet Widgits Pty Ltd]: Ví dụ Tên đơn vị tổ chức (ví dụ: bộ phận) []: Ví dụ Tên chung của phòng ban (ví dụ: Tên miền đầy đủ của máy chủ hoặc tên CỦA BẠN) []: example.ssl.com Địa chỉ email []: admin@example.ssl.com Vui lòng nhập các thuộc tính 'thêm' sau đây để gửi cùng với yêu cầu cấp chứng chỉ của bạn Mật khẩu thử thách []: Tên công ty tùy chọn []:

OpenSSL sẽ hỏi bạn về thông tin liên hệ cơ bản của bạn và Tên gọi chung của chứng chỉ. Đối với chứng chỉ SSL, Tên chung là tên miền của máy chủ (trong trường hợp này example.ssl.com). Chạy lệnh trên sẽ tạo một tệp, được đặt tên example.ssl.com.csr, trong thư mục hiện tại chứa mã hóa 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-----

Tạo thứ tự chứng chỉ

Có được CSR, bây giờ bạn đã sẵn sàng để tạo một đơn đặt hàng chứng chỉ qua API. Lệnh gọi API đầu tiên mà chúng tôi xem xét là một yêu cầu GET, trong khi lệnh gọi này là một ĐĂNG. Yêu cầu POST phải bao gồm tất cả các tham số trong phần thân của chúng dưới dạng đối tượng JSON. Do đó, bạn cần định dạng các tham số của thứ tự chứng chỉ trong JSON. Có thể tìm thấy cấu hình JSON cho ví dụ này trong đoạn mã sau.

{ "account_key": "4497618e5c98", "secret_key": "FY+s9/ghUrv7SQ==", "product": "106", "period": "365", "server_software": "15", "organization_name": "Ví dụ", "street_address_1": "Ví dụ số", "locality_name": "Houston", "state_or_province_name": "Texas", "postal_code": "77777", "country_name": "US", "duns_number": "1234567", "company_number": "Số ví dụ", "registered_country_name": "US", "unique_value": "1ed1c72baf", "csr":"-----BẮT ĐẦU CHỨNG NHẬN YÊU CẦU-----MIIDIjCCAgwaRlkPnuD ... 0QQ3JKQqJbii3760Rgon8hZmbkiE=-----KẾT THÚC YÊU CẦU CHỨNG NHẬN-----" }

Chúng tôi đã thấy các khóa API trước đây. Tuy nhiên, để đặt hàng chứng chỉ, chúng tôi cũng phải bao gồm các tham số bổ sung như product ID và tính hợp lệ period. Bạn có thể tìm thấy danh sách ID sản phẩm trong Tài liệu API SWS. Trong ví dụ này, đơn đặt hàng được thực hiện đối với chứng chỉ SSL cơ bản có thời hạn hiệu lực là 1 năm. Nhóm thông số tiếp theo lưu trữ thông tin liên hệ về người đăng ký (đó là bạn). Các unique_value tham số (tùy chọn), chứa một chuỗi chữ và số đảm bảo tính duy nhất của yêu cầu. Nếu bạn không cung cấp một giá trị duy nhất, một giá trị ngẫu nhiên sẽ được tạo cho bạn. Chỉ định một giá trị duy nhất theo cách này rất hữu ích nếu bạn muốn tạo tệp DCV hoặc mục CNAME bên ngoài cổng người dùng của SSL.com. cuối cùng csr tham số phải chứa mã hóa base64 hợp lệ CSR, giống như cái chúng ta đã lưu trong example.ssl.com.csr.

Thay thế các tham số bằng các giá trị của riêng bạn chi tiết liên lạcCSRvà lưu cấu hình JSON này trong một tệp có tên example.ssl.com.json.

Lưu ý: Vui lòng đảm bảo rằng bạn đã xóa tất cả các ký tự dòng mới khỏi CSR trước khi thêm nó vào lệnh. Dòng mới được sử dụng để hướng dẫn thiết bị đầu cuối xử lý văn bản được nhập cho đến khi ký tự dòng mới. Để lại các ký tự trong có thể làm cho các lệnh cURL của bạn thất bại.

Với mọi thứ đã được thiết lập, bây giờ bạn đã sẵn sàng để tạo đơn hàng của mình. cURL chấp nhận các tham số JSON dưới dạng chuỗi nội tuyến hoặc thông qua tên tệp. Do tùy chọn đầu tiên quá dài dòng, hãy chuyển tên tệp thay thế.

Xin lưu ý --data-binary Công tắc cURL, hướng dẫn cURL đưa nội dung của tệp vào phần nội dung của yêu cầu 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": "Ví dụ", "organization_unit": null, "street_address_1": "Ví dụ 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": "yêu cầu xác thực", "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, "certificates": null }

Kết quả của hoạt động là một đối tượng JSON khác chứa các chi tiết của thứ tự chứng chỉ mới được tạo. Chúng ta có thể thấy nó order_statusvà số tham chiếu của nó trong ref tham số được sử dụng để tham chiếu thứ tự này trong tất cả các lệnh gọi API tiếp theo. Hơn nữa, đầu ra chứa các URL khác nhau, chẳng hạn như certificate_url, trỏ đến chi tiết của đơn đặt hàng trong cổng thông tin và validation_url, trỏ đến trang xác nhận đơn đặt hàng.

Ngoài ra, thẻ cào certificates sẽ chứa tất cả các chứng chỉ liên quan đến đơn hàng. Vì đơn đặt hàng chưa được xác thực, nên không có chứng chỉ nào được tạo.

Xác thực kiểm soát tên miền

Như đã nêu trong lệnh chứng chỉ order_status of validation required, bạn cần thực hiện xác nhận trước khi cấp chứng chỉ.

Các CA đáng tin cậy công khai (chẳng hạn như SSL.com) được yêu cầu xác minh rằng người mua chứng chỉ thực sự kiểm soát máy chủ mà chứng chỉ sẽ được cấp trước khi cấp cho họ bất kỳ chứng chỉ nào. Điều này có thể được thực hiện thông qua nhiều phương phápvà bạn có thể xem tất cả các phương thức xác thực có sẵn cho một đơn đặt hàng cụ thể thông qua lệnh gọi API tiếp theo này.

Hãy chắc chắn rằng bạn thay thế số tham chiếu đồng ac1ecm200 trong URL có số tham chiếu của đơn đặt hàng của bạn, được tạo trong lệnh gọi API trước đó.

$ curl --cacert SSL_COM_RSA_SSL_SUBCA.crt --request GET \ --data-urlencode 'khóa_bí_mật=FY+s9/ghUrv7SQ==' --data-urlencode 'khóa_tài_khoản=4497618e5c98' \ 'https://sws-test.sslpki.com/certificate/co-ac1ecm200/validations/methods' { "hướng dẫn": "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": { "địa chỉ 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.", "tên": "_29BD4C00B65613CCEC04C19C0050D931.example.ssl.com", "giá trị": "BF340FDFD9C43D45B8310FC4A400E4D4.B61CAF8D2002BAAF0945252E35F9D751.ff8716e0fd.ssl.com." } } }, "ca_tag": "ssl.com" }

Đầu ra được trả về sẽ bao gồm tất cả thông tin bạn cần để thực hiện xác nhận kiểm soát miền. Ví dụ: nếu bạn muốn sử dụng http_csr_hash  Phương thức xác thực, bạn phải tạo một tệp trong máy chủ, chứng chỉ này sẽ được cấp cho, được đặt tên .well_known/pki-validation/29BD4C00B65613CCEC04C19C0050D931.txt. Các tập tin nên chính xác chứa giá trị của contents tham số.

Sau đó, bạn có thể truy cập validation_url được tìm thấy trong cuộc gọi trước đó đã tạo đơn hàng và tiến hành xác thực như bạn thường làm với đơn hàng bạn đã tạo qua cổng thông tin khách hàng của mình. (Bạn luôn có thể truy cập Xác nhận trang và tìm URL cho đơn đặt hàng cụ thể).

Sau khi xác thực kiểm soát tên miền thành công xảy ra, chứng chỉ sẽ được cấp và bạn sẽ có thể tải xuống.

Lấy chứng chỉ

Bạn có thể tìm thấy chứng chỉ của mình trong cổng web hoặc truy xuất chứng chỉ đó qua API. Vì mục đích của chúng tôi, chúng tôi sẽ sử dụng API. Như đã thấy trong phần trước, khi tạo một thứ tự chứng chỉ mới, phản hồi chứa một số tham chiếu. Số này có thể được sử dụng để truy xuất thông tin chi tiết của đơn đặt hàng bao gồm cả dữ liệu chứng chỉ thực tế.

$ 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": "SSL cơ bản 1 năm", "product": "106", "product_name": "basicssl", "order_status": "issued", "order_date": "2019-05-02T10:08:48.000-05:00", "registrant": { "organization": "Ví dụ", "organization_unit": null, "street_address_1": "Ví dụ 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", "subject_alternative_names": [ "example.ssl.com", "www.example.ssl.com" ], "xác thực": null, "ngày có hiệu lực": "2019-05-03 11:22:37.000-05:00", "ngày hết hạn": "2020-05-02 11:22:37.000-05:00", "thuật toán": "SHA256", "số đơn hàng bên ngoài": null, "tên miền": null, "mã_seal_site": null, "thỏa thuận_người_ký_ký": null, "phần_mềm_máy_chủ": 15, "liên_hệ": [ { ... }, { ... }] }

Vì API có nghĩa là được sử dụng theo chương trình, bạn phải phân tích phản hồi JSON để tách chứng chỉ và lưu nó vào một tệp. Phân tích cú pháp JSON nằm ngoài phạm vi của bài viết này; tuy nhiên, đây là một nhiệm vụ đơn giản có thể dễ dàng thực hiện trong hầu hết các ngôn ngữ lập trình hoặc kịch bản hiện đại.

Nếu bạn không có số tham chiếu trong tay, bạn có thể thực hiện lệnh gọi API để truy xuất tất cả các đơn đặt hàng chứng chỉ trong tài khoản của mình. Lệnh gọi này cho phép bạn lọc các đơn đặt hàng, cũng như thông tin nào sẽ được hiển thị.

$ 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": "đã phát hành", "domains": [ "example.ssl.com" ] }, { "ref": "co-581eclsap", "order_status": "đang xác thực, vui lòng đợi", "domains": [ "example.ssl.com" ] }, { "ref": "co-6f1ecm1of", "order_status": "đang chờ thông tin liên hệ từ khách hàng", "tên miền": [ "test.ssl.com" ] } }

Sản phẩm fields Tham số URL cho phép bạn kiểm soát chi tiết chứng chỉ nào sẽ được hiển thị trong đầu ra. Bạn cũng có thể phân trang thông qua per_pagepage yêu cầu tham số. Để giới hạn số lượng chứng chỉ dựa trên ngày phát hành, bạn có thể sử dụng startend thông số. Cuối cùng, bạn có thể lọc và tìm kiếm các đơn đặt hàng bằng các tiêu chí như ID sản phẩm, ngày hết hạn hoặc bất kỳ trường nào khác có trong chứng chỉ. Để biết thêm thông tin hãy xem Tài liệu API của SSL.com.

Thu hồi giấy chứng nhận

Tính năng cuối cùng chúng ta sẽ xem xét trong hướng dẫn này là thu hồi chứng chỉ hàng loạt. Chứng chỉ có thể bảo vệ bạn miễn là chỉ bạn (hoặc những người bạn tin tưởng) giữ khóa riêng được liên kết với họ. Trong trường hợp khóa riêng bị xâm phạm hoặc bất kỳ thông tin nào về chứng chỉ cần được thay đổi, thì chứng chỉ phải được thu hồi ngay lập tức và phải cấp một chứng chỉ mới.

Trong trường hợp khóa riêng bị nghi ngờ bị đánh cắp, bắt buộc phần mềm máy khách (như trình duyệt hoặc hệ điều hành) phải ngừng chấp nhận nó càng sớm càng tốt. Vì lý do này, chúng tôi thực sự khuyên bạn nên triển khai một hệ thống tự động thu hồi, cấp lại, truy xuất và cài đặt chứng chỉ trên máy chủ của mình.

API SWS của SSL.com cho phép bạn thu hồi theo chương trình một, nhiều hoặc tất cả các chứng chỉ theo bất kỳ đơn đặt hàng chứng chỉ nào của bạn. Lệnh gọi API sau sẽ thu hồi tất cả các chứng chỉ theo thứ tự chứng chỉ đồng ac1ecm200:

curl --cacert SSL_COM_RSA_SSL_SUBCA.crt --request DELETE --header "Loại nội dung: ứng dụng/json" \ --data-binary '{"account_key":"4497618e5c98","secret_key":"FY+s9/ghUrv7SQ==","reason":"bị đánh cắp"}' \ 'https://sws.sslpki.com/certificate/co-ac1ecm200' { "status":"đã thu hồi" }

Lệnh cURL này đưa ra yêu cầu XÓA HTTP (thay vì GET hoặc POST như các lệnh trước đó) và cung cấp cấu hình JSON nội tuyến. Nó cũng hợp lệ để tạo một tệp có nội dung JSON và chuyển nó đến cURL thông qua tên tệp theo cách tương tự như lệnh đã ban hành thứ tự chứng chỉ.

Bạn có thể chỉ định bất kỳ lý do nào bạn muốn trong reason  và có thể tùy ý bao gồm một danh sách các số sê-ri chứng chỉ trong JSON để chỉ thu hồi các chứng chỉ khớp với các sê-ri đó. Nếu không bao gồm số sê-ri, thì tất cả các chứng chỉ thuộc thứ tự chứng chỉ đã chỉ định sẽ bị thu hồi.

Để biết thêm thông tin về cuộc gọi API này, vui lòng xem qua Tài liệu API.

Kết luận

Bài viết này mô tả một quy trình đơn giản để cấp và thu hồi chứng chỉ máy chủ DV, như một ví dụ đơn giản về các thao tác bạn có thể thực hiện thông qua API SWS của SSL.com. Tại SSL.com, chúng tôi khuyến khích sử dụng tự động hóa nếu có thể vì nó giúp loại bỏ sự phức tạp khi thực hiện thủ công các tác vụ lặp đi lặp lại giống nhau và quan trọng hơn là cho phép thời gian phản hồi nhanh hơn trong các trường hợp khẩn cấp (xem phần vấn đề entropy số serial).

Xin vui lòng thử nghiệm với chúng tôi hộp đựng cátAPI SWSvà đừng ngần ngại liên hệ với các đại lý hỗ trợ của chúng tôi nếu bạn gặp bất kỳ vấn đề nào.

Cảm ơn bạn đã chọn SSL.com! Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với chúng tôi qua email theo địa chỉ Support@SSL.com, gọi 1-877-SSL-SECUREhoặc chỉ cần nhấp vào liên kết trò chuyện ở dưới cùng bên phải của trang này. Bạn cũng có thể tìm thấy câu trả lời cho nhiều câu hỏi hỗ trợ phổ biến trong kiến thức cơ bản.
Twitter
Facebook
LinkedIn
Reddit
E-mail

Luôn cập nhật thông tin và bảo mật

SSL.com là công ty hàng đầu thế giới về an ninh mạng, PKI và chứng chỉ số. Đăng ký để nhận tin tức, thủ thuật và thông báo sản phẩm mới nhất trong ngành từ SSL.com.

Chúng tôi rất mong nhận được phản hồi của bạn

Hãy tham gia cuộc khảo sát của chúng tôi và cho chúng tôi biết suy nghĩ của bạn về lần mua hàng gần đây của bạn.