连接到 AWS Client VPN 终端节点时如何修复验证证书错误?

Jim*_*rts 6 ipsec amazon-web-services

我已经使用创建客户端 VPN 端点中描述的步骤设置了客户端 VPN

对于服务器证书,我选择了一个由 AWS Certificate Manager 新创建和验证的公共证书。

我将身份验证方法配置为使用Use Active Directory authentication与 AWS SimpleAD 目录对应的目录 ID。

我将传输协议设置为 UDP。

当我下载客户端配置并尝试通过 OSX 上的 Tunnelblick (v3.7.8) 进行连接时,出现以下错误:

VERIFY ERROR: depth=3, error=unable to get issuer certificate: C=US, ST=Arizona, L=Scottsdale, O=Starfield Technologies, Inc., CN=Starfield Services Root Certificate Authority - G2
OpenSSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
TLS_ERROR: BIO read tls_read_plaintext error
TLS Error: TLS object -> incoming plaintext read error
TLS Error: TLS handshake failed
Run Code Online (Sandbox Code Playgroud)

有什么想法没有正确配置或者我可以做些什么来解决这个问题?

小智 5

除了Maruthi 的回答之外- 我会发表评论,但没有足够的声誉......

这是来自 AWS 的类似官方答案

在此输入图像描述

但是,至关重要的是,他们指定替换 ovpn 文件中的第三个证书,而不是最后一个证书。

原因

Amazon 提供的客户端 VPN 配置文件中缺少证书颁发机构 (CA) 链信息,导致验证失败。

AWS Certificate Manager 生成的证书可能会出现此问题。

解决方案

打开客户端 VPN 配置文件(.ovpn 文件)并将 部分中的第三个证书替换为以下证书,然后保存文件。

-----BEGIN CERTIFICATE-----
MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx
EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs
ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD
VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy
ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy
dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p
OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2
8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K
Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe
hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk
6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw
DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q
AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI
bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB
ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z
qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn
0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN
sSi6
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

将更新的配置文件导入 OpenVPN Connect 客户端软件并连接到客户端 VPN 终端节点。

替换最后一个证书对我来说不起作用,但替换第三个证书确实有效,并最终解决了我的问题。


MLu*_*MLu 4

证书颁发机构根证书似乎未正确导入到您的客户端中。因此,它无法验证服务器证书(针对任何有效的根 CA 证书)并抱怨ssl3_get_server_certificate:certificate verify failed.

希望有帮助:)