2017-06-15 11 views
0

RSAと "BCA" ECCを使用する2つのCA(ACA)があり、どちらもサーバーのTLS証明書を発行しているとします。 ACAはほとんどのクライアントから信頼されていますが、BCAはほんのわずかしか信頼されていません。クライアントに優先SSL/TLS証明書を選択させる

ACAは信頼されていますが、RSAには常に時間がかかります。だから、私たちは、BCAが署名した証明書をBCAを信頼するすべてのクライアントが優先させ、他はACAのものに戻すことを希望します。

私が知っているように、ドメイン用に複数の証明書を設定することは可能です。少なくともnginxでは、クライアントは常にnginxのsnginx.conf設定ファイルに2番目の証明書エントリとして入れた証明書を使用します。

可能な場合はサーバーがEC証明書を処理する可能性がありますが、クライアントが証明書を信頼しない場合はRSA証明書を処理する可能性はありますか?

+0

クライアントは、 'signature_algorithms'拡張子を使って、RSA、DSA、ECDSAなどが必要であることを示すことができます。[RFC 5246、セクション7.4.1.4。 Hello Extensions](https://tools.ietf.org/html/rfc5246#section-7.4.1.4)を参照してください。あなたが記述した場合、nginxが別の証明書を提供するとき、それはおそらく 'signature_algorithms'拡張のためです。しかし、署名アルゴリズムと発行者との間には関連性や相関性はありません。これを克服するには、通常、クライアントに不足しているCAをトラストストアにインストールするよう依頼します。 – jww

+0

これは、両方の提供されたもののどちらを使用するかを選択するクライアント側の問題です。サーバー上で複数の証明書ではなく1つの証明書を使用することで、証明書を残しておくことができます。これは、ブラウザーが実際に最初に信頼ストアにあるCAを検索することがないためです。 –

答えて

1

クライアントは、CAが信頼する情報を提供しません。つまり、サーバーは、クライアントの信頼設定に基づいて、どの証明書を提供するかを決定できません。サーバがこれらの証明書のどれを使用するかを決定する唯一の情報は、クライアントが提供する暗号を見ることである。すなわち、クライアントがECDSA暗号をサポートしていればECC証明書を使用する。

関連する問題