Nginx proxy_pass para IP, mas use HTTPS

Nginx proxy_pass para IP, mas use HTTPS

Eu tenho um servidor legado protegido por certificado SSL para example.com. Quero colocar outro servidor na frente deste para proxy_passdeterminado tráfego (legado). O novo servidor também deve ser exposto example.com.

Se estivessem em domínios separados ( legacy.example.come example.com), eu simplesmente conseguiria proxy_pass https://legacy.example.com. No entanto, o aplicativo legado está repleto de example.comURLs codificados (e possui apenas um certificado SSL para example.com). Qualquer outro URL (o IP, por exemplo) será redirecionado para example.com.

O que eu quero fazer é proxy_pass <legacy IP>definir o cabeçalho do host com proxy_set_header Host example.com. Mas o problema é que isso não usa HTTPS.

Fiz algo há algum tempo com curl, consegui me conectar a um servidor pelo IP, mas especifiquei o domínio a ser usado para o certificado. Embora não houvesse Aregistro de example.commapeamento para esse IP, consegui induzi-lo a pensar que estava sendo conectado por aquele domínio.

curl https://example.com/path --resolve example.com:<IP>

Existe algo assim no Nginx?

Responder1

Eu não usei, mas parece que proxy_ssl_namepode ser o que você está procurando:

Por exemplo:

proxy_set_header Host example.com;
proxy_ssl_name        example.com;
proxy_pass            https://1.2.3.4;

Veresse documentopara detalhes.

informação relacionada