Моя программа на Golang не может работать с пользовательским сертификатом (http-клиентом) из-за неподдерживаемых старых алгоритмов tls. Я хочу решить эту проблему с помощью обратного прокси, используя nginx. Вот картинка описывает продуманную схему https://ibb.co/Jxcy52G.
[клиент] ----> [NGINX: 80] ---- (передача прокси с использованием сертификата, privkey) ----> [TOMCAT: 8443]
https://TOMCAT:8443 требуется проверка подлинности с помощью сертификата клиента. Я хочу скрыть этот факт из моего приложения. Приложение не должно требовать предоставления сертификата клиента. Вместо этого я бы хотел, чтобы NGINX использовал сертификат, хранящийся на сервере.
Моя конфигурация nginx.conf:
server {
listen 80;
# server_name _;
location / {
proxy_ssl_certificate "cert.pem";
proxy_ssl_certificate_key "key.pem";
proxy_ssl_server_name on;
# proxy_ssl_verify off;
proxy_ssl_name "iscs.telecomtest.ru";
proxy_read_timeout 300;
proxy_send_timeout 300;
proxy_pass https://195.11.xx.16:8443;
proxy_buffering off;
}
}
Когда я пытаюсь открыть страницу http://my -nginx: 80 / , я получаю:
2019/06/18 15:16:22 [error] 25896#14556: *133 peer closed connection in SSL handshake while SSL handshaking to upstream, client: 127.0.0.1, server: , request: "GET /? HTTP/1.1", upstream: "https://195.11.xx.16/?", host: "127.0.0.1:19101"
Заранее спасибо.