我正在使用没有 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 秒内失败(请检查您的网络连接)