المتطلبات الأساسية
- خادم Vultr يعمل حتى الآن Arch Linux (انظر هذه المقالة ).
- خادم ويب قيد التشغيل ، إما Apache أو Nginx
- وصول سودو
- الأوامر المطلوب تشغيلها كجذر مسبوقة بـ
#، والأوامر التي يمكن تشغيلها كمستخدم عادي من قبل $. الطريقة الموصى بها لتشغيل الأوامر كجذر هي ، كمستخدم عادي ، بادئة كل واحد منهم sudo.
- قم بتثبيت محرر نصوص ، وكن على دراية به ، مثل vi أو vim أو nano أو emacs أو محرر آخر مشابه.
خدمة آمنة عبر HTTPS
يمكن أن يستخدم عرض المحتوى عبر HTTPS تشفيرًا قويًا للغاية ، لذلك لا يمكن لأي شخص اعتراض حركة المرور بين المستخدم وخادم الويب قراءته. فهو لا يشفر فقط حركة المرور نفسها ، ولكن أيضًا عنوان URL الذي يتم الوصول إليه ، والذي يمكن أن يكشف المعلومات. لبعض الوقت ، كانت Google تحدد جزئيًا ترتيب البحث بناءً على ما إذا كانت الصفحة تستخدم HTTPS ، كجزء من مبادرة HTTPS Everywhere.
ملاحظة : يكشف بحث DNS عن اسم المجال الذي يتم الاتصال به ، ولكن لا يتم عرض عنوان URL بالكامل أثناء هذه العملية.
الحصول على شهادة SSL / TLS
من الناحية الفنية ، استبدل TLS SSL بشهادات HTTPS ، ولكن ، استمرت معظم الأماكن ببساطة في استدعاء شهادات TLS بالمصطلح الأكثر شيوعًا لشهادات SSL. بعد الاستخدام الشائع ، سيفعل هذا الدليل الشيء نفسه.
لاستخدام HTTPS ، يحتاج خادم الويب الخاص بك إلى مفتاح خاص ( .key) لاستخدامه بشكل خاص ، وشهادة ( .crt) للمشاركة بشكل عام تتضمن مفتاحًا عامًا. يجب توقيع الشهادة. يمكنك التوقيع عليه بنفسك ، ولكن ستشكو المتصفحات الحديثة من أنها لا تتعرف على الموقع. على سبيل المثال، يظهر Chrome: Your connection is not private. Attackers might be trying to steal your information... NET::ERR_CERT_AUTHORITY_INVALID. إذا كانت مجموعة خاصة من الأشخاص فقط ستستخدم موقع الويب ، فقد يكون هذا مقبولًا ، لأن المتصفحات ستتيح طريقة للمتابعة. على سبيل المثال ، في Chrome ، انقر على "متقدم" ، ثم "متابعة إلى ... (غير آمن)" ؛ سيظل يعرض "غير آمن" ويشطب "https".
لاحظ أن هذه العملية ستطلب منك البلد ، والولاية / العناية الإلهية ، والمنطقة المحلية ، والمنظمة ، والوحدة التنظيمية ، والأسماء الشائعة ، وعنوان بريدك الإلكتروني ؛ كل ذلك متاح في متصفح أي شخص يتصل بموقعك عبر HTTPS.
لاحظ أيضًا أنه إذا كنت تمنح شهادات المضيفين الظاهريين ، فستحتاج إلى إعطاء أسماء ملفات مميزة أدناه ، والإشارة إليها في تكوينات المضيف الظاهري.
التغيير إلى الدليل المناسب لخادم الويب الخاص بك.
إذا قمت بتثبيت Apache:
$ cd /etc/httpd/conf
إذا قمت بتثبيت Nginx:
$ cd /etc/nginx
بمجرد الوصول إلى الدليل المناسب ، قم بإنشاء مفتاح خاص ( server.key) وشهادة موقعة ذاتيًا ( server.crt):
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 825
قم بتعيين أذونات للقراءة فقط ، واسمح فقط بقراءة المفتاح الخاص حسب الجذر:
# chmod 400 server.key
# chmod 444 server.crt
بدلاً من ذلك ، يمكنك الحصول على شهادة موقعة من مرجع مصدق موثوق به. يمكنك الدفع للشركات المختلفة (المراجع المصدقة) لتوقيع شهادتك لك. عند التفكير في المراجع المصدقة ، قد يكون من المهم البحث في المتصفحات والإصدارات التي ستتعرف عليها. قد لا يتم التعرف على بعض المراجع المصدقة الأحدث على أنها رسمية أكثر من الشهادة الموقعة ذاتيًا في إصدارات المتصفح القديمة.
لا تحتاج عادةً إلى عنوان IP عام فحسب ، بل تحتاج أيضًا إلى اسم مجال. يمكن لبعض المراجع المصدقة إصدار شهادة إلى عنوان IP عام ، ولكن نادرًا ما يتم ذلك.
يقدم العديد من مقدمي الخدمة إصدارًا تجريبيًا مجانيًا لمدة 30 يومًا ، والذي يوصى بالبدء به حتى تتمكن من التأكد من أن العملية تناسبك قبل أن تدفع مقابلها. يمكن أن تختلف الأسعار من بضعة دولارات في السنة إلى المئات ، اعتمادًا على نوعها وخيارات مثل المجالات المتعددة أو المجالات الفرعية. ستشير الشهادة القياسية فقط إلى أن سلطة التوقيع قد تحققت من أن الشخص الحاصل على الشهادة يمكنه إجراء تغييرات على المجال. ستشير شهادة التحقق الممتد أيضًا إلى أن سلطة التوقيع قامت ببعض العناية الواجبة في فحص الطالب وستعرض ، في المتصفحات الحديثة ، شريطًا أخضر في عنوان URL أو بالقرب منه. عند التحقق من أنه يمكنك إجراء تغييرات على المجال ، ستطلب منك بعض سلطات التوقيع تلقي بريد إلكتروني على عنوان صوت مهم في اسم المجال ، مثل[email protected]. يقدم الكثير التحقق البديل ، مثل منحك ملفًا لوضعه على الخادم الخاص بك ، مثل وضع ملفهم في /srv/http/.well-known/pki-validation/Apache أو /usr/share/nginx/html/.well-known/pki-validation/لـ Nginx ، لتكوينات دليل الاستضافة الفردية ؛ أو إنشاء إدخال CNAME مؤقتًا يقدمونه لك في سجلات DNS الخاصة بنطاقك.
قد تكون لسلطة التوقيع التي تختارها خطوات مختلفة قليلاً ، لكن معظمها سيقبل الإجراء التالي:
في الدليل المناسب ، أنشئ مفتاحًا خاصًا ( server.key):
# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key
قم بتعيين المفتاح الخاص للقراءة فقط ، فقط من خلال الجذر:
# chmod 400 server.key
إنشاء طلب توقيع شهادة ( server.csr). يجب عليك وضع اسم المجال الخاص بك عندما يطلب منك Common Name، ويمكنك ترك كلمة مرور التحدي فارغة:
# openssl req -new -sha256 -key server.key -out server.csr
قم بتعيين طلب توقيع الشهادة للقراءة فقط ، من خلال الجذر فقط:
# chmod 400 server.csr
عرض محتويات طلب توقيع الشهادة. هذه المعلومات هي ترميز base64 ، لذلك ستبدو وكأنها أحرف عشوائية:
# cat server.csr
-----BEGIN CERTIFICATE REQUEST-----
.....
-----END CERTIFICATE REQUEST-----
انتقل من خلال عملية سلطة التوقيع ، وعندما يُطلب لصقها في CSR ، انسخ هذا الملف بالكامل والصقه بما في ذلك -----الأسطر. اعتمادًا على سلطة التوقيع التي اخترتها ونوع الشهادة ، قد يمنحك على الفور الشهادة الموقعة ، أو قد يستغرق الأمر عدة أيام. مرة واحدة أنها تعطيك شهادة موقعة بنسخه (بما في ذلك -----BEGIN CERTIFICATE-----و -----END CERTIFICATE-----خطوط) في ملف مسمى server.crt، في الدليل المناسب، المذكورة أعلاه لخادم الويب الخاص بك، وتعيينها للقراءة فقط:
# chmod 444 server.crt
إذا كنت تستخدم جدار حماية ، فستحتاج إلى تمكين حركة مرور TCP الواردة إلى المنفذ 443.
لأباتشي
قم بتحرير /etc/httpd/conf/httpd.confوإلغاء تعليق هذه السطور:
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Include conf/extra/httpd-ssl.conf
لاحظ إذا كنت تستخدم مضيفين افتراضيين ، فإن إجراء التغيير أعلاه /etc/httpd/conf/httpd.confسيستخدم نفس الشهادة على جميع المضيفين. لمنح كل مضيف شهادته الخاصة لتجنب المتصفحات التي تشتكي من أن الشهادة لا تتطابق مع اسم المجال ، تحتاج إلى تحرير كل من ملفات التكوين الخاصة بهم /etc/httpd/conf/vhosts/للإشارة إلى شهادته ومفتاحه الخاص:
أعد تشغيل Apache:
# systemctl restart httpd
لـ Nginx
قم بتحرير /etc/nginx/nginx.confوقرب الجزء السفلي ، قم بإلغاء تعليق HTTPS serverالقسم وقم بتغيير الأسطر إلى ما يلي:
ssl_certificate server.crt;
ssl_certificate_key server.key;
root /usr/share/nginx/html;
لاحظ إذا كنت تستخدم مضيفين افتراضيين ، /etc/nginx/nginx.confسيؤدي إجراء التغيير أعلاه إلى إرسال جميع المضيفين إلى هذا الموقع. لمنح كل مضيف شهادته الخاصة ، تحتاج إلى تحرير كل من ملفات التكوين الخاصة /etc/nginx/sites-enabled/به للحصول على كتلة خادم إضافية للإشارة إلى شهادته ومفتاحه الخاص:
server {
listen 443 ssl;
server_name YOUR-DOMAIN-NAME.com;
ssl_certificate YOUR-DOMAIN-NAME.com.crt;
ssl_certificate_key YOUR-DOMAIN-NAME.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/YOUR-DOMAIN-NAME.com;
index index.html index.htm;
}
}
إعادة تشغيل Nginx:
# systemctl restart nginx