Apache & Nginx Forward Secrecy & Diffie Hellman Ephemeral Parameters

Diffie Hellman Ephemeral Parameters

Apache2.4.8以降またはOpenSSL1.0.2以降でサーバ運用している場合、従来のDiffie HellmannによるForward Secrecyが無効になっています。
Diffie HellmannによるForward Secrecyとは、サーバとクライアント間でSSL接続の際、両者間で数学的アルゴリズムに基づき作成されたキーで情報を暗号化、両者間でのキーのやり取りが無いことに加えセッションが切れるとキーは廃棄されるため、サーバのプライベートキーが盗まれた場合でも暗号化された情報が解読されない仕組みです。

opensslによりDiffie Hellmannパラメータを作成

openssl dhparam -out /etc/ssl/certsdhparam.pem 4096

Apache mod_sslの設定ファイルに以下追加

$ sudo pico /etc/apache2/mods-enabled/ssl.conf
SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"

Apache設定チェック

$ sudo apache2ctl -t
Syntax OK

Apache再起動

$ sudo service apache2 restart

<参考サイト>

https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html

:bangbang: Let's Encrypt による SSL を導入する場合、 Certbot により自動的に上記 .pem ファイルは作成されサーバ設定ファイルにも反映されます。