opensslの無効なCA証明書


8

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を実行しています。時間は両方で同期しています。

私はこれ以上先に進む方法について途方に暮れています。どんなアイデア/提案も大歓迎です。

回答:


16

これはX509v3拡張機能の問題です。最新の証明書は、そのタイプの証明書の承認された使用法を示す方法で署名されています。これらは、証明書をopenssl x509 -textにパイプするか、ファイルパスをで指定することで表示できます-in

あなたの場合、これらのエラーメッセージは、指定している証明書がCA証明書ではないことを示しています。(最大のヒントは「サポートされていない証明書の目的」です)上記のコマンドを使用して、証明書のテキスト情報を表示します。有効なCA証明書は次のようになります。

        X509v3 Basic Constraints:
            CA:TRUE

非CA証明書は代わりにこれを表示します:

        X509v3 Basic Constraints:
            CA:FALSE

ファイルをごちゃごちゃにした可能性がありますが、ファイルを移動する場合はかなり簡単です。openssl x509実際の証明書の内容を拡大鏡で照らします。


それは確かに問題です。2番目の証明書を検査すると、「CA:FALSE」が表示されます。それは間違いであるEJBCAでそのようにセットアップされているようですが、私はそれを再作成する必要があるかもしれません。アンドリュー、ありがとう!
Michael Hart

それが助けてうれしい。:)
アンドリューB

7
さらに、基本的な制約として「クリティカル」があるが、証明書が正当な機関のいずれかによって署名/信頼されていない場合、26 /サポートされていない証明書の目的を取得します(この自己署名ルートCAの使用に
遭遇
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.