Appearance
Настройка SSL
Полноценная работа приложения возможна только по протоколу HTTPS. Для этого потребуется выпустить сертификат.
Получение сертификата
Получить сертификат можно несколькими способами:
- Let’s Encrypt - простой и бесплатный способ получить сертификат через https://certbot.eff.org/
- Приобрести сертификат у любого из многочисленных Удостоверяющих Центров
- Если по каким-то причинам нельзя получить доверенный сертификат - можно сгенерировать самоподписанный командой:
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout nginx.key -out nginx.crt
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout nginx.key -out nginx.crt
Подключение сертификата
Теперь полученный сертификат и ключ нужно прописать в конфигурации nginx
.
Docker установка
Положите сертификат и ключ в папку nginx/ssl
(/opt/bearpass/docker/nginx/ssl
)
В конфиге /nginx/conf/conf.d/app.conf
раскомментируйте строки и укажите корректное название файлов ваших сертификатов, важно не менять пути, только названия файлов:
ssl on;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl on;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
И перезапустите контейнеры.
Ручная установка
Если вы использовали https://certbot.eff.org/, то он сам пропишет нужные конфиги, дополнительных действий не требуется.
Положите сертификат и ключ в папку /etc/nginx/ssl
. В файл /etc/nginx/sites-available/<hostname>
добавьте дополнительный блок server
(bearpass.ru
замените на ваш домен, проверьте названия сертификата и ключа):
server {
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
server_name bearpass.ru;
set $BP_ROOT /var/www/bearpass;
include /var/www/bearpass/nginx.conf;
}
server {
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
server_name bearpass.ru;
set $BP_ROOT /var/www/bearpass;
include /var/www/bearpass/nginx.conf;
}
И перезапустите nginx
:
service nginx restart
service nginx restart
Настройка редиректа
После успешной настройки https
нужно сделать редирект с http
. Для этого в конфигурации nginx
замените весь блок server
в котором указано listen 80
на следующий код (bearpass.ru
замените на ваш домен в двух местах):
server {
listen 80;
server_name bearpass.ru;
return 301 https://bearpass.ru$request_uri;
}
server {
listen 80;
server_name bearpass.ru;
return 301 https://bearpass.ru$request_uri;
}