واجهة برمجة تطبيقات SWS الخاصة بـ SSL.com - مقدمة

قد تكون إدارة عدد كبير من الشهادات أمرًا شاقًا للغاية. الحوادث التي تحدث بشكل عشوائي ، مثل الحوادث التي حدثت مؤخرًا على مستوى الصناعة الرقم التسلسلي للانتروبيا، قد تطلب من المسؤولين إلغاء مئات الشهادات يدويًا وإعادة إصدارها مرة واحدة. لقد واجه عملاء الدعم والإداريون لدينا هذا أيضًا في الماضي ، وهي حقيقة حفزت SSL.com لتطبيق حل أكثر عملية: واجهة برمجة تطبيقات خدمات ويب SSL.com (SWS).

يمكن استخدام SWS API لأتمتة العمليات المختلفة المتعلقة بالشهادة ، مثل إصدار الشهادات ، وإعادة المفاتيح وأوامر إعادة المعالجة ، وإدارة وصول المستخدم ، وما إلى ذلك عبر أي لغة برمجة أو لغة نصية. للحصول على أوامر واجهة برمجة التطبيقات المسبقة لـ API cURL لأمر فردي ، حاول الإلحاق /developer في نهاية صفحة طلب الشهادة (على سبيل المثال ، https://www.ssl.com/certificate_orders/co-1234xyz/developer).

لتقديم بعض ميزات واجهة برمجة التطبيقات ، سيرشدك هذا البرنامج التعليمي خلال إصدار ملف شهادة خادم ويب (DV) معتمدة من المجال. في هذه العملية سنتطرق إلى العديد من المواضيع المفيدة ، مثل الوصول إلى واجهة برمجة التطبيقات ، وإنشاء CSR، وإعداد الخادم الخاص بك للتحقق من صحة التحكم في المجال. علاوة على ذلك ، سنرى كيف يمكننا إبطال الشهادات دفعة واحدة عبر واجهة برمجة التطبيقات ، وهو أمر مفيد بشكل خاص في حالات الحوادث الأمنية.

الصندوق الرمل

يتطلب أي نوع من الأتمتة اختبارًا مكثفًا قبل إطلاقه في نظام الإنتاج ، خاصةً عندما يتعلق الأمر بالمال. لهذا السبب ، نفذ موقع SSL.com وصيانته رمل. إن Sandbox هو نسخة تطوير من API الإنتاج لدينا. يحتوي على جميع وظائف المستند الأصلي ، ولكنه غير متصل بقاعدة بيانات الإنتاج. هذا يعني أنه يمكنك إنشاء مستخدمين جدد والتجربة بحرية دون الخوف من العبث بشيء ما والحصول على تهمة عن خطأ.

عندما تكون راضيًا عن أن الأتمتة تعمل بشكل صحيح في Sandbox ، يمكنك بعد ذلك نقل التعليمات البرمجية إلى الإنتاج والتأكد من أن النصوص البرمجية الخاصة بك لن تفشل.

NOTE: تم تطوير هذه المقالة لـ Sandbox ، ويمكنك تجربة أي من مكالمات API الواردة في هذا المستند.

يمكن العثور على واجهة برمجة تطبيقات الإنتاج في عنوان URL التالي:

https://sws.sslpki.com/

لإجراء مكالمات API إلى Sandbox ، ما عليك سوى تغيير اسم النطاق كما هو موضح في المقتطف التالي:

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

تحضير البيئة

قبل البدء في اللعب باستخدام واجهة برمجة التطبيقات ، يجب عليك أولاً إعداد بيئة عمل. الأدوات التي سنستخدمها خلال هذا البرنامج التعليمي هي محطة Linux ومحرر نص موثوق به.

NOTE: تمت كتابة هذه التعليمات للفانيليا أوبونتو لينكس التوزيع ، وهي بيئة تطوير نموذجية قد يواجهها المرء في العالم الحقيقي. بعد قولي هذا ، تعمل البرامج النصية المقدمة في هذا المستند أيضًا على Windows عبر سيغوين.

أول شيء ستحتاجه هو دليل لجميع الملفات الضرورية. من أجل المنفعة ، سنشير إلى هذا الدليل باسم sslcom_api_test/ أو "دليل العمل". لإنشاء الدليل والدخول إليه ، يرجى إصدار الأوامر التالية في الجهاز.

$ mkdir ~ / sslcom_api_test $ cd ~ / sslcom_api_test

بعد ذلك ، يجب عليك التنزيل حزمة الشهادات المتوسطة لـ SSL.com، وهو ملف أرشيف يحتوي على جميع ملفات الشهادات اللازمة للوصول إلى واجهة برمجة التطبيقات بشكل آمن. وبهذه الطريقة ، سيتم تشفير أي بيانات تتبادلها مع خادم API ويمكنك الاطمئنان إلى أن أي معلومات حساسة ، مثل مفاتيح API ، ستكون محمية من التنصت.

قم بتنزيل أرشيف ZIP من الرابط أعلاه وفك ضغطه إلى دليل العمل. (تأكد من التغيير ~/Downloads إلى الدليل حيث قمت بحفظ ملف ZIP ، إذا لزم الأمر). ملف الشهادة الذي سنستخدمه طوال هذه المقالة هو SSL_COM_RSA_SSL_SUBCA.crt.

NOTE: في نظام التشغيل Windows ، سيكون عليك تحديد موقع أرشيف ZIP والنقر عليه نقرًا مزدوجًا واستخراج الملفات في دليل العمل.
$ unzip ~ / Downloads / SSLcom_DV_CA_Zip.zip -d. الأرشيف: ./SSLcom_DV_CA_Zip.zip extracting: ./SSL_COM_RSA_SSL_SUBCA.crt extracting: ./SSL_COM_ROOT_CERTIFICATION_AUTHORITY_RSA.crt extracting: ./CERTUM_TRUSTED_NETWORK_CA.crt

سنستخدم حليقة، أداة شبكة Linux نموذجية ، لجميع استدعاءات API في هذا البرنامج التعليمي. يمكن أن يؤدي cURL أي عملية HTTP ويتم تثبيته افتراضيًا في معظم توزيعات Linux. علاوة على ذلك ، يمكن تثبيت cURL بسهولة على Windows عبر الملفات التنفيذية الثنائية المتوفرة في صفحة مشروع cURL ، أو عن طريق تحديده في مثبت Cygwin. ومع ذلك ، يرجى ملاحظة أنه نظرًا لأن واجهة برمجة التطبيقات تعتمد على تنسيقات مفتوحة ، فيمكنك استخدام أي أداة شبكة أخرى أو لغة برمجة أخرى للوصول إليها.

علاوة على ذلك ، سوف نستخدمها بينسل لتحضير طلب الشهادة لدينا. OpenSSL عبارة عن مجموعة أدوات مفتوحة المصدر يمكنها إجراء أي عملية تشفير تقريبًا قد تحتاج إليها. يتم تضمين هذه الأداة أيضًا في قائمة حزم Cygwin ، ومن ثم يمكنك إما تحديدها للتثبيت أثناء إعداد مثيل Cygwin الخاص بك ، أو تثبيتها يدويًا عبر الملفات الثنائية المتوفرة في الصفحة الرئيسية للمشروع.

أخيرًا ، ستحتاج إلى مفتاحي API للعمل مع Sandbox ، المرتبطين بحساب المستخدم الخاص بك. إذا لم يكن لديك حساب بالفعل في Sandbox ، فيرجى التسجيل عبر Sandbox's  استمارة التسجيل. العملية مماثلة لإنشاء حساب عميل SSL.com عادي. إذا كان لديك بالفعل حساب في Sandbox ، يمكنك تخطي هذه الخطوة بأمان.

الوصول إلى API

تعتمد SWS API على HTTP (تستخدم متصفحات البروتوكول) ، ويتم تبادل جميع البيانات في تنسيق JSON.

تتطلب معظم مكالمات API تضمين account_key و secret_key المعلمة لأغراض التفويض. يمكنك دائمًا العثور على بيانات اعتماد حسابك في صفحة لوحة التحكم في Sandbox ، على الرغم من أننا في هذه الحالة سنقوم باستردادها عبر واجهة برمجة التطبيقات.

سيقوم الأمر المدرج في المقتطف التالي من الكود بتسجيل دخولك إلى البوابة واسترداد معلومات حسابك بما في ذلك مفاتيح API هذه. إذا كنت تقوم بنسخ ولصق الأمر في نافذة طرفية ، فيرجى التأكد من استبدال USERNAME و PASSWORD ببيانات اعتماد حسابك.

$ curl -L --cacert SSL_COM_RSA_SSL_SUBCA.crt - طلب GET - رمز 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 ==" ، "الحالة": "ممكّن" ، "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.
NOTE: الخط المائل العكسي (\) في نهاية السطر الأول ، يجبر طرف Linux على تجاهل حرف سطر جديد ومتابعة تحليل الأحرف في السطر التالي كجزء من الأمر الأصلي. سنستخدم بناء الجملة هذا لتقسيم الأوامر الطويلة إلى أسطر متعددة ، في محاولة لجعلها أكثر عرضًا.

نتيجة استدعاء API هي كائن JSON يحتوي على معلومات الحساب ، بما في ذلك account_key و secret_key، مطلوبة في مكالمات API اللاحقة.

إصدار شهادة خادم

بعد تجهيز بيئة العمل والحصول على مفاتيح واجهة برمجة التطبيقات ، أصبحت الآن جاهزًا لبدء اللعب باستخدام واجهة برمجة التطبيقات. كمثال ، سنطلب إصدار أ شهادة SSL الأساسية لخادم ويب وهمي اسمه example.ssl.com. بغض النظر عما إذا كنت تستخدم API أو بوابة العميل ، فإن إصدار الشهادة يتطلب اتباع خطوات معينة.

تتضمن هذه الخطوات إنشاء زوج من المفاتيح الخاصة والعامة ، وإنشاء طلب توقيع الشهادة (CSR)وإنشاء أمر شهادة وتنفيذ التحقق من التحكم بالمجال.

توليد CSR

هناك عدة طرق لخلق CSR، ولكن نظرًا لأننا نستخدم المحطة بالفعل ، فلنلقِ نظرة على كيفية إنشاء ملف CSR مع OpenSSL. إذا كان لديك بالفعل ملف CSR يمكنك استخدامه لهذا الغرض ، يمكنك تخطي هذه الخطوة.

A CSR هو ملف ترميز base64 يحتوي على معظم المعلومات التي سيتم تضمينها في ملف الشهادة النهائي. من أهم محتوياتها هي المفتاح العمومي و اسم مجال الخادم سيتم إصدار الشهادة.

هذا يعني أننا سنحتاج إلى زوج من المفاتيح العامة قبل إصدار CSR. سيقوم الأمر التالي بإنشاء أمر جديد بيم ملف في دليل العمل المسمى example.ssl.com.keyتحتوي على المفتاحين.

opensl 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

أنت على وشك أن يُطلب منك إدخال المعلومات التي سيتم دمجها في طلب الشهادة الخاص بك. ما أنت على وشك الدخول إليه هو ما يسمى بالاسم المميز أو الاسم المميز. يوجد عدد غير قليل من الحقول ولكن يمكنك ترك بعضها فارغًا بالنسبة لبعض الحقول ، ستكون هناك قيمة افتراضية ، إذا قمت بإدخال "." ، فسيتم ترك الحقل فارغًا. ----- اسم البلد (رمز مكون من حرفين) [أستراليا]: اسم الولاية أو المقاطعة الأمريكية (الاسم الكامل) [بعض الولاية]: اسم منطقة تكساس (مثل المدينة) []: اسم مؤسسة هيوستن (على سبيل المثال ، الشركة) [Internet Widgits Pty Ltd]: مثال على اسم الوحدة التنظيمية (على سبيل المثال ، قسم) []: مثال على الاسم العام للقسم (مثل FQDN للخادم أو اسمك) []: example.ssl.com عنوان البريد الإلكتروني []: admin@example.ssl. com يرجى إدخال السمات "الإضافية" التالية لإرسالها مع طلب الشهادة. كلمة مرور التحدي []: اسم شركة اختياري []:

سيسألك OpenSSL عن معلومات الاتصال الأساسية و اسم شائع من الشهادة. بالنسبة لشهادات SSL ، يكون الاسم العام هو اسم مجال الخادم (في هذه الحالة example.ssl.com). سيؤدي تشغيل الأمر أعلاه إلى إنشاء ملف باسم example.ssl.com.csr، في الدليل الحالي الذي يحتوي على ترميز base64 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. أول استدعاء لواجهة برمجة التطبيقات نظرنا إليه كان طلب 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": "رقم المثال"، "Register_country_name": "US"، "unique_value": "1ed1c72baf"، "csr":" ----- بدء طلب الشهادة ----- MIIDIjCCAgwaRlkPnuD ... 0QQ3JKQqJbii3760Rgon8hZmbkiE = ----- طلب شهادة النهاية ----- "}

لقد رأينا بالفعل مفاتيح API من قبل. ومع ذلك ، لطلب الشهادات ، يتعين علينا أيضًا تضمين معلمات إضافية مثل product الهوية والصلاحية period. يمكنك العثور على قائمة معرفات المنتج في وثائق SWS API. في هذا المثال ، يتم تقديم الطلب للحصول على شهادة SSL أساسية بصلاحية سنة واحدة. تخزن المجموعة التالية من المعلمات معلومات الاتصال الخاصة بالمسجل (أنت). ال 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 - طلب مشاركة - عنوان "نوع المحتوى: application / json" \ --data-binary "@ example.ssl.com.json" 'https: // sws-test .sslpkiشهادات .com / '{"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": "التحقق من الصحة مطلوب" ، "التحقق من الصحة": فارغ ، "order_amount": "49.00 دولارًا أمريكيًا" ، "Certificate_url": "https://sandbox.ssl.com/team/abc-1ec6012/certificate_orders/co-ac1ecm200 "،" replace_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 التالية هذه.

يرجى التأكد من استبدال الرقم المرجعي شارك ac1ecm200 في عنوان URL مع الرقم المرجعي لطلبك ، والذي تم إنشاؤه في استدعاء API السابق.

$ curl --cacert SSL_COM_RSA_SSL_SUBCA.crt - طلب GET \ - Data-urlencode 'secret_key = FY + s9 / ghUrv7SQ ==' --data-urlencode 'account_key = 4497618e5c98' \ 'https: //sws-test.sslpki.com / Certificate / co-ac1ecm200 / validations / methods '{"تعليمات": "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 "،" المسؤول @ خدمة تصميم المواقع .com "،" webmaster@ssl.com "،" hostmaster@ssl.com "،" postmaster@ssl.com "،" admin@example.ssl.com "،" admin@example.ssl.com "،" مسؤول الموقع @ 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 \ nccsr_hash ": {" cname ":" _29BD4C00B65613CCEC04C19C0050D931.example.ssl.com. CNAME. com "}

سيتضمن الإخراج الذي تم إرجاعه كافة المعلومات التي تحتاجها لإجراء التحقق من التحكم في المجال. على سبيل المثال ، إذا كنت ترغب في استخدام http_csr_hash  طريقة التحقق من الصحة ، يجب عليك إنشاء ملف في الخادم الذي سيتم إصدار هذه الشهادة باسمه .well_known/pki-validation/29BD4C00B65613CCEC04C19C0050D931.txt. يجب أن يكون الملف بالضبط تحتوي على قيمة contents المعلمة.

بعد ذلك ، يمكنك زيارة validation_url وجدت في المكالمة السابقة التي أنشأت الطلب ومتابعة التحقق من الصحة كما تفعل عادة مع الطلب الذي قمت بإنشائه عبر بوابة العميل الخاصة بك. (يمكنك دائما زيارة عمليات التحقق الصفحة والعثور على عنوان URL لترتيب معين).

بعد أن يتم التحقق من صحة التحكم في المجال بنجاح ، سيتم إصدار الشهادة وستتمكن من تنزيلها.

استرجاع الشهادة

يمكنك العثور على شهادتك في بوابة الويب أو استعادتها عبر واجهة برمجة التطبيقات. لأغراضنا سوف نستخدم API. كما رأينا في القسم السابق ، عند إنشاء طلب شهادة جديد ، تحتوي الاستجابة على رقم مرجعي. يمكن استخدام هذا الرقم لاسترداد تفاصيل الطلب بما في ذلك بيانات الشهادة الفعلية.

$ curl - طلب 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 = فردي & response_encoding = base64 '{"description": "1 Year Basic SSL"، "product": "106"، "product_name": "basicssl"، "order_status": "صدر" ، "order_date": "2019-05-02T10: 08: 48.000-05: 00"، "صاحب التسجيل": {"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 "،" البريد الإلكتروني ": null}،" الشهادات ":" \ nMIIE1TCCA72gAwIBAgIRANsjhF + t ... 4CAw5Egg73IgIHggE1QEZiYQRu + 0wDQY \ n "،" common_name ":" example.ssl.com "،" domains_qty_ "purchasty ": wildchased 1 "،" subject_alternative_names ": [" example.ssl.com "،" www.example.ssl.com "]،" التحقق من الصحة ": null،" Effective_date ":" 0-2019-05T03: 11: 22-37.000: 05 "،" expiration_date ":" 00-2020-05T02: 11: 22-37.000: 05 "،" الخوارزمية ":" SHA00 "،" external_order_number ": null،" domains ": null،" site_seal_code ": null،" subscriber_agreement ": null،" server_software ": 256،" Contacts ": [{...}، {...}]}

نظرًا لأنه من المفترض أن يتم استخدام واجهة برمجة التطبيقات برمجيًا ، يجب عليك تحليل استجابة JSON لعزل الشهادة وحفظها في ملف. تحليل JSON خارج نطاق هذه المقالة ؛ ومع ذلك ، فهي مهمة بسيطة يمكن تنفيذها بسهولة في معظم لغات البرمجة أو البرمجة الحديثة.

إذا لم يكن لديك الرقم المرجعي في متناول اليد ، فيمكنك إصدار استدعاء API لاسترداد جميع طلبات شهادات حسابك. تتيح لك هذه المكالمة تصفية الطلبات ، بالإضافة إلى المعلومات التي سيتم عرضها.

$ curl --cacert SSL_COM_RSA_SSL_SUBCA.crt - طلب GET \ - Data-urlencode 'secret_key = FY + s9 / ghUrv7SQ ==' --data-urlencode 'account_key = 4497618e5c98' \ 'https: //sws-test.sslpki.com / الشهادات؟ الحقول = المجالات ، المرجع ، order_status '[{"ref": "co-ac1ecm200"، "order_status": "إصدار" ، "المجالات": ["example.ssl.com"]} ، {" المرجع ":" co-581eclsap "،" order_status ":" التحقق من الصحة ، يرجى الانتظار "،" المجالات ": [" example.ssl.com "]} ، {" المرجع ":" co-6f1ecm1of "،" order_status ": "انتظار معلومات جهات الاتصال من العميل" ، "المجالات": ["test.ssl.com"]}}

fields تسمح لك معلمة URL بالتحكم في تفاصيل الشهادة التي سيتم عرضها في الإخراج. يمكنك أيضا ترقيم الصفحات عبر per_page و page طلب المعلمات. للحد من عدد الشهادات بناءً على تواريخ إصدارها ، يمكنك استخدامها start و end المعلمات. أخيرًا ، يمكنك تصفية الطلبات والبحث فيها باستخدام معايير مثل معرف المنتج أو تاريخ انتهاء الصلاحية أو أي حقل آخر وارد في الشهادة. لمزيد من المعلومات نلقي نظرة على وثائق API الخاصة بـ SSL.com.

إبطال الشهادة

الميزة الأخيرة التي سننظر فيها في هذا الدليل هي إبطال الشهادات المجمعة. يمكن أن تحميك الشهادات طالما أنك أنت فقط (أو الأشخاص الذين تثق بهم) هم الذين يحملون المفتاح الخاص المرتبط بهم. في حالة اختراق مفتاح خاص ، أو الحاجة إلى تغيير أي معلومات عن الشهادة ، فيجب إبطال الشهادة على الفور وإصدار مفتاح جديد.

في الحالات التي يُشتبه فيها في سرقة المفتاح الخاص ، من الضروري أن يتوقف برنامج العميل (مثل المتصفحات أو أنظمة التشغيل) عن قبوله في أسرع وقت ممكن. لهذا السبب ، نوصي بشدة بتنفيذ نظام آلي لإبطال الشهادات وإعادة إصدارها واستردادها وتثبيتها على خوادمك.

تسمح لك واجهة برمجة تطبيقات SWS الخاصة بـ SSL.com بإلغاء شهادة واحدة أو أكثر أو جميع الشهادات برمجيًا بموجب أي من طلبات الشهادات الخاصة بك. سيؤدي استدعاء API التالي إلى إبطال جميع الشهادات بموجب ترتيب الشهادة شارك ac1ecm200:

curl --cacert SSL_COM_RSA_SSL_SUBCA.crt - طلب 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 '{"الحالة": "ملغاة"}

يُصدر أمر cURL طلب DELETE HTTP (بدلاً من GET أو POST مثل الأوامر السابقة) ويوفر تهيئة JSON مضمنة. من الصحيح أيضًا إنشاء ملف بمحتويات JSON وتمريره إلى cURL عبر اسم الملف بنفس الطريقة التي أصدر بها أمر الشهادة.

يمكنك تحديد أي سبب تريده في reason  المعلمة ، وقد تتضمن اختياريًا قائمة بالأرقام التسلسلية للشهادة في JSON لإلغاء الشهادات المطابقة لتلك المسلسلات فقط. إذا لم يتم تضمين أرقام تسلسلية ، سيتم إبطال جميع الشهادات التي تنتمي إلى ترتيب الشهادة المحدد.

لمزيد من المعلومات حول مكالمة API هذه ، يرجى إلقاء نظرة على موقعنا API الوثائق.

وفي الختام

توضح هذه المقالة عملية مباشرة لإصدار وإبطال شهادة خادم DV ، كمثال مبسط للعمليات التي يمكنك إجراؤها عبر SSL.com's SWS API. نحن في SSL.com نشجع على استخدام الأتمتة حيثما أمكن ذلك لأنها تزيل متاعب تنفيذ نفس المهام المتكررة يدويًا ، والأهم من ذلك أنها تسمح بأوقات استجابة أسرع في حالات الطوارئ (انظر الرقم التسلسلي للانتروبيا).

لا تتردد في تجربة لدينا رمل و واجهة برمجة تطبيقات SWS، ولا تتردد في الاتصال بوكلاء الدعم لدينا إذا واجهت أي مشاكل.

شكرًا لاختيارك SSL.com! إذا كان لديك أي أسئلة ، يرجى الاتصال بنا عبر البريد الإلكتروني على Support@SSL.com، مكالمة 1-877-SSL-SECURE، أو انقر فقط على رابط الدردشة في الجزء السفلي الأيسر من هذه الصفحة. يمكنك أيضًا العثور على إجابات للعديد من أسئلة الدعم الشائعة في موقعنا قاعدة المعرفة.
تويتر
فيسبوك
لينكدين:
رديت
البريد إلكتروني:

ابق على اطلاع وآمن

SSL.com هي شركة عالمية رائدة في مجال الأمن السيبراني، PKI والشهادات الرقمية. قم بالتسجيل لتلقي آخر أخبار الصناعة والنصائح وإعلانات المنتجات من SSL.com.

نحن نحب ملاحظاتك

شارك في استبياننا وأخبرنا بأفكارك حول عملية الشراء الأخيرة.