В предыдущей заметке описал установку Sentry в Docker контейнере, но всплыла одна небольшая печалька: современные броузеры отказываются переходить с HTTPS сайта по HTTP ссылке.
Сегодня будем прикручивать SSL сертификаты к Sentry.
Ставим Nginx и скрипт-клиент Let's Encrypt:
Создаем конфиг Nginx для sentry /etc/nginx/sites-available/sentry.mysite.com следующего содержания:
Генерируем сертификаты:
Приводим файл /etc/nginx/sites-available/sentry.mysite.com к виду:
Все работает!
Добавляем автоматическое обновление сертификатов:
Сегодня будем прикручивать SSL сертификаты к Sentry.
Ставим Nginx и скрипт-клиент Let's Encrypt:
apt install -y nginx certbot
Для того, чтобы сгенерировать сертификаты необходимо осуществить промежуточную настройку для доступа по HTTPСоздаем конфиг Nginx для sentry /etc/nginx/sites-available/sentry.mysite.com следующего содержания:
server {
listen 80;
listen [::]:80;
server_name sentry.mysite.com www.sentry.mysite.com;
location / {
proxy_pass http://localhost:8080;
}
}
Создаем на наш конфиг символическую ссылку из папки /etc/nginx/sites-enabled:cd /etc/nginx/sites-enabled
ln -s /etc/nginx/sites-available/sentry.
mysite.com
Рестартим Nginx:systemctl restart nginx.service
Необходимо обеспечить разрешение доменных имен для sentry.mysite.com и www.sentry.mysite.com, а так же доступ из мира по 80 и 443 портам.Генерируем сертификаты:
certbot certonly --webroot --agree-tos --email admin_mail@mysite.com -w /var/www/mysite.com/ -d mysite.com
Жмем Y |
server {
listen 80;
server_name sentry.mysite.com www.sentry.mysite.com;
location / {
if ($request_method = GET) {
rewrite ^ https://$host$request_uri? permanent;
}
return 405;
}
}
server {
listen 443 ssl;
server_name sentry.mysite.com www.sentry.mysite.com;
set_real_ip_from 127.0.0.1;
set_real_ip_from 10.0.0.0/8;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:128m;
ssl_session_timeout 10m;
ssl_certificate /etc/letsencrypt/live/sentry.mysite.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/sentry.mysite.com/privkey.pem;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_redirect off;
# keepalive + raven.js is a disaster
keepalive_timeout 0;
# use very aggressive timeouts
proxy_read_timeout 5s;
proxy_send_timeout 5s;
send_timeout 5s;
resolver_timeout 5s;
client_body_timeout 5s;
# buffer larger messages
client_max_body_size 5m;
client_body_buffer_size 100k;
location / {
proxy_pass http://localhost:9000;
add_header Strict-Transport-Security "max-age=31536000";
}
}
Снова рестартим Nginx:systemctl restart nginx.service
Заходим на сайт по имени: sentry.mysite.comВсе работает!
Добавляем автоматическое обновление сертификатов:
crontab -e
Добавляем строку:
0 0 1,16 * * /usr/bin/certbot renew
Порты 80 и 443 должны быть доступны из мира.
Комментариев нет:
Отправить комментарий