Student Reactions to Passing vs Failing the CDL Road Test! - Driving Academy
Оглавление:
- Предпосылки
- Установка Certbot
- Генерация группы Dh (Диффи-Хеллман)
- Получение SSL-сертификата Let's Encrypt
- Автообновление Let's Encrypt SSL сертификата
- Вывод
Let's Encrypt - это бесплатный, автоматизированный и открытый центр сертификации, разработанный исследовательской группой Internet Security Research Group (ISRG), который предоставляет бесплатные сертификаты SSL.
Сертификаты, выпущенные Let's Encrypt, являются доверенными для всех основных браузеров и действительны в течение 90 дней с даты выпуска.
Из этого туториала Вы узнаете, как установить бесплатный SSL-сертификат Let's Encrypt на Debian 10, Buster с Nginx в качестве веб-сервера. Мы также покажем, как настроить Nginx для использования SSL-сертификата и включения HTTP / 2.
Предпосылки
Убедитесь, что выполнены следующие предварительные условия, прежде чем приступить к работе с руководством:
- Вы вошли в систему как пользователь root или пользователь с привилегиями sudo. Домен, для которого вы хотите получить сертификат SSL, должен указывать на IP вашего публичного сервера. Мы будем использовать
example.com.Nginx установлен.
Установка Certbot
Мы будем использовать инструмент certbot для получения и продления сертификатов.
Certbot - это полнофункциональный и простой в использовании инструмент, который автоматизирует задачи по получению и обновлению SSL-сертификатов Let's Encrypt и настройке веб-серверов для использования сертификатов.
Пакет certbot входит в стандартные репозитории Debian. Выполните следующие команды для установки certbot:
sudo apt update
sudo apt install certbot
Генерация группы Dh (Диффи-Хеллман)
Обмен ключами Диффи-Хеллмана (DH) - это метод безопасного обмена криптографическими ключами по незащищенному каналу связи.
Мы собираемся сгенерировать новый набор 2048-битных параметров DH для усиления безопасности:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Вы также можете изменить размер до 4096 бит, но генерация может занять более 30 минут в зависимости от энтропии системы.
Получение SSL-сертификата Let's Encrypt
Чтобы получить сертификат SSL для домена, мы собираемся использовать плагин Webroot. Он работает путем создания временного файла для проверки запрашиваемого домена в каталоге
${webroot-path}/.well-known/acme-challenge
. Сервер Let's Encrypt отправляет HTTP-запросы во временный файл для проверки того, что запрашиваемый домен разрешается на сервере, на котором работает certbot.
Мы собираемся отобразить все HTTP-запросы для
.well-known/acme-challenge
в один каталог,
/var/lib/letsencrypt
.
Выполните следующие команды, чтобы создать каталог и сделать его доступным для записи для сервера Nginx:
mkdir -p /var/lib/letsencrypt/.well-known
chgrp www-data /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt
Чтобы избежать дублирования кода, мы создадим два фрагмента, которые будут включены во все файлы блоков сервера Nginx.
Откройте ваш текстовый редактор и создайте первый фрагмент,
letsencrypt.conf
:
sudo nano /etc/nginx/snippets/letsencrypt.conf
/etc/nginx/snippets/letsencrypt.conf
location ^~ /.well-known/acme-challenge/ { allow all; root /var/lib/letsencrypt/; default_type "text/plain"; try_files $uri =404; }
Второй фрагмент
ssl.conf
включает в себя рекомендованные Mozilla отбойники, включает сшивание OCSP, HTTP Strict Transport Security (HSTS) и применяет несколько ориентированных на безопасность заголовков
sudo nano /etc/nginx/snippets/ssl.conf
/etc/nginx/snippets/ssl.conf
ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 30s; add_header Strict-Transport-Security "max-age=63072000" always; add_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff;
После этого откройте файл блока сервера домена и
letsencrypt.conf
фрагмент
letsencrypt.conf
как показано ниже:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
server { listen 80; server_name example.com www.example.com; include snippets/letsencrypt.conf; }
Создайте символическую ссылку на каталог с
sites-enabled
чтобы включить блок сервера домена:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Перезапустите службу Nginx, чтобы изменения вступили в силу:
sudo systemctl restart nginx
Теперь вы готовы получить файлы сертификатов SSL, выполнив следующую команду:
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Если сертификат SSL успешно получен, на вашем терминале будет напечатано следующее сообщение:
IMPORTANT NOTES: 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 2020-02-22. 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:
Отредактируйте блок сервера домена и включите файлы сертификатов SSL следующим образом:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; #… other code }
Приведенная выше конфигурация говорит Nginx о перенаправлении с HTTP на HTTPS и с www на версию без www.
Перезапустите или перезагрузите службу Nginx, чтобы изменения вступили в силу:
sudo systemctl restart nginx
Откройте свой веб-сайт, используя
https://
, и вы увидите зеленый значок замка.

Автообновление Let's Encrypt SSL сертификата
Сертификаты Let's Encrypt действительны в течение 90 дней. Для автоматического продления сертификатов до истечения срока их действия пакет certbot создает cronjob, который запускается два раза в день и автоматически обновляет любой сертификат за 30 дней до истечения срока его действия.
При обновлении служба nginx должна быть перезагружена, чтобы сервер мог загрузить сертификат. Добавьте
--renew-hook "systemctl reload nginx"
в файл
/etc/cron.d/certbot
чтобы он выглядел так:
sudo nano /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 nginx"
Протестируйте процесс автоматического обновления, выполнив эту команду:
sudo certbot renew --dry-run
Если ошибок нет, значит, процесс обновления прошел успешно.
Вывод
Наличие SSL-сертификата является обязательным в настоящее время. Он защищает ваш веб-сайт, повышает рейтинг SERP и позволяет вам включить HTTP / 2 на вашем веб-сервере.
В этом руководстве мы показали, как создавать и обновлять сертификаты SSL с помощью сценария certbot. Мы также показали, как настроить Nginx для использования сертификатов.
Чтобы узнать больше о Certbot, посетите документацию Certbot.
Debian nginx давайте зашифруем Certbot SSLБезопасный nginx с давайте зашифруем на centos 7
В этом руководстве мы предоставим пошаговые инструкции о том, как защитить Nginx с помощью Let's Encrypt с помощью инструмента certbot в CentOS 7.
Безопасный nginx с давайте зашифруем на Ubuntu 18.04
Let's Encrypt - это бесплатный и открытый центр сертификации, разработанный исследовательской группой Internet Security. В этом руководстве мы предоставим пошаговые инструкции по обеспечению безопасности вашего Nginx с помощью Let's Encrypt с помощью инструмента certbot в Ubuntu 18.04.
Безопасный Apache с давайте зашифруем на Debian 9
Этот учебник проведет вас через процесс получения бесплатного Let's Encrypt с помощью инструмента certbot в Debian 9. Мы также покажем, как настроить Apache для использования нового сертификата SSL и включения HTTP / 2.







