Установка сертификата SSL и переход на HTTPS-отличный способ сделать соединение между вашим браузером и сервером более безопасным. SSL-соединение рекомендуется для всех сайтов, где пользователю требуется регистрация. Вопреки тому, что говорят многие устаревшие инструкции и руководства, сертификат не добавляет значительной нагрузки на сервер и может быть легко и недорого выпущен.
Как установить сертификат SSL на nginx
Чтобы установить SSL на nginx, вам необходимо выполнить следующие действия:
Вы должны получить архив с сертификатом на свой адрес электронной почты, указанный при заказе SSL-сертификата. В архиве обычно хранятся корневые, промежуточные и доменные сертификаты. Если у вас уже есть пакет.в случае файла crt вы можете сразу перейти к шагу 4. В противном случае вам придется объединить три файла сертификата в один файл. Этот процесс подробно описан в пунктах 2 и 3.
У вас должно быть три файла: comodo_root.crt (корневой сертификат), comodo_intermediate.crt (промежуточный сертификат) и your_domen.ЭЛТ. Их .скопируйте файл key вместе со случайным каталогом на вашем сервере, в который вы хотите их сохранить.
Вы можете создать корневой файл сертификата (comodo_root.crt), файл промежуточного сертификата (comodo_intermediate.crt) и ваш_домен.вам нужно будет объединить файл сертификата crt в один файл CRT. Это делается с помощью следующей команды:
cat comodo_root.crt comodo_intermediate.crt your_domen.crt > bundle.ЭЛТ
В некоторых случаях Comodo отправляет архив, в котором файлы промежуточного сертификата и корневого сертификата уже объединены в один файл. Если это так, вам нужно будет объединить его с файлом сертификата, используя следующую команду:
cat comodo-bundle.crt your_domain.crt > bundle.ЭЛТ
Перейдем к настройке Nginx.
Откройте файл виртуального хоста nginx для сайта, который вы хотите защитить. Если вы хотите получить доступ к своему сайту через безопасное и надежное соединение, вам необходимо добавить серверный модуль для каждого типа подключения. Для безопасного подключения сделайте копию существующего модуля и поместите ее под основной код. Затем добавьте к нему следующие строки (жирным шрифтом):
сервер {
прослушивание 443;
ssl включен;
ssl_certificate /etc/ssl / bundle.ЭЛТ;
ssl_certificate_key /etc/ssl / your_domain.ключ;
server_name yourdomain.com;
access_log /var/log/nginx / nginx.vhost.access.журнал;
error_log/var/log/nginx / nginx.vhost.error.журнал;
Адрес / {
root/home/www/public_html/your_domain / Public/;
индексный индекс.html;
}
}
Убедитесь, что Ssl_certificate установлен в файл crt, который мы создали ранее.
Если вы используете генератор, указанный в приведенной выше ссылке, ваш файл конфигурации может выглядеть примерно так (здесь вы можете перейти к dhparam для обеспечения конфиденциальности.мы имеем в виду, что вы создали PEM. Если нет, то это делается с помощью команды openssl dhparam-out /etc/. pki/nginx / dhparam.- С. 4096):
сервер {
слушать 80;
server_name name.ru www.name.ru;
возвращение 301 https://name.ru$request_uri;
}
# 301 добавить перенаправление
сервер {
Слушайте 443 ssl http2;
server_name www.name.ru;
# не забудьте показать сертификаты здесь
ssl_certifate / etc / nginx / SSL / name. ru / Bundle. crt;
ssl_certificate_key / etc/nginx/ssl/name.ru/name. key;
возвращение 301 https://name.ru$request_uri;
}
сервер {
# добавить протокол http2
Слушайте 443 ssl http2;
server_name name.ru;
access_log off;
#access_log /var/log/nginx/name.ru. access. log;
error_log /var/log/nginx/name.ru. error. log;
ssl включен;
# OCSP-включить скобу. Что это такое и для чего он нужен, вы можете узнать в наших часто задаваемых вопросах.
ssl_stapling включен;
ssl_stapling_verify включен;
# наши сертификаты
ssl_certifate /etc/nginx/ssl / name. ru / Bundle. crt;
ssl_certificate_key / etc/nginx/ssl/name.ru/name_private. key;
ssl_dhparam /etc/nginx/ssl/name.ru/dhparam. pem;
# установить сеанс
ssl_session_tickets отключен;
ssl_session_timeout 1 день;
ssl_session_cache общий: SSL: 50m;
ssl_protocols TLSv1 TLSv1. 1 TLSv1. 2 TLSv1. 3;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256-AES128-GCM-SHA256:HEECSHACAD4-HEESSH56 - RSA-AES256-GCM-SHA384: DHE-RSA-AES128-GCM-SHA256: DHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA2182-SHA25 - SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA25:SHA - DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA: AES128-GCM-SHA256: AES256-GCM-SHA384: AES128-SHA256: AES256-SHA256: AES128-SHA: AES256-SHA: DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers включен;
add_header Strict-Transport-Security max-age=31536000;
# прокси данных
Адрес / {
# параметры прокси
proxy_send_timeout 600;
proxy_read_timeout 600
;
proxi_bufer_sizi 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $схема;
proxy_set_header HTPS HA;
# IP-адрес целевого сайта для прокси-сервера
proxy_pass http://192.168.1.108;
}
}
Вам также нужно будет добавить в конфигурацию следующее (Здесь все зависит от используемой CMS):
место ~ \.php$ { fastcgi_pass unix:/var/run/php-fpm / www.sock; fastcgi_split_path_info ^(.+\.php) ().+ )$; fastcgi_index index.php; содержит fastcgi_params; FASTCGI_PARAM SCRIPT_FILENAME $document_root/$fastcgi_script_name; fastcgi_param REMOTE_ADDR $http_x_real_ip; FASTCGI_PARAM HTTPS включен; fastcgi_param HTTP_HTTPS включен; fastcgi_param request_scheme https; fastcgi_param server_port 443; }
Перезапустите nginx. Просто выполните следующую команду:
перезапустите службу nginx