何とは言わない天然水飲みたさ

nginx での安全な SSL 設定 (Android 4.4.2 対応)

  • Generate Mozilla Security Recommended Web Server Configuration Files へ行き、項目を適切に選択する。
    • サーバは(今回の私の場合は) Nginx
    • プロファイル(対象環境)は Modern
    • サーババージョンと OpenSSL バージョンはそのまま入力 (補完にないバージョンかもしれないが、とりあえずスルーして本当のバージョンを入れた)
    • HSTS は本当は有効化した方が良いのだろうが、私はサーバの設定にミスした場合など万が一のとき HTTP を使いたいかもしれないと考え、有効化していない
  • 入力欄の下の方の "link" をクリックすれば、入力を URL のクエリに含めてくれる(このような感じで)。 サーバの設定ファイルに、コメントとしてこのリンクを入れておくのが良いだろう。
  • "Oldest compatible clients" の欄を見ると、 modern profile では Android 5.0 以上への対応になっているのが読み取れる。 一方、 intermediate profile では Android 2.3 以上と出る。 TLSv1 の追加は少し調べれば必要とわかるから良いとして、 ssl_ciphers で追加が必要な最小限の設定は、 modern と Intermediate での差分の先頭から順に、どれが必要か二分探索でもして試していけば良い。 結果として ECDHE-RSA-AES128-SHA が必要、かつこれひとつの追加で十分であることがわかった。
  • ssl_protocolsssl_ciphers にこれらを反映してやれば変更は完了だ。

以下、ぼやき