ذكري المظهر

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

The Groucho Marx Show: American Television Quiz Show - Book / Chair / Clock Episodes

The Groucho Marx Show: American Television Quiz Show - Book / Chair / Clock Episodes

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

Anonim

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

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

سيرشدك هذا البرنامج التعليمي خلال عملية الحصول على Let's Encrypt المجاني باستخدام أداة certbot في Debian 9. وسنعرض أيضًا كيفية تكوين Apache لاستخدام شهادة SSL الجديدة وتمكين HTTP / 2.

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

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

  • تسجيل الدخول كمستخدم لديه امتيازات sudo. هل لديك اسم مجال يشير إلى خادم IP الخاص بالخادم العام. سوف نستخدم example.com . مضيف ظاهري أباتشي لنطاقك. يمكنك اتباع هذه التعليمات للحصول على تفاصيل حول كيفية إنشاء واحد.

تثبيت Certbot

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

قم بتحديث قائمة الحزم وتثبيت حزمة 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

للحصول على شهادة 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

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

sudo a2enmod

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

sudo a2enconf letsencrypt sudo a2enconf ssl-params

أعد تحميل تكوين 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: IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will expire on 2019-01-17. 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 lose your account credentials, you can recover through e-mails sent to [email protected]. - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - 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 ، للحصول على شهادات SSL لنطاقك. لقد أنشأت أيضًا قصاصات Apache لتجنب تكرار التعليمات البرمجية وتكوين Apache لاستخدام الشهادات. في نهاية البرنامج التعليمي ، قمت بإعداد cronjob لتجديد الشهادة تلقائيًا.

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

هذا المنشور جزء من كيفية تثبيت LAMP Stack على سلسلة دبيان 9.

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

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