私はUbuntu 14.04(「Trusty」)サーバーでApache 2.4.7を実行しています。 Ubuntu 固有のバンドル識別子は「2.4.7-1ubuntu4.1」です。
DH / ECDHパラメータが明示的に指定されていない場合(下記参照)、Apacheは次の標準DHパラメータを使用します。RFC 3526離散対数DHの場合。パラメータの長さはRSA公開鍵の長さと一致します(たとえば、2048ビットRSAキーは2048ビットDHパラメータを取得し、4096ビットRSAキーは4096ビットDHパラメータを取得するなど)。
ECDH は、RSA または ECDSA 公開鍵のサイズに関係なく、NIST P-256 キューブのみを使用しているようです。
これApacheドキュメントサイトのSSL証明書に加えて、SSLCertificateFile
サイト構成ファイルのディレクティブによって参照されるファイルにDHまたはECDHパラメーターを手動で指定することもできます。
文書内の関連項目の正確なテキストは次のとおりです。
openssl dhparam
他のオプションの要素は、それぞれによって生成された一時キーのDHパラメータおよび/またはEC曲線名openssl ecparam
(バージョン2.4.7以降でサポートされています)と最後に、最終エンティティ証明書の秘密キーです。
ただし、Apacheはこのように宣言された最初のDHパラメータと最初のECDHパラメータのみを読み取るようです。このファイルで宣言された他のパラメータセットは無視されます。
クライアントがDH / ECDHに使用するセットを選択できるように、複数のパラメータセットを宣言できますか?
具体的には、ECDHに対して許容されるいくつかの楕円曲線を宣言したいと思います。
secp256r1
たとえば、互換性の理由から、これらの曲線をサポートするクライアントにsecp384r1
提供したいと思います。secp521r1
また、古いクライアントには1024ビットDHパラメータを提供するのが最善ですが、少数の長いサポートを持つ最新のクライアントには2048ビット以上を提供するのが最善です。
DHおよびECDHパラメータセットを複数宣言することは可能ですか?何か抜けたものはありますか?それとも、それぞれDHパラメータとECDHパラメータセットを1つだけ明示的に宣言できますか?
答え1
EC以外のDHがこれを行う方法はありません。
ECDHの場合:
SSLOpenSSLConfCmd ECDHParameters prime256v1
SSLOpenSSLConfCmd Curves brainpoolP512r1:secp521r1:brainpoolP384r1:secp384r1:brainpoolP256r1:prime256v1
答え2
- DHパラメータ - 使用する予定の場合にのみ適用されます
DHE_RSA_<insert cipher here>
。これらのパスワードを使用する予定がない場合、これは意味がありません。 ECパラメータ - あなたは必須Apache 2.4.8以降にアップグレードそしてOpenSSL 1.0.2以降が必要です。 Ubuntu 14.04.xでは、どちらのバージョンも使用できません。以下を行う必要があります。
apt-add-repository ppa:ondrej/apache2 #corrected apt-get update apt-get upgrade openssl apt-get upgrade apache2
最新のApache2およびOpenSSLライブラリを使用したら、コンテナに次の行を追加してECパスワードを更新できます<VirtualHost *:443>
。
SSLOpenSSLConfCmd Curves secp384r1
複数の曲線が必要な場合:
SSLOpenSSLConfCmd Curves secp384r1:secp521r1
その後、サービスを開始します。
service apache2 restart
答え3
Apache 2.4.7およびOpenSSL 0.9.8a以降を使用している場合は、証明書ファイルの末尾にdhparamファイルを追加してDHパラメータを変更できます。
ECパラメータがわかりません...