为什么我的证书不匹配?

为什么我的证书不匹配?

我正在使用没有 interfaz 的 OpenVPN 配置 VPN,问题是当我尝试连接时,它显示:

TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)

但我知道这不是问题,因为我甚至在禁用防火墙的情况下也尝试过......所以,为了弄清楚,我运行了:

openssl verify -purpose any -CAfile ca.crt client1.crt

在服务器和客户端中,奇怪的是,在服务器上一切正常,但在客户端却显示:

error 20 at 0 depth lookup:unable to get local issuer certificate

我尝试过许多证书,并以不同的方式复制它们...我确信 crt 是相同的,并且我已经尝试过完整的路线等等......

有人可以帮我一下吗?

服务器是Ubuntu 12.04,客户端是CentOS 6

如果需要任何其他信息,请告诉我!

答案1

您到底想实现什么?服务器是否应该通过其证书(客户端身份验证)来识别客户端,还是反过来(或两者兼而有之)?

听起来两台机器上的 ca.crt 不一样。或者中间的缺少证书(即您的 CA 证书由 Ubuntu 知道/信任但 CentOS 不知道/信任的另一个 CA 签名)。

您确定证书 (client1.crt) 已使用 CA 证书 (ca.crt) 签名,并且两台计算机上的两个文件 (即 client1.crt 和 ca.crt) 都相同吗?执行时

openssl x509 -in client1.crt -noout -text |grep Issuer

你应该得到相同的输出(在两台机器上),就像你这样做时一样

openssl x509 -in ca.crt -noout -text |grep Subject |head -n1

(检查“CN”属性)。

您也可以尝试

openssl verify -CAfile ca.crt client1.crt

在 CentOS 上(跳过该-pupose any部分)。

你检查过日志吗?里面没有提示吗?

如果问题仍然存在,并且您可以/想要分享信息,则完整输出

openssl x509 -in ca.crt -noout -text
openssl x509 -in client1.crt -noout -text

可能会有用。


编辑: 您是否检查过 OpenVPN 网站上的此页面? TLS 错误:TLS 密钥协商在 60 秒内失败(请检查您的网络连接)

相关内容