Sto configurando OpenVPN da server a server con un'infrastruttura PKI e non riesco a farlo funzionare. Sospetto che sia qualcosa nella catena dei certificati, ma non riesco a spiegare come. Ho una CA principale offline e una gerarchia di certificati. Le CA sono gestite esternamente da un prodotto chiamato EJBCA. Pittoricamente la catena appare così (con i nomi cambiati):
RootCA -> OnlineSubCA -> SubCA1 -> VPNCA
Ho firmato un certificato server e client con CA VPNCA e ho la catena di certificati su tali sistemi. Durante il debug di OpenVPN ho provato a utilizzare "openssl s_server" e s_client ", facendomi credere che si tratti della catena della CA. In particolare sul server:
openssl s_server -cert server.cert -key server.key -CAfile chained.pem -verify 5
e sul client
openssl s_client -cert client.cert -key client.key -CAfile chained.pem -verify 5
il server sputa indietro, tra le altre cose:
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
e sono in perdita completa per spiegare come o perché questo è il caso. OpenVPN fallisce anche con un errore simile, dal client:
VERIFY ERROR: depth=3, error=invalid CA certificate: /C=CA/O=My_Company/CN=OnlineSubCA
Sto eseguendo OpenVPN 2.2.1 e OpenSSL 1.0.1 su Ubuntu 12.04. Il tempo è sincronizzato su entrambi.
Sono in perdita su come procedere oltre. Eventuali idee / suggerimenti sarebbero molto apprezzati.