我正在使用PKI基础结构设置服务器到服务器的OpenVPN,并且无法使其工作。 我怀疑这是证书链上的东西,但我不知道如何解释。 我有一个脱机的根CA和一个证书层次结构。 CA的产品由EJBCA产品进行外部pipe理。 这个链子看起来像这样(名字改变了):
RootCA -> OnlineSubCA -> SubCA1 -> VPNCA
我使用CA VPNCA签署了服务器和客户端证书,并在这些系统上拥有证书链。 在debuggingOpenVPN时,我尝试使用“openssl s_server”和“s_client”,导致我相信这是CA链。具体在服务器上:
openssl s_server -cert server.cert -key server.key -CAfile chained.pem -verify 5
并在客户端
openssl s_client -cert client.cert -key client.key -CAfile chained.pem -verify 5
服务器回吐,除其他外:
depth=3 C = CA, O = My Company, CN = OnlineSubCA verify error:num=24:invalid CA certificate verify return:1 depth=3 C = CA, O = My Company, CN = OnlineSubCA verify error:num=26:unsupported certificate purpose verify return:1 depth=4 C = CA, O = My Company, CN = RootCA, emailAddress = [email protected] verify return:1 depth=3 C = CA, O = My Company, CN = OnlineSubCA verify return:1 depth=2 CN = SubCA1, O = My Company, C = CA verify return:1 depth=1 CN = VPNCA verify return:1 depth=0 C = CA, ST = , L = , O = My Company, OU = , CN = client1.mycompany.com, emailAddress = [email protected] verify return:1
我完全无法解释如何或为什么是这样的情况。 OpenVPN也失败了,从客户端有一个类似的错误:
VERIFY ERROR: depth=3, error=invalid CA certificate: /C=CA/O=My_Company/CN=OnlineSubCA
我在Ubuntu 12.04上运行OpenVPN 2.2.1和OpenSSL 1.0.1。 时间在两个同步。
我对如何继续下去感到茫然。 任何想法/build议将不胜感激。
这是X509v3扩展的问题。 现代证书以这种方式签署,表明该类证书的批准使用。 这些可以通过将证书inputopenssl x509 -text或使用-in指定文件path来显示。
在你的情况下,这些错误信息表明你所指定的证书不是CA证书。 (最大提示是“不支持的证书目的”)使用上述命令,显示证书的文本信息。 有效的CA证书将如下所示:
X509v3 Basic Constraints: CA:TRUE
非CA证书将会显示:
X509v3 Basic Constraints: CA:FALSE
你可能已经弄乱了你的文件,移动文件的时候很容易。 openssl x509将放大镜上的实际证书的内容是什么。