Уважаемые форумчане!
Прошу помощи в настройке реверс прокси. Имеется вот такая структура сети: internet - mikrotik - nginx - sites1, sites2, sites 3, etc
80 и 443 порт на микротике проброшены на машину с nginx nginx в зависимости от днс имени перебрасывает дальше на нужный сайт/сервис.
С 80 портом всё отлично, а вот с 443 какая-то беда.
Почему-то одному сайту отдаётся сертификат другого.
Вот конфиги:
site 1
server {
listen 80;
server_name site1;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name site1;
ssl_certificate /etc/letsencrypt/live/site1/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/site1/privkey.pem;
location ~ /.well-known {
allow all;
}
location / {
proxy_pass https://10.7.2.78:443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 120;
proxy_connect_timeout 120;
}
}
site2
server {
server_name site2;
listen 443 ssl;
ssl on;
ssl_certificate /etc/nginx/ssl-staffcop/server.crt;
ssl_certificate_key /etc/nginx/ssl-staffcop/server.key;
ssl_client_certificate /etc/nginx/ssl-staffcop/client.crt;
ssl_verify_depth 2;
ssl_verify_client optional;
client_max_body_size 1G;
access_log /var/log/staffcop/https.access.log;
error_log /var/log/staffcop/https.error.log;
keepalive_timeout 70;
location /CA.crt {
alias /etc/nginx/ssl-staffcop/server.crt;
}
location /ROOT.crt {
alias /etc/nginx/ssl-staffcop/ROOT.crt;
}
location /favicon.ico {
alias /usr/share/staffcop/static/favicon.ico;
}
location /static/ {
alias /usr/share/staffcop/static/;
}
location ~* /agent-.*\.msi {
alias /usr/share/staffcop/static/agent.msi;
}
location /media/ {
alias /var/lib/staffcop/upload/;
error_page 403 404 @error_image;
}
location /files/ {
auth_basic "File storage";
auth_basic_user_file /usr/share/staffcop/htpasswd;
}
location @error_image {
rewrite .*_.png /thumb/$1;
rewrite .* /static/img/default.ico;
}
location /media/admin/ {
alias /usr/share/staffcop/django/contrib/admin/static/admin/;
}
location / {
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param UWSGI_SCHEME $scheme;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param VERIFIED $ssl_client_verify;
uwsgi_param DN $ssl_client_s_dn;
send_timeout 3600;
uwsgi_read_timeout 3600;
uwsgi_buffering off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
uwsgi_pass 10.7.2.49:3000;
}
location /staffcop {
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param UWSGI_SCHEME $scheme;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param VERIFIED $ssl_client_verify;
uwsgi_param DN $ssl_client_s_dn;
send_timeout 3600;
uwsgi_read_timeout 3600;
uwsgi_buffering off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
uwsgi_pass 10.7.2.49:3001;
}
}
staffcop (site2) программа корп мониторинга. так вот по логам агента установленного на клиенте видно что nginx почему-то отдаёт сертификат от site1 Хотя параметр server_name установлен в обоих конфигах.
Прошу помочь в настройке.