Ich richte Server-zu-Server-OpenVPN mit einer PKI-Infrastruktur ein und kann es nicht zum Laufen bringen. Ich vermute, dass es etwas in der Zertifikatskette ist, aber ich kann nicht erklären, wie. Ich habe eine Offline-Stammzertifizierungsstelle und eine Zertifikatshierarchie. Die Zertifizierungsstellen werden extern von einem Produkt namens EJBCA verwaltet. Bildlich sieht die Kette so aus (mit geänderten Namen):
RootCA -> OnlineSubCA -> SubCA1 -> VPNCA
Ich habe ein Server- und Client-Zertifikat mit der CA VPNCA signiert und habe die Zertifikatkette auf diesen Systemen. Beim Debuggen von OpenVPN habe ich versucht, "openssl s_server" und s_client "zu verwenden, was mich zu der Annahme veranlasste, dass es sich um die CA-Kette handelt. Speziell auf dem Server:
openssl s_server -cert server.cert -key server.key -CAfile chained.pem -verify 5
und auf dem Client
openssl s_client -cert client.cert -key client.key -CAfile chained.pem -verify 5
Der Server spuckt unter anderem zurück:
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
und ich bin völlig ratlos zu erklären, wie oder warum dies der Fall ist. OpenVPN schlägt auch mit einem ähnlichen Fehler vom Client fehl:
VERIFY ERROR: depth=3, error=invalid CA certificate: /C=CA/O=My_Company/CN=OnlineSubCA
Ich verwende OpenVPN 2.2.1 und OpenSSL 1.0.1 unter Ubuntu 12.04. Die Zeit ist auf beiden synchron.
Ich weiß nicht, wie ich weiter vorgehen soll. Irgendwelche Ideen / Vorschläge wäre sehr dankbar.