ℹ️本記事は古いコンテンツを変換して表示しています。
表示が崩れたり、リンクが正しくない可能性があります。ご了承ください。
ℹ️本記事は古いコンテンツを変換して表示しています。
表示が崩れたり、リンクが正しくない可能性があります。ご了承ください。
2016/01/04 23:01 : ApacheのSSL設定更新
ApacheのSSL(HTTPS)設定が相当にひどかったので見直してみた。
今回ひどかったのはSSLCipherSuiteの指定なので、とりあえずopensslに聞いてみる。元の指定はとても見せられない、それはそれはひどいものなので、適当にサンプルを。
/usr/local/bin/openssl ciphers -v 'HIGH:MEDIUM:-EXPORT' (...snip...) RC4-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5 (...snip...)
RC4とかMD5とかひどい。(実際入ってた)RC2/RC4/MD5あたりを削って、TLS1以降を基準にしたらまともなリストになったのでそのまま採用。
/usr/local/bin/openssl ciphers -tls1_2 -v 'HIGH:MEDIUM:-RC2:-RC4:-MD5:-SHA'
最初は-DES
もついてたけど、-SHA
の巻き添えで消えていた模様。
このあとPFS(Perfect Forward Secrecy)のため、HIGH:MEDIUM指定をさらに厳しくしてECDHE:DHE:ECDH:DH:-RC2:-RC4:-MD5:-SHA
。この辺の"鍵交換"については自堕落な技術者の日記さんを参考にさせていただきました。ここが重要なところ。
"E"はephemeral(一時的)の"E"です。
さて、これをそのままApacheに連れて行く。
SNIを使ってVirtualHostしてたりする場合は各VirtualHostに書くか、VirtualHostの外側で定義すればいい。
SSLStrictSNIVHostCheck on SSLHonorCipherOrder On SSLCompression off SSLCipherSuite ECDHE:DHE:ECDH:DH:-RC2:-RC4:-MD5:-SHA SSLProtocol TLSv1.2 NameVirtualHost *:443 <VirtualHost *:443> (...snip...) </VirtualHost>
チェックはQualys SSL Server Testで実行。まだいろいろあるようだけど、まぁとりあえず今はよし。
ちなみに、試したい暗号がわかっているならopenssl s_client
でも試せる。
[sugar:~] 2510% /usr/local/bin/openssl s_client -connect linkage.white-void.net:443 -servername linkage.white-void.net -tls1_2 -cipher RC4-MD5 (...snip...) 34381119560:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:s3_pkt.c:1472:SSL alert number 40 34381119560:error:1409E0E5:SSL routines:ssl3_write_bytes:ssl handshake failure:s3_pkt.c:656:
SSL alert number 40
で却下されたのでOK。正常側もチェックしたいならECDHE-RSA-AES256-GCM-SHA384
でも指定してみればいいんじゃないかな。