У меня возникает сомнение в настройке nginx для перенаправления трафика HTTPS, полученного на пользовательский порт, на тот же номер настраиваемого порта целевого URL-адреса. Мое дело приводится ниже.Настройка nginx для разрешения трафика HTTPS на настраиваемом порту
- У меня есть VPC в AWS. Я запускаю nginx на сервере NAT (экземпляр Bastion в моем случае), который получает трафик HTTPS.
- Мой экземпляр приложения в VPC является местом назначения запросов, отправленных nginx. Он имеет два настраиваемых поддомена, один для односторонней аутентификации SSL, а другой для двухсторонней аутентификации SSL.
- Я обслуживаю URI, имеющий двустороннюю аутентификацию на пользовательском порту, а не 443. URI, имеющие службы, запущенные на порту 443, используют одностороннюю SSL-аутентификацию (аутентификацию сервера).
- В моем конфигурационном файле nginx я прослушиваю этот пользовательский порт, чтобы получить запросы HTTPS, перенаправленные на тот же пользовательский порт в приложении-приложении, после того, как было выполнено квитирование SSL. Но я заметил, что после этапа рукопожатия он был перенаправлен на порт 443 по умолчанию приложения-экземпляра.
- Пакеты HTTPS отправляются с использованием объекта HTTPBuilder, доступного в Java/Groovy, после настройки схемы HTTPS.
Конфигурация Nginx образец, который я использую дается здесь:
server {
listen 8000;
server_name myserver.com;
ssl on;
ssl_certificate /path/to/server/cert;
ssl_certificate_key /path/to/server/key;
ssl_client_certificate /path/to/client/cert;
ssl_verify_client on;
#https requests to this URI gets redirected to port 443 by default
location /customUri1 {
# switch off logging
access_log off;
proxy_pass http://app-instance-ip:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
server {
listen 443;
server_name myserver.com;
ssl on;
ssl_certificate /path/to/server/cert;
ssl_certificate_key /path/to/server/key;
location /customUri2 {
# switch off logging
access_log off;
proxy_pass http://app-instance-ip:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto http;
}
}
Есть ли какой-либо механизм конфигурации Nginx, который мог бы позволить мне посылать запросы HTTPS на пользовательский порт на приложение инстанции? Благодарю.
Как вам удалось использовать клиентские сертификаты с вашим отличным кодом? –