0

Apache/mod_ssl Web サーバー (任意のバージョン) を構成して、中間発行 CA 証明書を自動的に検出/ダウンロードして、事前定義されたトラスト ルート CA に戻すことは可能ですか?

何百もの中間発行 CA が Web サーバーによって信頼される必要がある可能性があるため、何万ものエンドユーザーに TLS クライアント認証を提供できる必要があります。Axway/Tumbleweed Server Validatorにアクセスして、チェーン内の証明書の SCVP/OCSP/CRL 検証 (失効、OID ポリシーなど) を処理しますが、Axway Server Validator プラグインにクライアント証明書を渡すためには、 apache/mod_ssl は最初にクライアント証明書を認証/検証する必要があり、事前構成された apache CA 証明書データベース (PEM エンコードされた CA 証明書の連結リストを含むテキスト ファイル、または個々の証明書ファイルを含むディレクトリ) に対してチェーンを発行しています。

Apache が発行 CA チェーンを認識しているかどうかに関係なく、証明書を受け入れても問題ありませんが (SCVP がチェーンを検証するため)、それが可能であることを示す情報が見つかりません。

手動で (またはスクリプトを使用して) CA 証明書バンドル テキスト ファイルを作成できますが、これはすぐに非常に大きなファイルになり、定期的にスキャンして期限切れの CA 証明書を削除し、新しく発行された証明書を追加する必要があると確信しています。もちろん、このアプローチの問題は、新しい CA 証明書がバンドル ファイル/ディレクトリに追加されたときに Web サーバーを再起動する必要があることです。結果として得られるファイルのサイズは数メガバイトになる可能性があり、Web サーバーのパフォーマンスには適していません。 .

どんな助けやアイデアも大歓迎です。

4

1 に答える 1

1

この質問に興味があるかもしれません。ただし、何をしているのかを本当に理解していない限り、これはセキュリティの脆弱性をもたらす可能性が非常に高くなります。

これには 2 つの問題があります。

  1. SSLVerifyCLient optional_no_caすべてのクライアント証明書を通過させます。確実にわかる唯一のことは、クライアントが提示する証明書の公開鍵と一致する秘密鍵を持っていることです (証明書は現在有効な日付であり、TLS クライアント キーの使用法を持っている必要がある場合もあります。覚えて)。

  2. SSLCADNRequestFileの (または改行のみの) ファイルを指定すると、サーバーは CA の空のリストをクライアントに通知します。これは、TLS 1.0 までは文書化されていない動作 (ただし、一般的には機能します) であり、TLS 1.1 以降では許可されていますが、「未指定」の動作であることに注意してください。

最初のポイントは、Apache Httpd 内で証明書をまったく検証していないため、問題です。背後にあるアプリケーション (認証に依存) が認証レイヤー (信頼できる方法でクライアント証明書チェーンを転送する) の一部として何かを行う場合は問題ありません。Apache Httpd レイヤー自体の内部には何も問題ありません。SSL_CLIENT_S_DNたとえば、 or などの式を使用する Httpd 内の制限はFakeBasicAuth、単純に信頼できません

2 番目の点は、使いやすさの点で問題になる可能性があります。これは、多くのクライアント、特に、複数の証明書が利用可能で、サーバーによってアドバタイズされた CA に応じて通常は自動選択を実行するクライアントを混乱させる可能性があるためです。

より一般的に言えば、このようなさまざまな中間 CA を持つ「数万のエンド ユーザー」という状況は異常に思えます。従来の PKI モデルでは、構成する CA はトラスト アンカーです。CA は理由があってそこにあり、信頼します。実際には、必要な中間証明書を提示するのはクライアント次第です (または、それらを信頼して明示的にアドバタイズするのはサーバー次第です)。あなたがやろうとしていることは技術的には可能かもしれませんが、実装には細心の注意を払う必要があります。また、これがさまざまな行政基準や政策にどの程度適合するかも明らかではありません。

于 2014-03-18T15:41:11.667 に答える