vagrant-ansible-originで作成した環境に、SSL Server Testを実施。Overall Rating(総合評価)が「B」だった。
課題が記載されているので対応して「A」にしたい。

RC4暗号を使わない

This server accepts RC4 cipher, but only with older protocols. Grade capped to B. MORE INFO »
このサーバーはRC4暗号を受け入れますが、古いプロトコルのみです。Bを上限とするグレード。

TLS_ECDHE_RSA_WITH_RC4_128_SHA (0xc011) ECDH secp256r1 (eq. 3072 bits RSA) FS INSECURE 128
TLS_RSA_WITH_RC4_128_SHA (0x5) INSECURE 128
TLS_RSA_WITH_RC4_128_MD5 (0x4) INSECURE 128

設定確認

/etc/httpd/conf.d/ssl.confで、!RC4(=RC4除く)と設定しているが効かない。

#SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA:!3DES:!RC4:!DH

ちなみに、Nginx(/etc/nginx/conf.d/ssl.confおよび各Virtual)では効いている。

#    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_ciphers HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA:!3DES:!RC4:!DH;

設定変更

各VirtualにSSLCipherSuiteがなかったので、入れてみたが効かず。
VirtualHostの中にあると効かないと、どこかに書いてあったので、上に追加してみたら効いた。

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA:!3DES:!RC4:!DH
<VirtualHost _default_:443>

TLS 1.1を使わない

This server supports TLS 1.1. Grade will be capped to B from January 2020. MORE INFO »
このサーバーはTLS 1.1をサポートしています。グレードは2020年1月からBに制限されます。

設定変更

TLS 1.1を切って、TLS 1.2のみにする。
TLS 1.3にも対応したかったが、CentOS7標準のApache 2.4.6は未対応との事。2.4.37から対応。
また、OpenSSLも1.1.1以降が必須。現在は1.0.2k。
ミドルウェアがバージョンアップされたら対応されるように、マイナス表記に変更しました。

/etc/httpd/conf.d/ssl.conf

#SSLProtocol +TLSv1.1 +TLSv1.2
#SSLProxyProtocol +TLSv1.1 +TLSv1.2
SSLProtocol      all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLProxyProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

ちなみに、Nginx(/etc/nginx/conf.d/ssl.confおよび各Virtual)も同様にTLS 1.1を切りました。
こちらもTLS 1.3にも対応したかったが、Nginx 1.16.1は対応しているもののOpenSSLが未対応の為、設定のみ追加(エラーにはならない)。
こちらはマイナス表記がなさそうなので、諦めて直接指定に。

#    ssl_protocols TLSv1.1 TLSv1.2;
    ssl_protocols TLSv1.2 TLSv1.3;

最終結果

Overall Rating(総合評価)が「A+」になりました。

Git commit & push

vagrant-ansible-centos7 -> Apacge/NginxのSSL設定変更
vagrant-ansible-centos6 -> Apacge/NginxのSSL設定変更

おまけ(HSTS)

HTTP Strict Transport Security (HSTS) with long duration deployed on this server. MORE INFO »
このサーバーに長期間展開されたHTTP Strict Transport Security(HSTS)。

常時SSL化の為、下記を追加しているのが効いている。

Apache

    Header set Strict-Transport-Security "max-age=31536000"

Nginx

    add_header Strict-Transport-Security "max-age=31536000";

下記申請すると、対応ブラウザからアクセスすると勝手にhttp://をhttps://に書き換えてくれるのでよりセキュアになるらしい。

HSTプリロードリストへの登録申請: https://hstspreload.org/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です