Есть старый сервер с ubuntu 2016 года и
nginx/1.10.3 (ubuntu)
И есть новый новый сервер
nginx/1.24.0 (ubuntu)
На обоих в nginx одна и та же настройка проксирования
server {
listen 80;
server_name app.test123.ru;
return 301 https://app.test123.ru$request_uri;
}
server {
listen 443 ssl;
server_name app.test123.ru;
ssl_certificate /opt/ssl/certbot_ACME.crt;
ssl_certificate_key /opt/ssl/certbot_ACME.key;
location / {
proxy_pass http://127.0.0.1:8080/;
expires -1s;
proxy_cache off;
proxy_redirect 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 $scheme;
client_max_body_size 30m;
}
}Т.е. приходящее на 80 порт отпарвляет на https т.е. порт 443
Там перенаправляет на Tomcat в localhost-е который слушает порт 8080
На tomcat стоит приложение которое проверяет адрес. И сравнивает с некоей сигнатурой. Грубо говоря это защита чтобы приложение не запускали на чужом сервере, привязка к доменному имени сделана.
в настройках и лицензионном ключе с сигнатурой
указан адрес
http://app.test123.ruТак вот суть вопроса.
На старом сервере все срабатывает нормально.
хоть по адресу
http://app.test123.ruхоть
https://app.test123.ruобращайся. Т.е. при проверке ключа приложению не важно что это http или https
На новом c http работает
а с https функционал урезан и есть сообщение об ошибке несоответствия ключа
Тут или при прохождении через прокси раньше URL трансформировался https -> http
а на современной версии этого нет и передается 1 в 1
Или как-то tomcat замешан но как именно не могу предположить.