SWS API ของ SSL.com - บทนำ

การจัดการใบรับรองจำนวนมากอาจเป็นเรื่องยุ่งยาก เหตุการณ์ที่เกิดขึ้นแบบสุ่มเช่นล่าสุดทั่วทั้งอุตสาหกรรม ปัญหาเอนโทรปีของหมายเลขซีเรียลอาจกำหนดให้ผู้ดูแลระบบสามารถเพิกถอนและออกใบรับรองหลายร้อยใบพร้อมกันได้ด้วยตนเอง ตัวแทนฝ่ายสนับสนุนและผู้ดูแลระบบของเราเองเคยประสบปัญหาเช่นนี้มาก่อนในความจริงแล้วสิ่งที่กระตุ้น SSL.com ในการใช้โซลูชันที่ใช้งานได้จริงมากขึ้น: API บริการเว็บ SSL.com (SWS).

SWS API สามารถใช้ในการดำเนินการที่เกี่ยวข้องกับใบรับรองโดยอัตโนมัติเช่นการออกใบรับรองการป้อนซ้ำและการประมวลผลคำสั่งใหม่การจัดการการเข้าถึงของผู้ใช้และอื่น ๆ ผ่านทางโปรแกรมหรือภาษาสคริปต์ใด ๆ หากต้องการรับคำสั่ง cURL API แบบ pregenerated สำหรับคำสั่งซื้อแต่ละรายการให้ลองต่อท้าย /developer ในตอนท้ายของหน้าคำสั่งซื้อใบรับรองนั้น (เช่น https://www.ssl.com/certificate_orders/co-1234xyz/developer).

เพื่อแนะนำคุณลักษณะบางอย่างของ API บทช่วยสอนนี้จะแนะนำคุณตลอดการออกไฟล์ ใบรับรองเซิร์ฟเวอร์เว็บที่ผ่านการตรวจสอบโดเมน (DV). ในกระบวนการเราจะสัมผัสกับหัวข้อที่มีประโยชน์มากมายเช่นการเข้าถึง API การสร้าง a CSRและการเตรียมเซิร์ฟเวอร์ของคุณสำหรับการตรวจสอบการควบคุมโดเมน ยิ่งไปกว่านั้นเราจะดูว่าเราสามารถเพิกถอนใบรับรองจำนวนมากผ่าน API ได้อย่างไรซึ่งมีประโยชน์อย่างยิ่งในกรณีที่เกิดเหตุการณ์ด้านความปลอดภัย

แซนด์บ็อกซ์

ระบบอัตโนมัติทุกประเภทต้องมีการทดสอบอย่างละเอียดก่อนเปิดตัวในระบบการผลิตโดยเฉพาะอย่างยิ่งเมื่อมีเงินเข้ามาเกี่ยวข้อง ด้วยเหตุนี้ SSL.com จึงดำเนินการและดูแลรักษาไฟล์ Sandbox. Sandbox เป็นโคลนการพัฒนาของ API การผลิตของเรา มันมีฟังก์ชั่นทั้งหมดของต้นฉบับ แต่ไม่ได้เชื่อมต่อกับฐานข้อมูลการผลิต ซึ่งหมายความว่าคุณสามารถสร้างผู้ใช้ใหม่และทดสอบได้อย่างอิสระโดยไม่ต้องกลัวว่าจะทำอะไรผิดพลาดและถูกเรียกเก็บเงินสำหรับความผิด

เมื่อคุณพอใจว่าระบบอัตโนมัติของคุณทำงานอย่างถูกต้องใน Sandbox คุณสามารถย้ายรหัสของคุณไปยังการผลิตและมั่นใจว่าสคริปต์ของคุณจะไม่ล้มเหลว

หมายเหตุ: บทความนี้ได้รับการพัฒนาสำหรับ Sandbox และคุณสามารถทดลองกับการเรียก API ใด ๆ ที่มีอยู่ในเอกสารนี้

API การผลิตสามารถพบได้ใน URL ต่อไปนี้:

https://sws.sslpki.com/

ในการทำการเรียก API ไปที่ Sandbox คุณจะต้องเปลี่ยนชื่อโดเมนตามที่แสดงในตัวอย่างต่อไปนี้:

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

เตรียมสิ่งแวดล้อม

ก่อนที่คุณจะเริ่มเล่นกับ API คุณต้องเตรียมสภาพแวดล้อมการทำงานก่อน เครื่องมือที่เราจะใช้ตลอดการสอนนี้คือเทอร์มินัล Linux และโปรแกรมแก้ไขข้อความที่เชื่อถือได้ของคุณ

หมายเหตุ: คำแนะนำเหล่านี้เขียนขึ้นสำหรับวานิลลา Ubuntu 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 ~ / ดาวน์โหลด / 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

เราจะใช้ ม้วนซึ่งเป็นเครื่องมือเครือข่าย Linux ทั่วไปสำหรับการเรียก API ทั้งหมดในบทช่วยสอนนี้ cURL สามารถดำเนินการ HTTP ใด ๆ และติดตั้งโดยค่าเริ่มต้นในการกระจาย Linux ส่วนใหญ่ ยิ่งไปกว่านั้น cURL ยังสามารถติดตั้งบน Windows ได้อย่างง่ายดายผ่านทางไฟล์ปฏิบัติการไบนารีที่ให้ไว้ในหน้าโครงการ cURL หรือโดยการเลือกในโปรแกรมติดตั้ง Cygwin อย่างไรก็ตามโปรดทราบว่าเนื่องจาก API เป็นไปตามรูปแบบเปิดคุณจึงสามารถใช้เครื่องมือเครือข่ายหรือภาษาโปรแกรมอื่น ๆ เกือบทั้งหมดเพื่อเข้าถึงได้

ยิ่งกว่านั้นเรากำลังจะใช้ OpenSSL เพื่อเตรียมคำสั่งใบรับรองของเรา OpenSSL เป็นชุดเครื่องมือโอเพ่นซอร์สที่สามารถดำเนินการเข้ารหัสได้เกือบทุกรูปแบบที่คุณอาจต้องการ เครื่องมือนี้รวมอยู่ในรายการแพ็คเกจ Cygwin ด้วยดังนั้นคุณสามารถเลือกเพื่อติดตั้งขณะตั้งค่าอินสแตนซ์ Cygwin ของคุณหรือติดตั้งด้วยตนเองผ่านไฟล์ไบนารีที่ให้ไว้ในหน้าแรกของโครงการ

สุดท้ายคุณจะต้องมีคีย์ API สองอันเพื่อที่จะทำงานกับ Sandbox ซึ่งเชื่อมโยงกับบัญชีผู้ใช้ของคุณ หากคุณยังไม่มีบัญชีใน Sandbox โปรดลงทะเบียนผ่าน Sandbox  แบบฟอร์มลงทะเบียน. กระบวนการนี้เหมือนกับกระบวนการสร้างบัญชีลูกค้า SSL.com ปกติ หากคุณมีบัญชีอยู่ใน Sandbox คุณสามารถข้ามขั้นตอนนี้ได้อย่างปลอดภัย

เข้าถึง API

SWS API ของเราใช้ HTTP (เบราว์เซอร์โปรโตคอลใช้) และมีการแลกเปลี่ยนข้อมูลทั้งหมดใน รูปแบบ JSON.

การเรียกใช้ API ส่วนใหญ่จะต้องให้คุณรวม account_key และ secret_key พารามิเตอร์สำหรับวัตถุประสงค์ในการอนุญาต คุณสามารถค้นหาข้อมูลรับรองบัญชีของคุณได้ตลอดเวลาในหน้าแดชบอร์ดของ Sandbox แม้ว่าในกรณีนี้เราจะดึงข้อมูลเหล่านี้ผ่าน API

คำสั่งที่แสดงอยู่ในส่วนย่อยของโค้ดถัดไปจะนำคุณเข้าสู่พอร์ทัลและดึงข้อมูลบัญชีของคุณรวมถึงคีย์ API เหล่านี้ หากคุณกำลังคัดลอกและวางคำสั่งในหน้าต่างเทอร์มินัลโปรดตรวจสอบให้แน่ใจว่าคุณได้แทนที่ USERNAME และ PASSWORD ด้วยข้อมูลรับรองบัญชีของคุณ

$ curl -L --cacert SSL_COM_RSA_SSL_SUBCA.crt --request GET --data-urlencode 'รหัสผ่าน=รหัสผ่าน' \ 'https://sws-test.sslpki.com/user/USERNAME' { "เข้าสู่ระบบ": "JDemo", "อีเมล": "jdemo@mailinator.com", "หมายเลขบัญชี": "abc-1ec6012", "คีย์บัญชี": "4497618e5c98", "คีย์ลับ": "FY+s9/ghUrv7SQ==", "สถานะ": "เปิดใช้งาน", "user_url": "https://sws-test.sslpki.com/users/1322857", "เงินทุนที่สามารถใช้ได้": "$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_key และ secret_keyต้องการในการเรียก API ที่ตามมา

ออกใบรับรองเซิร์ฟเวอร์

หลังจากเตรียมสภาพแวดล้อมการทำงานและรับคีย์ API คุณก็พร้อมที่จะเริ่มเล่นกับ API ตัวอย่างเช่นเราจะขอให้ออก ใบรับรอง SSL พื้นฐาน สำหรับชื่อเว็บเซิร์ฟเวอร์ในจินตนาการ example.ssl.com. ไม่ว่าคุณจะใช้ API หรือพอร์ทัลลูกค้าการออกใบรับรองจะต้องทำตามขั้นตอนบางอย่าง

ขั้นตอนเหล่านี้รวมถึงการสร้างคู่คีย์ส่วนตัวและสาธารณะการสร้าง คำขอลงนามใบรับรอง (CSR)สร้างคำสั่งใบรับรองและดำเนินการ การตรวจสอบการควบคุมโดเมน.

สร้าง CSR

มี หลายวิธี เพื่อสร้าง a CSRอย่างไรก็ตามเนื่องจากเราใช้เทอร์มินัลอยู่แล้วเรามาดูวิธีสร้างไฟล์ CSR ด้วย OpenSSL หากคุณมีไฟล์ CSR คุณสามารถใช้เพื่อจุดประสงค์นี้คุณอาจข้ามขั้นตอนนี้

A CSR เป็นไฟล์ที่เข้ารหัส base64 ซึ่งมีข้อมูลส่วนใหญ่ที่จะรวมอยู่ในไฟล์ใบรับรองขั้นสุดท้าย ในบรรดาเนื้อหาที่สำคัญที่สุดคือ คีย์สาธารณะ และ ชื่อโดเมนของเซิร์ฟเวอร์ ใบรับรองจะออกให้

นั่นหมายความว่าเราจะต้องมีคู่กุญแจสาธารณะก่อนที่จะออก CSR. คำสั่งต่อไปนี้จะสร้างใหม่ พีอีเอ็ม ไฟล์ในไดเรกทอรีทำงานชื่อ 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 คุณกำลังจะถูกขอให้ป้อนข้อมูลที่จะรวมไว้ในคำขอใบรับรองของคุณ สิ่งที่คุณกำลังจะป้อนคือสิ่งที่เรียกว่า Distinguished Name หรือ DN มีช่องข้อมูลอยู่หลายช่อง แต่คุณสามารถเว้นว่างไว้ได้ สำหรับช่องข้อมูลบางช่องจะมีค่าเริ่มต้น หากคุณป้อน '.' ช่องข้อมูลจะเว้นว่างไว้ ----- ชื่อประเทศ (รหัส 2 ตัวอักษร) [AU]: ชื่อรัฐหรือจังหวัดในสหรัฐอเมริกา (ชื่อเต็ม) [รัฐบางแห่ง]: ชื่อท้องถิ่นในเท็กซัส (เช่น เมือง) []: ชื่อองค์กรในฮุสตัน (เช่น บริษัท) [Internet Widgits Pty Ltd]: ชื่อหน่วยองค์กรตัวอย่าง (เช่น ส่วน) []: ชื่อทั่วไปของแผนกตัวอย่าง (เช่น FQDN ของเซิร์ฟเวอร์หรือชื่อของคุณ) []:example.ssl.com ที่อยู่อีเมล []:admin@example.ssl.com โปรดป้อนแอตทริบิวต์ 'พิเศษ' ต่อไปนี้ที่จะส่งไปพร้อมกับคำขอใบรับรองของคุณ รหัสผ่านท้าทาย []: ชื่อบริษัทที่เป็นทางเลือก []:

OpenSSL จะถามคุณเกี่ยวกับข้อมูลติดต่อพื้นฐานและ ชื่อสามัญ ของใบรับรอง สำหรับใบรับรอง SSL ชื่อสามัญคือชื่อโดเมนของเซิร์ฟเวอร์ (ในกรณีนี้ example.ssl.com) การรันคำสั่งด้านบนจะสร้างไฟล์ชื่อ example.ssl.com.csrในไดเรกทอรีปัจจุบันที่มีการเข้ารหัส 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-----

สร้างคำสั่งซื้อใบรับรอง

หลังจากได้รับ 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": "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": "Example number", "registered_country_name": "US", "unique_value": "1ed1c72baf", "csr":"-----BEGIN คำขอใบรับรอง-----MIIDIjCCAgwaRlkPnuD ... 0QQ3JKQqJbii3760Rgon8hZmbkiE=-----จบคำขอใบรับรอง-----" }

เราเคยเห็นคีย์ API มาก่อนแล้ว อย่างไรก็ตามในการสั่งซื้อใบรับรองเรายังต้องรวมพารามิเตอร์เพิ่มเติมเช่น product ID และความถูกต้อง period. คุณสามารถค้นหารายการรหัสผลิตภัณฑ์ได้ใน เอกสาร SWS API. ในตัวอย่างนี้คำสั่งสร้างขึ้นสำหรับใบรับรอง SSL พื้นฐานที่มีระยะเวลาการใช้งาน 1 ปี พารามิเตอร์กลุ่มถัดไปจะเก็บข้อมูลติดต่อเกี่ยวกับผู้จดทะเบียน (นั่นคือคุณ) unique_value พารามิเตอร์ (เป็นทางเลือก) มีสตริงตัวอักษรและตัวเลขที่ช่วยให้มั่นใจได้ถึงความเป็นเอกลักษณ์ของคำขอ หากคุณไม่ได้ระบุค่าที่ไม่ซ้ำกันระบบจะสร้างค่าแบบสุ่มให้คุณ การระบุค่าเฉพาะด้วยวิธีนี้มีประโยชน์หากคุณต้องการสร้างไฟล์ DCV หรือรายการ CNAME ภายนอกพอร์ทัลผู้ใช้ของ SSL.com สุดท้าย 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": "ตัวอย่าง", "organization_unit": null, "street_address_1": "ตัวอย่าง st", "street_address_2": null, "street_address_3": null, "locality": "ฮูสตัน", "state_or_province": "เท็กซัส", "post_office_box": null, "postal_code": "77777", "country": "US", "email": null }, "order_status": "จำเป็นต้องมีการตรวจสอบ", "การตรวจสอบความถูกต้อง": 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, "ใบรับรอง": null }

ผลลัพธ์ของการดำเนินการคือออบเจ็กต์ JSON อื่นซึ่งมีรายละเอียดของคำสั่งใบรับรองที่สร้างขึ้นใหม่ เราสามารถดูได้ order_statusและหมายเลขอ้างอิงใน ref พารามิเตอร์ที่ใช้ในการอ้างอิงคำสั่งนี้ในการเรียก API ที่ตามมาทั้งหมด นอกจากนี้ผลลัพธ์ยังมี URL ต่าง ๆ เช่น certificate_urlซึ่งชี้ไปที่รายละเอียดของคำสั่งซื้อในพอร์ทัลและ validation_urlซึ่งชี้ไปที่หน้าการตรวจสอบความถูกต้องของคำสั่งซื้อ

ในที่สุด certificates จะมีใบรับรองทั้งหมดที่เกี่ยวข้องกับการสั่งซื้อ เนื่องจากคำสั่งซื้อยังไม่ผ่านการตรวจสอบจึงไม่มีการสร้างใบรับรอง

การตรวจสอบการควบคุมโดเมน

ตามที่ระบุไว้ในใบสั่งใบรับรอง order_status of validation requiredคุณต้องทำการตรวจสอบก่อนที่จะมีการออกใบรับรอง

CAs ที่เชื่อถือได้แบบสาธารณะ (เช่น SSL.com) จำเป็นต้องตรวจสอบว่าผู้ซื้อใบรับรองควบคุมเซิร์ฟเวอร์จริงหรือไม่ที่จะออกใบรับรองก่อนที่จะออกใบรับรองใด ๆ สิ่งนี้สามารถทำได้ผ่าน หลายวิธีและคุณสามารถดูวิธีการตรวจสอบทั้งหมดที่มีอยู่สำหรับคำสั่งซื้อเฉพาะผ่านการเรียก API ครั้งต่อไปนี้

โปรดตรวจสอบให้แน่ใจว่าคุณแทนที่หมายเลขอ้างอิง ร่วม ac1ecm200 ใน URL พร้อมหมายเลขอ้างอิงคำสั่งซื้อของคุณซึ่งสร้างขึ้นในการเรียก 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' { "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": { "ที่อยู่อีเมล": [ "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.", "ชื่อ": "_29BD4C00B65613CCEC04C19C0050D931.example.ssl.com", "ค่า": "BF340FDFD9C43D45B8310FC4A400E4D4.B61CAF8D2002BAAF0945252E35F9D751.ff8716e0fd.ssl.com" } } }, "ca_tag": "ssl.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": "SSL พื้นฐาน 1 ปี", "product": "106", "product_name": "basicssl", "order_status": "issued", "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", "subject_alternative_names": [ "example.ssl.com", "www.example.ssl.com" ], "validations": null, "effective_date": "2019-05-03T11:22:37.000-05:00", "expiration_date": "2020-05-02T11:22:37.000-05:00", "algorithm": "SHA256", "external_order_number": null, "domains": null, "site_seal_code": null, "subscriber_agreement": null, "server_software": 15, "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": "กำลังรอข้อมูลติดต่อจากลูกค้า", "domains": [ "test.ssl.com" ] } }

รางวัล fields พารามิเตอร์ URL ช่วยให้คุณควบคุมรายละเอียดใบรับรองที่จะแสดงในผลลัพธ์ นอกจากนี้คุณยังสามารถเลขหน้าผ่านทาง per_page และ page พารามิเตอร์การร้องขอ หากต้องการ จำกัด จำนวนใบรับรองตามวันที่ออกให้คุณสามารถใช้ start และ end พารามิเตอร์ สุดท้ายคุณสามารถกรองและค้นหาคำสั่งซื้อโดยใช้เกณฑ์เช่นรหัสผลิตภัณฑ์วันหมดอายุหรือฟิลด์อื่น ๆ ที่มีอยู่ในใบรับรอง สำหรับข้อมูลเพิ่มเติมลองดูที่ เอกสาร API ของ SSL.com.

เพิกถอนใบรับรอง

คุณสมบัติสุดท้ายที่เราจะดูในคู่มือนี้คือการเพิกถอนใบรับรองจำนวนมาก ใบรับรองสามารถปกป้องคุณตราบเท่าที่มีเพียงคุณ (หรือคนที่คุณไว้วางใจ) ถือกุญแจส่วนตัวที่เกี่ยวข้องกับพวกเขา ในกรณีที่คีย์ส่วนตัวถูกโจมตีหรือข้อมูลใด ๆ เกี่ยวกับใบรับรองจำเป็นต้องเปลี่ยนดังนั้นใบรับรองจะต้องถูกเพิกถอนทันทีและควรจะออกใหม่

ในกรณีที่สงสัยว่ามีการขโมยกุญแจส่วนตัวจำเป็นต้องให้ซอฟต์แวร์ไคลเอนต์ (เช่นเบราว์เซอร์หรือระบบปฏิบัติการ) หยุดการยอมรับให้ถูกต้องโดยเร็วที่สุด ด้วยเหตุนี้เราขอแนะนำให้คุณใช้ระบบอัตโนมัติในการเพิกถอนการออกใหม่เรียกคืนและติดตั้งใบรับรองบนเซิร์ฟเวอร์ของคุณ

SWS API ของ SSL.com ช่วยให้คุณสามารถเพิกถอนใบรับรองหนึ่งใบรับรองมากกว่าหรือทั้งหมดโดยทางโปรแกรมภายใต้คำสั่งใบรับรองของคุณ การเรียก API ต่อไปนี้จะเพิกถอนใบรับรองทั้งหมดภายใต้คำสั่งใบรับรอง ร่วม 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 นี้ออกคำร้องขอ DELETE HTTP (แทน GET หรือ POST เช่นคำสั่งก่อนหน้า) และจัดเตรียมอินไลน์การกำหนดค่า JSON นอกจากนี้ยังสามารถสร้างไฟล์ที่มีเนื้อหา JSON และส่งต่อไปยัง cURL ผ่านทางชื่อไฟล์ในลักษณะเดียวกับคำสั่งที่ออกคำสั่งใบรับรอง

คุณสามารถระบุเหตุผลใดก็ได้ที่คุณต้องการใน reason  พารามิเตอร์และอาจรวมถึงรายการหมายเลขซีเรียลใบรับรองใน JSON เพื่อเพิกถอนใบรับรองที่ตรงกับ serials เหล่านั้นเท่านั้น หากไม่มีหมายเลขซีเรียลรวมอยู่ใบรับรองทั้งหมดที่อยู่ในคำสั่งซื้อใบรับรองที่ระบุจะถูกเพิกถอน

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเรียก API นี้โปรดดูที่ของเรา เอกสาร API.

สรุป

บทความนี้อธิบายกระบวนการที่ตรงไปตรงมาในการออกและเพิกถอนใบรับรองเซิร์ฟเวอร์ DV เป็นตัวอย่างง่ายๆของการดำเนินการที่คุณสามารถทำได้ผ่าน SWS API ของ SSL.com เราที่ SSL.com สนับสนุนให้ใช้ระบบอัตโนมัติหากเป็นไปได้เนื่องจากช่วยขจัดความยุ่งยากในการทำงานซ้ำ ๆ เดิม ๆ ด้วยตนเองและที่สำคัญช่วยให้เวลาตอบสนองเร็วขึ้นในกรณีฉุกเฉิน (ดู ปัญหาเอนโทรปีของหมายเลขซีเรียล).

โปรดทดลองใช้กับเรา Sandbox และ SWS APIและอย่าลังเลที่จะติดต่อตัวแทนฝ่ายสนับสนุนของเราหากคุณพบปัญหาใด ๆ

ขอบคุณที่เลือกใช้ SSL.com! หากคุณมีคำถามใด ๆ โปรดติดต่อเราทางอีเมลที่ Support@SSL.com, โทร 1-877-SSL-SECUREหรือคลิกลิงก์แชทที่ด้านล่างขวาของหน้านี้ คุณยังสามารถค้นหาคำตอบสำหรับคำถามการสนับสนุนทั่วไปได้ใน ฐานความรู้.
Twitter
Facebook
LinkedIn
Reddit
อีเมล

รับทราบข้อมูลและปลอดภัย

SSL.com เป็นผู้นำระดับโลกในด้านความปลอดภัยทางไซเบอร์ PKI และใบรับรองดิจิทัล ลงทะเบียนเพื่อรับข่าวสารอุตสาหกรรม เคล็ดลับ และประกาศผลิตภัณฑ์ล่าสุดจาก SSL.com.

เราชอบความคิดเห็นของคุณ

ทำแบบสำรวจของเราและแจ้งให้เราทราบความคิดเห็นของคุณเกี่ยวกับการซื้อครั้งล่าสุดของคุณ