ذكري المظهر

تأمين اباتشي مع دعونا تشفير على أوبونتو 18.04

Introduction to Amazon Web Services by Leo Zhadanovsky

Introduction to Amazon Web Services by Leo Zhadanovsky

جدول المحتويات:

Anonim

Let's Encrypt هي المرجع المصدق الذي أنشأته مجموعة أبحاث أمان الإنترنت (ISRG). يوفر شهادات SSL مجانية عبر عملية مؤتمتة بالكامل تهدف إلى القضاء على إنشاء الشهادة يدويًا والتحقق من صحتها وتثبيتها وتجديدها.

الشهادات الصادرة عن Let's Encrypt موثوق بها من قبل جميع المتصفحات الرئيسية اليوم.

في هذا البرنامج التعليمي ، سنقدم إرشادات خطوة بخطوة حول كيفية تأمين Apache باستخدام Let's Encrypt باستخدام أداة certbot على Ubuntu 18.04.

المتطلبات الأساسية

تأكد من أنك استوفيت الشروط التالية قبل المتابعة مع هذا البرنامج التعليمي:

  • يشير اسم المجال إلى عنوان IP الخاص بالخادم العام. سنستخدم example.com . لديك Apache مثبّت مع مضيف افتراضي من Apache لنطاقك.

تثبيت Certbot

Certbot هي أداة مميزة وسهلة الاستخدام يمكنها أتمتة المهام للحصول على وتجديد شهادات دعونا تشفير SSL وتكوين خوادم الويب. يتم تضمين حزمة certbot في مستودعات Ubuntu الافتراضية.

قم بتحديث قائمة الحزم وتثبيت حزمة certbot:

sudo apt update sudo apt install certbot

إنشاء مجموعة قوية Dh (ديفي هيلمان)

يعد Diffie – Hellman key exchange (DH) طريقة لتبادل آمن لمفاتيح التشفير عبر قناة اتصال غير آمنة. سنقوم بإنشاء مجموعة جديدة من معلمات DH 2048 بت لتعزيز الأمن:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 إذا كنت تريد ، يمكنك تغيير الحجم حتى 4096 بت ، ولكن في هذه الحالة ، قد يستغرق الجيل أكثر من 30 دقيقة اعتمادًا على إنتروبيا النظام.

الحصول على شهادة دعونا تشفير SSL

للحصول على شهادة طبقة المقابس الآمنة للمجال ، سنستخدم المكون الإضافي Webroot الذي يعمل عن طريق إنشاء ملف مؤقت للتحقق من صحة النطاق المطلوب في دليل ${webroot-path}/.well-known/acme-challenge . يقوم خادم Let's Encrypt بإرسال طلبات HTTP إلى الملف المؤقت للتحقق من أن المجال المطلوب يحل إلى الخادم حيث يتم تشغيل certbot.

ولجعل الأمر أكثر بساطة ، سنقوم بتعيين جميع طلبات HTTP الخاصة بـ .well-known/acme-challenge إلى دليل واحد ، /var/lib/letsencrypt .

ستنشئ الأوامر التالية الدليل وتجعله قابلاً للكتابة لخادم Apache.

sudo mkdir -p /var/lib/letsencrypt/.well-known sudo chgrp www-data /var/lib/letsencrypt sudo chmod g+s /var/lib/letsencrypt

لتجنب تكرار الشفرة ، قم بإنشاء قصتي التكوين التاليين:

/etc/apache2/conf-available/letsencrypt.conf

Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS /etc/apache2/conf-available/ssl-params.conf

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLHonorCipherOrder On Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff # Requires Apache >= 2.4 SSLCompression off SSLUseStapling on SSLStaplingCache "shmcb:logs/stapling-cache(150000)" # Requires Apache >= 2.4.11 SSLSessionTickets Off SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"

يستخدم القصاصة أعلاه شرائح التقطيع الموصى بها من قبل Cipherli.st ، وتمكين OCSP Stapling ، HTTP Strict Transport Security (HSTS) ويفرض القليل من رؤوس HTTP التي تركز على الأمان.

قبل تمكين ملفات التكوين ، تأكد من mod_ssl كل من mod_ssl و mod_headers عن طريق إصدار:

sudo a2enmod ssl sudo a2enmod headers

بعد ذلك ، قم بتمكين ملفات تكوين SSL عن طريق تشغيل الأوامر التالية:

sudo a2enconf letsencrypt sudo a2enconf ssl-params

تمكين وحدة HTTP / 2 ، والتي ستجعل مواقعك أسرع وأكثر قوة:

sudo a2enmod

أعد تحميل تكوين Apache لتصبح التغييرات نافذة المفعول:

sudo systemctl reload apache2

الآن ، يمكننا تشغيل أداة Certbot باستخدام المكون الإضافي webroot والحصول على ملفات شهادة SSL عن طريق الكتابة:

sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com

إذا تم الحصول على شهادة SSL بنجاح ، فسوف يقوم certbot بطباعة الرسالة التالية:

IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2018-10-28. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:

الآن وبعد أن أصبحت لديك ملفات الشهادة ، قم بتحرير تكوين المضيف الظاهري لنطاقك كما يلي:

/etc/apache2/sites-available/example.com.conf

ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration

من خلال التكوين أعلاه ، فإننا نلزم HTTPS ونعيد التوجيه من www إلى إصدار غير www. تتردد في ضبط التكوين وفقًا لاحتياجاتك.

أعد تحميل خدمة Apache لتصبح التغييرات نافذة المفعول:

sudo systemctl reload apache2

يمكنك الآن فتح موقع الويب الخاص بك باستخدام https:// ، وستلاحظ رمز القفل الأخضر.

التجديد التلقائي دعونا تشفير شهادة SSL

شهادات تشفير دعونا صالحة لمدة 90 يوما. لتجديد الشهادات تلقائيًا قبل انتهاء صلاحيتها ، تنشئ حزمة certbot cronjob تعمل مرتين يوميًا وتجدد تلقائيًا أي شهادة قبل 30 يومًا من انتهاء صلاحيتها.

بمجرد تجديد الشهادة ، يتعين علينا أيضًا إعادة تحميل خدمة Apache. إلحاق - --renew-hook "systemctl reload apache2" إلى ملف /etc/cron.d/certbot بحيث يبدو كما يلي:

/etc/cron.d/certbot

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload apache2"

لاختبار عملية التجديد ، يمكنك استخدام مفتاح --dry-run :

sudo certbot renew --dry-run

إذا لم تكن هناك أخطاء ، فهذا يعني أن عملية التجديد كانت ناجحة.

استنتاج

في هذا البرنامج التعليمي ، استخدمت شهادات العميل التابعة لبرنامج Let's Encrypt لتنزيل شهادات طبقة المقابس الآمنة للمجال الخاص بك. لقد أنشأت أيضًا قصاصات Apache لتجنب تكرار التعليمات البرمجية وتكوين Apache لاستخدام الشهادات. في نهاية البرنامج التعليمي ، قمت بإعداد cronjob لتجديد الشهادة تلقائيًا.

اباتشي أوبونتو دعونا تشفير certbot SSL

يعد هذا المنشور جزءًا من سلسلة كيفية تثبيت مصباح المكدس على أوبونتو 18-04.

وظائف أخرى في هذه السلسلة:

• كيفية تثبيت Apache على Ubuntu 18.04 • كيفية إعداد مضيفات Apache الافتراضية على Ubuntu 18.04 • تأمين Apache مع Let's Encrypt على Ubuntu 18.04 • كيفية تثبيت MySQL على Ubuntu 18.04 • كيفية تثبيت PHP على Ubuntu 18.04