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