web-dev-qa-db-ja.com

SSL証明書でプロトコルを指定できますか?

私はあなたがあなたのウェブサーバー経由でプロトコル/暗号を設定できることを知っています:

Nginx:

ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers         HIGH:!aNULL:!MD5;

Apache:

SSLProtocol all -SSLv2
SSLCipherSuite HIGH:!aNULL:!MD5

しかし、私の質問は、SSL証明書を作成して特定のプロトコルでのみ機能するようにすることはできますか?

また、特定の暗号でのみ機能するように証明書を作成できますか?

4
Arian Faurtosh

..特定のプロトコルでのみ機能するには? ..特定の暗号でのみ機能するには?

証明書はほとんどプロトコルに依存しません。

ただし、証明書と暗号の間にはわずかな相関があります。暗号の一部は認証アルゴリズムを指定し、可能なアルゴリズムは証明書の種類によって異なります。これは、* _ ECDSA_ *暗号でRSA証明書を使用できず、RSA鍵交換でECDSA証明書を使用できないことを意味します。証明書に特定の情報を必要とするECDH(ECDHEではない)暗号とDH(DHEではない)暗号もあります。ただし、対称暗号化(つまり、AES、RC4 ...)とHMACの選択は、証明書から独立しています。

つまり、証明書のタイプによって、使用できる暗号が制限されますが、証明書の一部の情報を使用して、可能な暗号またはプロトコルを直接制限することはできません。

7
Steffen Ullrich

SSL暗号が実際に使用される整合性の交換とは別に、証明書ベースの認証または検証を確認する場合に役立ちます。

証明書は、サーバー "X"が実際には "X"であり、 "x"ではないことを確認する場合にのみ有効です。

代わりに、暗号は、データ交換のための対称鍵を確立するメカニズムを提供するために使用されます。ご想像のとおり、このフェーズはサーバーの認証が確立されると発生します。

1
sandyp