У цій статті ми розглянемо, як налаштувати безкоштовний сертифікат TLS/SSL. Ми покажемо, як випустити сертифікат для одного домену (або сертифікат SSL Wildecard для всіх субдоменів), налаштуйте сертифікати автоматичного продажу.
Зміст:
- Встановлення CERTBOT - Клієнт Давайте шифруємо в Linux
- Випуск сертифіката SSL для NGINX
- Встановлення сертифікату SSL Letcrypt на веб -сайті NGINX
- Безкоштовні сертифікати SSL Wildcard Давайте шифруємо для субдоменів
- Розширення сертифікатів Encrypt
Встановлення CERTBOT - Клієнт Давайте шифруємо в Linux
Ми будемо випущені сертифікат CERTBOT, щоб випустити сертифікат Let's Encrypt. Для встановлення бота потрібно використовувати утиліту Оснащення, Якщо у вас його немає, встановіть:
#Yum встановити snapd -y
Після встановлення Snapd він повинен бути доданий як сервіс і створити симолін для зручності запуску:
# SystemCtl Увімкнути - тепер snapd.Розетка
# Ln -s/var/lib/snapd/snap/snap
Тепер ви можете встановити certbot:
# Sudo snap install -classic certbot
Все також для зручності початку, ми створимо Simlink:
# Ln -s/snap/bin/certbot/usr/bin/certbot
Випуск сертифіката SSL для NGINX
Щоб випустити сертифікат SSL для сайту, запустіть команду:
# Certbot certonly - nginx
Утиліта перевірить конфігурацію NGINX та видасть усі сайти, на яких можна встановити сертифікат (утиліта отримує список сайтів із конфігурації Nginx). У цьому процесі бот вимагатиме від вас дані, електронної пошти, доменів тощо.
У моєму випадку є лише один домен, і я вибрав його. Якщо у вас немає проблем з DNS-рекордами домену та веб-сервером, то сертифікат SSL повинен випускати без помилок.
Встановлення сертифікату SSL Letcrypt на веб -сайті NGINX
Щоб сертифікат SSL заробляє на вашому сайті, вам потрібно використовувати наступний файл конфігурації Nginx для вашого домену:
Сервер Слухай 443 SSL HTTP2; Server_name дозволяє.Конструкція.RU; Root/var/www/lets.Конструкція.RU; Індекс індексу.Індекс PHP.Індекс HTML.Htm; Access_log/var/www/build-tivos.Інформація/log/ssl-expess.Головний журнал; Error_log/var/www/build centos.Інформація/журнал/SSL-Surror.журнал; Keepalive_Timeout 60; Ssl_certificate/etc/letsencrypt/live/build centos.Інформація/fullchain.PEM; Ssl_certicate_key/etc/letsencrypt/live/build centos.Інформація/привію.PEM; Ssl_protocols tlsv1 tlsv1.1 TLSV1.2; SSL_CIPHERS 'ECDHE -RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AS128-GCM-SHA256: ECDHE -RSA-AAS256-GCM-SHA384: ECDHE-ECDSA-AES256 -GCM-SHAM-SHAL3884: Dhe-Shal3888888884: Dhe-Shal3888 SHAL3888884: DHE-SHAL38888884888888888LAY SHA256: DHE-DSS-AES128-GCM-SHA256: KEDH+AESGCM: EcDhe -rsa-AES128-SHA256: ECDHE-ECDSA-AAS128-SHA: ECDHE-AAS128-SHA: ECDHE-ECDSA-ACDSA-ACDSA -Acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa-acdsa -Acdsa-acdsa RSA-AES256-SHA384: ECDHE-ECDSA-AES256-SHA384: ECDHE -RSA-AES256-SHA: ECDHE-ECDSA-AIS256-SHA: DHE -RSA-AAS128-SHA256: DHE -RS-ASESA-ASHA: DHE: DHE: DHE: DHE: DHE: DHE AES128-SHA256: DHE -RSA-AES256-SHA256: DHE-DS-AES256-SHA: DHE -RSA-AES256-SHA: AES128-GCM-SHA256: AES256-GCM-SHA384 : AES1256: AES256-SHAA256: AES1256: AES256: AES256: AES256 SHA: AES256-SHA: AES: Camellia: DES-CBC3-SHA:!Anull:!Енул:!Експорт:!Des:!RC4:!MD5:!PSK:!AECDH:!EDH-DSS-DES-CBC3-SHA:!EDH -RS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA '; Add_header Stickt-transport-Security 'max-ege = 604800'; Місцезнаходження / try_files $ uri $ uri / / index.PHP?$ args; Розташування ~* ^.+.(js | css | png | jpg | gif | ico | woff) $ access_log off; Закінчується Макс; Місцезнаходження ~ \.Php $ try_files $ uri = 404; Fastcgi_pass unix:/var/run/php-fpm/php-fpm.Шкарпетка; Індекс fastcgi_index.PHP; Fastcgi_param document_root/var/www/lets.Конструкція.RU; Fastcgi_param script_filename/var/www/lets.Конструкція.ru/$ fastcgi_script_name; Fastcgi_param path_transladed/var/www/lets.Конструкція.ru/$ fastcgi_script_name; Включіть fastcgi_params; Fastcgi_param query_string $ query_string; Fastcgi_param request_method $ request_method; Fastcgi_param contype $ content_type; Fastcgi_param content_length $ content_length; Fastcgi_param https on; fastcgi_intercept_errors on; fastcgi_ignore_client_abort off; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; Fastcgi_read_timeout 180; fastcgi_buffer_size 128k; Fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; Розташування = /Фавікон.Ico log_not_found off; Access_log OFF; Розташування = /Роботи.txt дозволити всім; log_not_found off; Access_log OFF; Місцезнаходження ~ /\.ht заперечувати всі;
Збережіть файл конфігурації. Ми перевіряємо обґрунтованість налаштувань у файлі конфігурації Nginx:
[Root@letsencrypt]# nginx -t
Nginx: файл конфігурації/etc/nginx/nginx.Conf Syntax - це нормально nginx: файл конфігурації/etc/nginx/nginx.Конф -тест є успішним
Відновити веб -сервер NGINX:
# Перезавантаження nginx
Тепер, якщо ви відкриєте сайт на протоколі HTTPS у браузері, відображається значок безпечного з'єднання.
Якщо натиснути на значок сертифіката, ви можете отримати повну інформацію про це:
Безкоштовні сертифікати SSL Wildcard Давайте шифруємо для субдоменів
Щоб випустити підстановку, давайте шифруйте сертифікат для всіх субдоменів, використовується інша команда. Крім того, у налаштуваннях DNS вашого домену потрібно створити спеціальний TXT-Record. Щоб випустити сертифікат підстановки для субдоменів, у каталозі/opt/letsencrypt/запустити команду:
# Certbot run -a посібник -i nginx -d *.дозволяє.Конструкція.ru
Після запуску команди вам потрібно буде пройти всю процедуру перевірки домену, включаючи, вам потрібно буде створити спеціальний запис TXT в DNS.
Не натискайте "введіть", поки ви не переконаєтесь, що запис доступний у глобальних DNS. На панелі реєстратора домену створіть тип запису DNS Tpxt TXT з іменем _Acme-mhallenge і значення, скопійована з консолі Certbot.
Зачекайте, щоб оновити інформацію в DNS, натисніть кнопку Enter та сертифікат SSL Wildcard буде успішно випущений:
Каталог зберігання сертифікатів та ключів у цьому випадку відрізняється від того, в якому сертифікат розміщений для основного домену.
Перевірте, чи працює сертифікат на тесті на субдомен.Конструкція.RU:
Як видно з скріншота, сертифікат випускається правильно та дійсним для всіх субдоменів.
Розширення сертифікатів Encrypt
Давайте сертифікати шифрування видаються протягом 90 днів, рекомендується розширювати ці сертифікати кожні 60 днів.
Щоб перемогти застарілий сертифікат SSL, давайте шифруємо, використовується команда:
# /Certbot revene-сухий
Якщо ви запустите команду відразу після випуску сертифікатів, буде повідомлення про те, що сертифікат не потребує повторного випуску:
Cert не належить до поновлення
Щоб розширити сертифікат SSL, давайте шифрування виконується автоматично, потрібно додати завдання до Cron:
00 00 *].журнал
15 00 * * 6/usr/bin/systemctl перезавантажити nginx
Ця робота з кронами намагатиметься розширити сертифікат щосуботи та виконувати м'яке перезавантаження веб -сервера NGINX. Усі кроки для повторного випуску сертифікатів SSL будуть виправлені у файлі журналу /var/log/le -Renew.журнал.
Усі журнали шифрування зберігаються в каталозі /var/log/letsencrypt.
Таким чином, ми встановлюємо безкоштовний сертифікат SSL Давайте шифруємо на нашому веб -сайті, що працює над Nginx.
Давайте шифруємо безкоштовні сертифікати також можна використовувати для сайтів IIS.