Я настраиваю межсерверный OpenVPN с инфраструктурой PKI и не могу заставить его работать. Я подозреваю, что это что-то в цепочке сертификатов, но я затрудняюсь объяснить, как. У меня есть автономный корневой центр сертификации и иерархия сертификатов. Внешне 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
Я использую OpenVPN 2.2.1 и OpenSSL 1.0.1 в Ubuntu 12.04. Время синхронизировано на обоих.
Я в недоумении о том, как действовать дальше. Любые идеи / предложения будут с благодарностью.