OpenSSL هو أداة مهمة لتشفير الاتصالات عبر الإنترنت وتعزيز الأمان.
مقدمة
إلى كل من لديه تساؤلات مثل "ما هي الشهادة؟" و"سمعت أنه يمكنني استخدام OpenSSL..." يمكن أن يكون هذا المقال مرجعًا لك. سنقوم هنا بشرح الاستخدامات الأساسية لـ OpenSSL، بدءًا من كيفية استخدامه وصولًا إلى كيفية إنشاء الشهادات. سنساعدك في فهم إعدادات الاتصالات المشفرة ومعالجة الشهادات بسلاسة.
ما هو OpenSSL؟
OpenSSL هو مجموعة أدوات تشفير مفتوحة المصدر. يتم استخدامه بشكل أساسي لتشفير الاتصالات عبر SSL/TLS، بالإضافة إلى تشفير وفك تشفير البيانات. فهو يُستخدم على نطاق واسع في تأمين نقل المعلومات عبر الإنترنت.
فوائد OpenSSL
باستخدام OpenSSL، يمكنك بسهولة تعزيز أمان المواقع الإلكترونية، وتشفير البريد الإلكتروني، وتشفير الملفات. بالإضافة إلى ذلك، يمكنك إنشاء الشهادات بنفسك، مما يتيح لك تحقيق أمان عالٍ مع تقليل التكاليف.
- متاح مجاناً
- دعم واسع
- موثوقية عالية
نقاط التعلم للمبتدئين
عند تعلم OpenSSL، من المهم أولاً فهم التثبيت والأوامر الأساسية. بعد ذلك، يجب أن تتعود على إنشاء الشهادات وتقنيات التشفير وتكتسب مهارات عملية.
بناء البيئة
لبدء استخدام OpenSSL، يجب أولاً إعداد البيئة. في هذا القسم، سنشرح كيفية التحضير وإجراءات التثبيت اللازمة.
المتطلبات
لاستخدام OpenSSL، تحتاج إلى العناصر التالية:
- اتصال بالإنترنت (مطلوب لتنزيل حزمة التثبيت).
- تثبيت OpenSSL
- أداة سطر الأوامر (PowerShell على Windows، Terminal على macOS أو Linux)
إجراءات التثبيت
ويندوز
- قم بتنزيل المثبت الخاص بويندوز من الموقع الرسمي لـ OpenSSL.
- قم بتشغيل المثبت وأكمل التثبيت.
- أضف 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 للعميل.
في هذه الفقرة، نقدم لكم خطوات إضافة شهادة عميل SSL إلى عميل API الخاص بك لإرسال الطلب والحصول على الاستجابة. يُوصى باستخدام Apidog، وهو عميل API يسهل إضافة شهادات SSL. Apidog هو أداة لإدارة دورة حياة API، تتيح لك إدارة طلبات API والاستجابات، وأتمتة اختبارات API، واستخدام الخادم الوهمي، وتضيف بسهولة شهادات SSL على جانب العميل، مما يسهل الحصول على استجابة من خادم مؤمن.
لذا، يمكنك الإشارة إلى الخطوة التالية لإضافة شهادة SSL إلى عميل API وتحقيق تشفير الاتصالات.
الخطوة 1 افتح Apidog وافتح API الذي يحتاج إلى شهادة عميل SSL.
الخطوة 2 قم بالتبديل إلى وضع "التصميم"، وحدد علامة التبويب "التغيير" في شريط القائمة العلوي، ثم انقر على "الإعدادات" ضمن معلمات Request.
الخطوة 3 انقر على "إدارة الشهادات."
① قم بتفعيل شهادة CA، ثم قم بتحميل ملف PEM.
② انقر على "إضافة شهادة عميل" وأنهِ الإعدادات المطلوبة.
الاستنتاج
OpenSSL هو أداة لا غنى عنها لضمان أمان الاتصالات عبر الإنترنت. بدءًا من إنشاء الشهادات وصولًا إلى التشفير وفك التشفير، وحساب الهش، تتوافق مع مجموعة متنوعة من الاستخدامات. وبتعلم هذه العمليات الأساسية، يمكنك زيادة معرفتك بأمان المعلومات.