Apidog

منصة تطوير API تعاونية متكاملة

تصميم API

توثيق API

تصحيح أخطاء API

محاكاة API

اختبار API الآلي

دليل OpenSSL الشامل! شرح عملي من التثبيت إلى إنشاء الشهادات

Ahmed Waheed

Ahmed Waheed

Updated on ديسمبر 6, 2024

OpenSSL هو أداة مهمة لتشفير الاتصالات عبر الإنترنت وتعزيز الأمان.

مقدمة

إلى كل من لديه تساؤلات مثل "ما هي الشهادة؟" و"سمعت أنه يمكنني استخدام OpenSSL..." يمكن أن يكون هذا المقال مرجعًا لك. سنقوم هنا بشرح الاستخدامات الأساسية لـ OpenSSL، بدءًا من كيفية استخدامه وصولًا إلى كيفية إنشاء الشهادات. سنساعدك في فهم إعدادات الاتصالات المشفرة ومعالجة الشهادات بسلاسة.

💡
قبل التعمق في التفاصيل، إذا كنت مطور API أو تبني تطبيقًا، يرجى تنزيل Apidog مجاناً وإدارة اختبارات API والتصميم والتوثيق بشكل احترافي.
button
عميل apidog

ما هو OpenSSL؟

OpenSSL هو مجموعة أدوات تشفير مفتوحة المصدر. يتم استخدامه بشكل أساسي لتشفير الاتصالات عبر SSL/TLS، بالإضافة إلى تشفير وفك تشفير البيانات. فهو يُستخدم على نطاق واسع في تأمين نقل المعلومات عبر الإنترنت.

فوائد OpenSSL

باستخدام OpenSSL، يمكنك بسهولة تعزيز أمان المواقع الإلكترونية، وتشفير البريد الإلكتروني، وتشفير الملفات. بالإضافة إلى ذلك، يمكنك إنشاء الشهادات بنفسك، مما يتيح لك تحقيق أمان عالٍ مع تقليل التكاليف.

  • متاح مجاناً
  • دعم واسع
  • موثوقية عالية

نقاط التعلم للمبتدئين

عند تعلم OpenSSL، من المهم أولاً فهم التثبيت والأوامر الأساسية. بعد ذلك، يجب أن تتعود على إنشاء الشهادات وتقنيات التشفير وتكتسب مهارات عملية.

بناء البيئة

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

المتطلبات

لاستخدام OpenSSL، تحتاج إلى العناصر التالية:

  • اتصال بالإنترنت (مطلوب لتنزيل حزمة التثبيت).
  • تثبيت OpenSSL
  • أداة سطر الأوامر (PowerShell على Windows، Terminal على macOS أو Linux)

إجراءات التثبيت

ويندوز

  1. قم بتنزيل المثبت الخاص بويندوز من الموقع الرسمي لـ OpenSSL.
  2. قم بتشغيل المثبت وأكمل التثبيت.
  3. أضف OpenSSL إلى متغير البيئة PATH.

ماك

يمكنك التثبيت بسهولة على macOS باستخدام Homebrew. قم بتنفيذ الأمر التالي:

brew install openssl
  • إذا لم يكن Homebrew مثبتًا، يرجى اتباع التعليمات الموجودة في الموقع الرسمي لتثبيته.

لينيكس

للتثبيت على Linux، استخدم مدير الحزم. على سبيل المثال، على Ubuntu، يمكنك استخدام الأمر التالي:

sudo apt install openssl
  • افتح الطرفية واستخدم مدير الحزم للتثبيت.
sudo apt-get install openssl

التحقق من العمل

بعد انتهاء التثبيت، تحقق مما إذا كان قد تم تثبيته بشكل صحيح باستخدام الأمر التالي:

openssl version

إذا تم عرض النسخة، فهذا يعني أن التثبيت ناجح.

العمليات الأساسية

سنقوم بالقيام بعمليات أساسية باستخدام OpenSSL.

أمر المساعدة

يوفر OpenSSL العديد من الأوامر والخيارات. يمكنك عرض المساعدة باستخدام الأمر التالي:

openssl help

التحقق من النسخة

للتحقق من نسخة OpenSSL المثبتة، نفذ الأمر التالي:

openssl version

التشفير وفك التشفير

يمكنك استخدام OpenSSL لتشفير وفك تشفير البيانات.

التشفير

لتشفير ملف، يستخدم الأمر التالي:

openssl enc -aes-256-cbc -in plaintext.txt -out encrypted.txt

فك التشفير

لفك تشفير ملف تم تشفيره، استخدم الأمر التالي:

openssl enc -d -aes-256-cbc -in encrypted.txt -out decrypted.txt

حساب الهش

لحساب قيمة هش ملف أو سلسلة نصية، استخدم الأمر التالي:

openssl dgst -sha256 file.txt

إنشاء الشهادات

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

ما هو المفتاح السري؟

يلعب المفتاح السري دورًا مهمًا في التشفير. في نظام تشفير المفتاح العام، يتم استخدام زوج من المفتاح العام والمفتاح السري لتأمين الاتصال.

ما هو CSR (طلب توقيع الشهادة)؟

CSR هو طلب ضروري للحصول على الشهادة. يحتوي CSR على معلومات حول المفتاح العام ومعلومات التعريف.

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

اسم الحقل الوصف مثال
اسم الدولة (C) أدخل اسم الدولة باستخدام رمز دولي مكون من حرفين. JP
اسم الولاية أو المقاطعة (ST) أدخل اسم المقاطعة. Tokyo
اسم المنطقة (L) أدخل اسم المدينة أو المنطقة. Minato-ku
اسم المنظمة (O) أدخل اسم الشركة أو المنظمة. Example Corp
اسم الوحدة التنظيمية (OU) أدخل اسم القسم وما إلى ذلك. قسم تكنولوجيا المعلومات
اسم الشائع (CN) أدخل اسم النطاق الكامل للخادم (FQDN). www.example.com
عنوان البريد الإلكتروني أدخل عنوان بريد الشخص المسؤول. admin@example.com

أدخل هذه المعلومات لإنشاء CSR.

openssl req -new -key private.key -out request.csr

مثال على تنفيذ CSR.

openssl req -new -key private.key -out request.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.

-----
Country Name (2 letter code) [AU] JP
State or Province Name (full name) [Some-State] Tokyo
Locality Name (eg, city) [] Minato-ku
Organization Name (eg, company) [Internet Widgits Pty Ltd] Example Corp
Organizational Unit Name (eg, section) [] IT Department
Common Name (e.g. server FQDN or YOUR name) [] www.example.com
Email Address [] admin@example.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password [] 
An optional company name []

سيتم مطالبتك بإدخال معلومات كما هو موضح أعلاه. قد تطلب A challenge password وAn optional company name كسمات إضافية، لكنها لا تؤثر مباشرة على أمان الشهادة أو وظائفها، لذا فمن الشائع عدم الحاجة لإدخالها. إذا لم تكن لديك حاجة خاصة، يمكنك الضغط على زر Enter للمتابعة.

هناك أيضًا حقل آخر يمكن أن يتم طلب إدخاله، وهو Subject Alternative Name (SAN)، مما يتيح لك دعم أسماء نطاقات متعددة بشهادة واحدة. لتحديد ذلك، من الشائع استخدام ملف إعداد عند إنشاء CSR.

إنشاء شهادة موقعة ذاتياً

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

اسم الحقل الوصف مثال
اسم الدولة (C) أدخل اسم الدولة باستخدام رمز دولي مكون من حرفين. JP
اسم الولاية أو المقاطعة (ST) أدخل اسم المقاطعة. Tokyo
اسم المنطقة (L) أدخل اسم المدينة أو المنطقة. Minato-ku
اسم المنظمة (O) أدخل اسم الشركة أو المنظمة. Example Corp
اسم الوحدة التنظيمية (OU) أدخل اسم القسم وما إلى ذلك. قسم تكنولوجيا المعلومات
اسم الشائع (CN) أدخل اسم النطاق الكامل للخادم (FQDN). www.example.com
عنوان البريد الإلكتروني أدخل عنوان بريد الشخص المسؤول. admin@example.com
صلاحية الشهادة (بالأيام) أدخل مدة صلاحية الشهادة بالأيام. 365
openssl req -new -newkey rsa:2048 -days 365 -nodes -keyout mykey.key -out mycert.csr
openssl x509 -req -in mycert.csr -signkey mykey.key -out mycert.crt

إصدار شهادة CA

شهادة CA هي شهادة تصدرها جهة اعتماد موثوقة وتستخدم لضمان أمان الاتصالات عبر الإنترنت. لإنشاء شهادة CA، اتبع الخطوات التالية.

توليد المفتاح السري

قبل إصدار شهادة CA، يجب إنشاء المفتاح السري الخاص بالجهة.

openssl genpkey -algorithm RSA -out ca.key

إصدار شهادة CA

بعد ذلك، قم بإصدار الشهادة الموقعة ذاتياً للجهة. أدخل المعلومات التالية:

اسم الحقل الوصف مثال
اسم الدولة (C) أدخل اسم الدولة باستخدام رمز دولي مكون من حرفين. JP
اسم الولاية أو المقاطعة (ST) أدخل اسم المقاطعة. Tokyo
اسم المنطقة (L) أدخل اسم المدينة أو المنطقة. Minato-ku
اسم المنظمة (O) أدخل اسم الشركة أو المنظمة. Example Corp
اسم الوحدة التنظيمية (OU) أدخل اسم القسم وما إلى ذلك. قسم تكنولوجيا المعلومات
اسم الشائع (CN) أدخل اسم النطاق الكامل للخادم (FQDN). www.example.com
عنوان البريد الإلكتروني أدخل عنوان بريد الشخص المسؤول. admin@example.com
صلاحية الشهادة (بالأيام) أدخل مدة صلاحية الشهادة بالأيام. 365
openssl req -new -x509 -key ca.key -out ca.crt -days 365

إنشاء شهادة إعدادات تفصيلية (اختياري)

يمكنك استخدام ملف الإعدادات لإنشاء شهادات متقدمة.

إنشاء CSR باستخدام ملف إعدادات

يسهل استخدام ملف الإعدادات إنشاء طلبات الشهادات المعقدة.

  • 1. إنشاء ملف إعدادات (مثل csr_config.cnf).
[ req ]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no

[ req_distinguished_name ]
C = JP
ST = Tokyo
L = Minato-ku
O = Example Corp
OU = IT Department
CN = www.example.com
emailAddress = admin@example.com

[ v3_req ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = www.example.com
DNS.2 = example.com
  • 2. استخدم ملف الإعدادات لإنشاء CSR.
openssl req -new -key private.key -out request.csr -config csr_config.cnf

إنشاء شهادة موقعة ذاتيًا باستخدام ملف إعدادات

يمكنك أيضًا أتمتة إنشاء الشهادات الموقعة ذاتيًا باستخدام ملف الإعدادات.

  • 1. إنشاء ملف إعدادات (مثل selfsigned_config.cnf).
[req] distinguished_name = req_distinguished_name x509_extensions = v3_ca prompt = no
[ req_distinguished_name ]
C = JP
ST = Tokyo
L = Minato-ku
O = Example Corp
OU = IT Department
CN = www.example.com
emailAddress = admin@example.com

[ v3_ca ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = CA:true
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
```
  • 2. استخدم ملف الإعدادات لإنشاء شهادة موقعة ذاتيًا.
openssl req -x509 -key private.key -out selfsigned.crt -days 365 -config selfsigned_config.cnf

إنشاء شهادة CA باستخدام ملف إعدادات

يمكنك أيضًا إصدار شهادات CA بكفاءة باستخدام ملف الإعدادات.

  • 1. إنشاء ملف إعدادات (مثل ca_config.cnf).
[ req ]
distinguished_name = req_distinguished_name
x509_extensions = v3_ca
prompt = no

[ req_distinguished_name ]
C = JP
ST = Tokyo
L = Minato-ku
O = Example Corp
OU = IT Department
CN = Example CA
emailAddress = admin@example.com

[ v3_ca ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = CA:true
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
  • 2. استخدم ملف الإعدادات لإنشاء شهادة CA.
openssl req -x509 -key ca.key -out ca.crt -days 3650 -config ca_config.cnf

ستتيح لك هذه العملية حفظ الحقول الضرورية لإنشاء كل شهادة في ملف الإعدادات، مما يوفر الوقت في إدخال نفس المعلومات في كل مرة. ستحسن أيضًا استخدام ملف الإعدادات من إجراءات إنشاء الشهادة وتجعلها أكثر سهولة.

الخطوات التشغيلية: إضافة شهادة SSL إلى Apidog

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

button

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

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

الخطوة 1 افتح Apidog وافتح API الذي يحتاج إلى شهادة عميل SSL.

الخطوة 2 قم بالتبديل إلى وضع "التصميم"، وحدد علامة التبويب "التغيير" في شريط القائمة العلوي، ثم انقر على "الإعدادات" ضمن معلمات Request.

عميل apidog

الخطوة 3 انقر على "إدارة الشهادات."

① قم بتفعيل شهادة CA، ثم قم بتحميل ملف PEM.

إدارة شهادة CA

② انقر على "إضافة شهادة عميل" وأنهِ الإعدادات المطلوبة.

إضافة الشهادة

الاستنتاج

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