В попередній статті ми встановили Confluence, базово налаштували його, після чого доступ до сервісу став можливим через стандартний порт http://server-address:8090/ що, звичайно, є не дуже зручно і точно небезбечно. Ці обидві проблеми вирішуються за допомогою веб-проксі серверу NGINX. Він буде приймати з’єднання від користувачів та відповідати від імені Confluence.
1. Сертицікат для https
Для тесту ми будемо використовувати замопідписній сертифікат
apt-get onstall openssl
Генеруємо його:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/confluence-site.key -out /etc/nginx/ssl/confluence-site.crt
Відповідаємо (заповнюємо сертифікат даними)
Country Name (2 letter code) [UA]:UA
State or Province Name (full name) [Some-State]:Kyiv
Locality Name (eg, city) []:Kyiv
Organization Name (eg, company) [Internet Widgits Pty Ltd]:OZT
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:confluence.test.local
Email Address []:support@ozt.com.ua
openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
Потім ми його задіємо в конфігурації сайту в nginx. Також варто відмітити, що для комерційних цілей краще замовляти сертифікати на сцепіальних платформах, які займаються SSL-сертиіфкатами.
2. Сайт для Confluence
Встановлюємо nginx
apt-get install nginx
Далі створюємо сайт
nano /etc/nginx/sites-available/010-confluence
server {
listen 80;
server_name confluence.test.local www.confluence.test.local;
access_log /var/log/nginx/confluence_access.log;
error_log /var/log/nginx/confluence_error.log;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name confluence.test.local www.confluence.test.local;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate /etc/nginx/ssl/confluence-site.crt;
ssl_certificate_key /etc/nginx/ssl/confluence-site.key;
ssl_prefer_server_ciphers off;
ssl_dhparam /etc/nginx/ssl/dhparam.pem;
access_log /var/log/nginx/confluence_ssl_access.log;
error_log /var/log/nginx/confluence_ssl_error.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8090/;
proxy_set_header Accept-Encoding “”;
proxy_read_timeout 60s;
}
}
Ми зробили редірект з http на https, задіяли сертифікат та вказали ім’я сайту, через яке можна буде підключатись до Confluence. Окремо, на вашому DNS сервері, треба буде зробити запис типу А, в якому будуть співпадати назва confluence.test.local з ip-адресою сервера, це може бути dnsmgmt.msc в рамках домену, окремий bind-server, чи просто запис в маршрутизаторі, короче сервіс, який відповідає за роботу DNS.
Вмикаємо сайт, зробивши лінк на файл
ln -s /etc/nginx/sites-available/010-confluence /etc/nginx/sites-enabled/
Перевіряємо конфігурацію, і якщо все ок – приміняємо її
service nginx reload
nginx -t && nginx -T
Від тепер користувачам не треба пам’ятати порт 🙂 достатньо вказати нову назву сайту:
http://server-address на що отримаємо: https://server-address