我正在使用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
我在Ubuntu 12.04上运行OpenVPN 2.2.1和OpenSSL 1.0.1。两者的时间同步。
我对如何进行进一步操作一无所知。任何想法/建议将不胜感激。