В этом руководстве описана процедура ручной установки SSL-сертификата в систему для работы веб-интерфейса администрирования системы WNAM 2 по защищенному протоколу.
Все действия необходимо будет выполнить на каждом из серверов кластера, если он настроен.
| Tip |
|---|
| В будущих версиях релизах системы планируется добавить функционал автоматической (из веб-интерфейса) установки этих сертификатов. |
I. Подготовка сертификата
Перед установкой убедитесь, что у вас есть следующие файлы:
- Сертификат (обычно файл с расширением .pem)
- Приватный ключ (файл .pem)
Установка сертификатаПоложите их в каталог /etc/nginx/certs/
1. Подключитесь к серверу WNAM 2 и отредактируйте конфигурационный файл nginx
Используйте SSH для доступа к серверу, на котором развернута система.
Система WNAM 2 (сервис wnam2.service) по умолчанию запускается на TCP порту 8080 и локальном хосте (127.0.01). Можно оставить запуск системы на этом порту, но рекомендуется использовать проксирующий сервер nginx для обработки запросов на порту 80, для SSL шифрования (порт 443), контроля доступа и кэширования. Если вы разворачивали WNAM 2 из штатного ISO-дистрибутива, nginx уже установлен и настроен на работу по порту 80 (т.е. без использования сертификатов).
Установка сервера Nginx производится следующей командой:
...
Дале следует отредактировать конфигурационный файл /etc/nginx/sites-availableenabled/wnam2ui2:
server
{listen 80;access_log /var/log/nginx/access.log;location / {proxy_pass{
root /var/www/ui2;
index index.html;
server_name _;
client_max_body_size 500M;
location / {
try_files $uri $uri/ /index.html =404;
add_header Last-Modified $date_gmt;
add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
if_modified_since off;
expires off;
etag off;
}location /api/2.0/ {
proxy_pass http://127.0.0.1:8080/api/2.0/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 120;
proxy_connect_timeout 120;
proxy_intercept_errors on; # Включаем перехват ошибокerror_page 502 503 504 /api/proxy_error.html; # replace
}location /assets/imgs/wallpaper/ {
expires max;
}location /portal/ {
try_files $uri $uri/ /index.html =404;
root /var/www;
index index.html;
}location /portal/api/auth {
proxy_pass http://127.0.0.1:8080/api/2.0/portal/auth;proxy_set_header
X-Real-IP
$remote_addr;
proxy_set_header
X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_read_timeout
120;
proxy_connect_timeout
120;
proxy_intercept_errors on;
error_page 502 503 504 /api/proxy_error.html;
}}
Если имеется SSL-сертификат (купленный, или приобретенный от полученный у сервиса Let's Encrypt), и требуется использовать сервер системы WNAM 2 так, чтобы он был доступен абонентам администраторам по протоколу HTTPS, необходимо использовать следующую конфигурацию:приблизительную конфигурацию. Разница с базовой конфигурацией выделена красным.
| Note |
|---|
| Замените "ваш.домен.ru", "ваш-сертификат.pem" и "ваш-приватный-ключ-privkey.pem" на вашу информацию. |
server {
server {
listen 80;
return 301
listen 80 default_server;
return 301https://$server_name$request_uri;
serverserver_name
wnamваш.
providerдомен.ru;
{
}
server
listen 443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/wnam.provider.ru/fullchain.pem;
{
root /var/www/ui2;
index index.html;
server_name _;
client_max_body_size 500M;
ssl_certificate /etc/nginx/certs/ваш-сертификат.pem;
ssl_certificate_key/etc/
letsencryptnginx/
live/wnam.provider.ru/certs/ваш-приватный-ключ-privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;ssl_dhparam /etc/ssl/certs/dhparam.pem;root /var/www/html;index index.html;server_name wnam.provider.ru;location / {
proxy_passlisten 443 ssl;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.html =404;
add_header Last-Modified $date_gmt;
add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
if_modified_since off;
expires off;
etag off;
}location /api/2.0/ {
proxy_pass http://127.0.0.1:8080/api/2.0/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 120;
proxy_connect_timeout 120;
proxy_intercept_errors on;error_page 502 503 504 /api/proxy_error.html;
}location /assets/imgs/wallpaper/ {
expires max;
}location /portal/ {
try_files $uri $uri/ /index.html =404;
root /var/www;
index index.html;
}location /portal/api/auth {
proxy_pass http://127.0.0.1:8080/api/2.0/portal/auth;proxy_set_header
X-Real-IP
$remote_addr;
proxy_set_header
X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_
set_header Host $hostread_timeout 120;
proxy_
set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 120;
proxy_connect_timeout 120;
connect_timeout 120;
proxy_intercept_errors on;
error_page 502 503 504 /api/proxy_error.html;
}}
2. Не забудьте сгенерировать файл dhparams:
Он необходим для корректной работы механизмов шифрования в системной SSL-библиотеке. Это операция может занять несколько минут, в зависимости от характеристик процессора.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
3, Затем необходимо создать ссылку:
Этим в работу прокси-сервера nginx включается созданный файл конфигурации WNAM 2.
cd /etc/nginx/sites-enabledln -s ../sites-available/wnam2 wnam2
...
6. После произведенных действий следует перезапустить сервис:
service nginx restart
II. Проверка работы SSL
1. Откройте веб-интерфейс WNAM 2 по HTTPS:
https://ваш.домен.ru2. Убедитесь, что соединение защищено (в браузере должен отображаться значок замка).
3. Войдите в административный интерфейс, логин и пароль по умолчанию: admin