我正在用PKI基础设施设置服务器对服务器的OpenVPN,但无法使它工作。我怀疑这是证书链中的东西,但我很难解释怎么做。我有一个脱机根CA和一个证书层次结构。CA由一个名为EJBCA的产品进行外部管理。如图所示,该链看起来如下(更改名称):
RootCA -> OnlineSubCA -> SubCA1 -> VPNCA我与CA VPNCA签署了服务器和客户端证书,并在这些系统上拥有证书链。在调试OpenVPN时,我尝试使用"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 = certs@mycompany.com
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 = pki@mycompany.com
verify return:1我完全无法解释为什么会这样。来自客户端的类似错误也会导致OpenVPN失败:
VERIFY ERROR: depth=3, error=invalid CA certificate: /C=CA/O=My_Company/CN=OnlineSubCA我在Ubuntu12.04上运行OpenVPN 2.2.1和OpenSSL 1.0.1。时间和时间是同步的。
我不知道如何继续下去。任何想法/建议都将不胜感激。
发布于 2013-03-12 01:34:57
这是X509v3扩展的一个问题。现代证书的签名方式表明了该类型证书的已批准用途。可以通过将证书传输到openssl x509 -text或使用-in指定文件路径来显示这些内容。
在您的示例中,这些错误消息指示您指定的证书不是CA证书。(最大的提示是“不支持的证书用途”)使用上面的命令,显示证书的文本信息。有效的CA证书如下所示:
X509v3 Basic Constraints:
CA:TRUE非CA证书将显示以下内容:
X509v3 Basic Constraints:
CA:FALSE你可能把你的文件弄得乱七八糟,这是一件很容易的事情,当移动文件时。openssl x509会把放大镜照在实际证书的内容上。
https://serverfault.com/questions/486798
复制相似问题