SSL 证书被 VPN 阻止了吗?

SSL 证书被 VPN 阻止了吗?

我有一台服务器,它托管一个通过端口 443 上的 https 传送的网站。该网站不直接向公共互联网开放,但流量是通过 VPN 从具有面向公众的 IP 的 EC2 实例路由的。

可以从主机服务器、同一内部网络上的计算机以及 VPN 上的非 EC2 实例的计算机访问该网站。

从任何一台机器发出命令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

相关内容