ある記事で、OpenSSL 1.0.2 ではクライアントの構成に応じて証明書を選択できると読みました。たとえば、Windows XP 初期 SP2 は ECC 証明書をサポートしていません。このサーバーでは 1 つの証明書が返され、最新の OS では別の証明書が返されます。
このテクノロジーの説明が見つかりません。これをサポートする Web サーバーはありますか?
答え1
リンクされた記事のこの部分について言及しています(ここでは英語に翻訳されています):
OpenSSL バージョン 1.0.2 では、クライアントのパラメータに基づいてサーバー証明書を選択できます。残念ながら、Nginx では、単一の に対して複数の証明書を使用することはできません
server
。
これは、次のOpenSSL機能を指しているようです。1.0.2で追加:
*) 証明書コールバックを追加します。設定されている場合、クライアントまたはサーバーで証明書が要求されるたびにこれが呼び出されます。アプリケーションは、任意の基準に基づいて、どの証明書チェーンを提示するかを決定できます。たとえば、サポートされている署名アルゴリズムなどです。s_server に非常に簡単な例を追加します。これにより、既存のクライアント証明書コールバックの多くの問題と制限が修正されます。たとえば、既存の証明書をクリアして、チェーン全体を指定できるようになりました。[Steve Henson]
今のところ、nginx がこの機能をサポートしているという証拠も、非公式のパッチも見つかりません。また、ざっと見た限りでは、Apache や他の Web サーバーに関連するものも見つかりませんでした。最終的には追加されると確信していますが、本当にすぐに必要な場合は、nginx メーリング リストで質問することをお勧めします。