Certificados SSL bloqueados por VPN?

Certificados SSL bloqueados por VPN?

Eu tenho um servidor que hospeda um site entregue via https na porta 443. O site não está aberto diretamente à Internet pública, mas o tráfego é roteado por meio de uma VPN de uma instância EC2 que possui um IP público.

O site pode ser acessado a partir do servidor host, de computadores na mesma rede interna e de computadores na VPN, que não sejam a instância EC2.

Emitir o comando openssl s_client -connect www.mydomain.tld:443de qualquer uma dessas máquinas dá a resposta:

CONNECTED(00000003)
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = cloud.hss.ac.uk
verify return:1
---
Certificate chain......
[Truncated for brevity]

Porém, o mesmo comando emitido na instância EC2, ou de uma máquina fora das redes internas ou VPN dá a resposta:

CONNECTED(00000003)

Então, estamos obtendo uma conexão, mas nenhum certificado SSL?

Definir o nível de log para depuração no arquivo conf do Apache mostra que os certificados SSL estão sendo servidos, mas eles não alcançam a instância do EC2 por algum motivo.

A instância EC2 apenas envia solicitações de entrada de NAT nas portas 80 e 443 para o servidor de hospedagem usando IFtables. Aqui estão as configurações em/etc/nftables.conf

#!/usr/sbin/nft -f

flush ruleset

table ip nat {
    chain prerouting {
    meta nftrace set 1
        type nat hook prerouting priority -100; policy accept;

        iifname "eth0" tcp dport { 80, 443 } dnat to x.x.x.x
    counter
    }

    chain postrouting {
    meta nftrace set 1
        type nat hook postrouting priority 100; policy accept;

        masquerade
    }
}

Tudo isso funciona bem na porta 80.

Estou ficando sem ideias, então estou procurando algumas aqui.

A VPN é uma VPN Hamachi, caso isso seja relevante.

O encaminhamento de IP está ativado:

sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

informação relacionada