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を実行しています。時間は両方で同期しています。
私はこれ以上先に進む方法について途方に暮れています。どんなアイデア/提案も大歓迎です。