SSL 인증서가 VPN에 의해 ​​차단되었나요?

SSL 인증서가 VPN에 의해 ​​차단되었나요?

포트 443에서 https를 통해 전달되는 웹 사이트를 호스팅하는 서버가 있습니다. 웹 사이트는 공용 인터넷에 직접 열려 있지 않지만 트래픽은 공용 IP가 있는 EC2 인스턴스에서 VPN을 통해 라우팅됩니다.

EC2 인스턴스가 아닌 호스트 서버, 동일한 내부 네트워크에 있는 컴퓨터, VPN에 있는 컴퓨터에서 웹 사이트에 액세스할 수 있습니다.

해당 머신 중 하나에서 명령을 실행하면 openssl s_client -connect www.mydomain.tld:443응답이 제공됩니다.

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]

그러나 EC2 인스턴스나 내부 또는 VPN 네트워크 외부의 머신에서 실행된 동일한 명령은 다음과 같은 응답을 제공합니다.

CONNECTED(00000003)

그러면 연결은 되지만 SSL 인증서가 없습니까?

Apache conf 파일에서 디버그할 로그 수준을 설정하면 SSL 인증서가 제공되고 있지만 어떤 이유로 EC2 인스턴스에 도달하지 못하는 것으로 표시됩니다.

EC2 인스턴스는 IFtables를 사용하여 포트 80 및 443에서 들어오는 요청을 호스팅 서버로 NAT합니다. 설정은 다음과 같습니다./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
    }
}

이 모든 것은 포트 80에서 잘 작동합니다.

아이디어가 부족해서 여기에서 찾아보세요.

해당하는 경우 VPN은 Hamachi VPN입니다.

IP 전달이 활성화되었습니다:

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

관련 정보