Skip to content

Настройка SSL

Полноценная работа приложения возможна только по протоколу HTTPS. Для этого потребуется выпустить сертификат.

Получение сертификата

Получить сертификат можно несколькими способами:

  1. Let’s Encrypt - простой и бесплатный способ получить сертификат через https://certbot.eff.org/
  2. Приобрести сертификат у любого из многочисленных Удостоверяющих Центров
  3. Если по каким-то причинам нельзя получить доверенный сертификат - можно сгенерировать самоподписанный командой:
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

  1. Удалите строку
listen 443;
  1. Раскомментируйте строки и укажите корректное название файлов ваших сертификатов, важно не менять пути, только названия файлов:
listen 443 default_server ssl;
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;
}

И перезапустите nginx:

service nginx restart

Настройка редиректа

После успешной настройки https нужно сделать редирект с http. Для этого в конфигурации nginx замените весь блок server в котором указано listen 80 на следующий код (bearpass.ru замените на ваш домен в двух местах):

server {
    listen 80;
    server_name bearpass.ru;

    return 301 https://$server_name$request_uri;
}