Странная ситуация, даже не знаю, как искать в google, как это описывать ... В любом случае я использую Nginx и проксирую https-трафик на вышестоящий сервер. С http (с другими доменами) все нормально, но не получается заставить его работать с https ...
Вот моя конфигурация nginx
upstream umarket { server 192.168.2.11:443; }
# Upstream
server {
listen 80;
listen 443 ssl http2;
server_name umarket.lt;
error_log /var/log/nginx/umarket.lt_error.log;
add_header Strict-Transport-Security "max-age=31536000";
ssl on;
ssl_certificate /etc/nginx/ssl/umarket.lt/umarket_lt_chained.crt;
ssl_certificate_key /etc/nginx/ssl/umarket.lt/server.key;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
proxy_redirect off;
proxy_buffering off;
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 https;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_ssl_session_reuse off;
proxy_cache_bypass $http_secret_header;
proxy_ignore_headers Set-Cookie;
proxy_ignore_headers Cache-Control;
location = / {
proxy_pass $scheme://umarket;
}
}
Как было предложено, я не буду использовать ssl для восходящего потока, hre, как выглядит конфигурация сейчас, все тот же результат ... Это внутри блока http:
upstream umarket { server 192.168.2.11:80; }
proxy_redirect off;
proxy_buffering off;
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 http;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_ssl_session_reuse off;
proxy_cache_bypass $http_secret_header;
proxy_ignore_headers Set-Cookie;
proxy_ignore_headers Cache-Control;
add_header X-Cache-Status $upstream_cache_status;
server {
listen *:80;
server_name umarket.lt;
rewrite ^(.*) https://$host$1 permanent;
}
server {
listen 443 ssl http2;
server_name umarket.lt;
error_log /var/log/nginx/umarket.lt_error.log;
add_header Strict-Transport-Security "max-age=31536000";
ssl on;
ssl_certificate /etc/nginx/ssl/umarket.lt/umarket_lt_chained.crt;
ssl_certificate_key /etc/nginx/ssl/umarket.lt/server.key;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
location = / {
proxy_pass http://umarket;
}
}
Сделайте две серверные секции на 80 и 443 порта. И используйте порт 80 на восходящем сервере, вы уже устанавливаете SSL-соединение на nginx, нет необходимости использовать SSL-соединение между интерфейсом и сервером.
Используйте что-то вроде этого, чтобы перенаправить все запросы с http на https-версию сайта.
server {
listen 80;
server_name umarket.lt;
rewrite ^(.*) https://$host$1 permanent;
}
Решение: Также замените расположение = / к расположение /. Это решает проблему.