サイトのSSLは定期的に確認していますか?

2020.08.18

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、コンサル部@大阪オフィスのTodaです。

Webサイトを公開するときに常時SSLで掲載することが標準となってきていますが、導入をして放置しておくと障害や脆弱性が発生していることがあります。定期的に確認するのが良いと考えておりますので、確認を促すため記事でご紹介します。

そもそもSSLとは?

SSL(Secure Sockets Layer)は暗号化通信プロトコルの1つで、 インターネット接続をしたブラウザとサーバ間の通信を暗号化して悪意のある第三者に盗聴、改ざんを防ぐ機能になります。

最近の動向

主要ブラウザの開発元が2020年前半にかけてTLS 1.0/1.1を無効化すると発表がありました。無効化が行われるとTLS 1.0/1.1を利用しているサイトで警告の表示や、表示できない問題が発生しますので事前に準備が必要です。
※新型コロナウイルス感染症の影響でスケジュールに変更がありました。

  • Microsoft Edge
    バージョン84からTLS 1.0/1.1の接続を無効化 (ソース)
  • Microsoft Internet Explorer
    8月14日に更新された内容を確認したところ2021年春に予定変更 (ソース)
  • Google Chrome
    バージョン84からTLS 1.0/1.1の接続を無効化 (ソース)
  • Mozilla Firefox
    Firefox 78からTLS 1.0/1.1の接続を無効化 (ソース)
  • Apple Safari
    現在導入されているSafari13でTLS 1.0/1.1の情報がございますが、警告のみ表示されるようです (ソース)

所有サイトのSSLを確認

Qualys SSL Labs の SSL Server Test は簡単にSSLのテスト・設定確認を行うことができます。

Qualys SSL Labs - SSL Server Test

Hostname欄に確認したいサイトのドメインを入力してSubmitを押します。
結果を公開したくない場合は「Do not show the results on the boards」をチェックしてください。

Qualys SSL Labsの画面

下記の場合はTLS1.0と1.1が有効なため注意が表示されます。
今回はTLS1.0と1.1を無効化する対応をしてみたいと思います。

Qualys SSL Labs結果画面(B判定)

無効化するにあたり注意する点

TLS1.0と1.1を無効化する場合、一部古いスマートフォン、ブラウザでアクセスができなくなります。サービスや利用者に公開しているサイトの場合は事前告知などでお知らせする必要があります。

※アクセスできなくなるスマートフォン、ブラウザ
Android 2.3.7
Android 4.0.4
Android 4.1.1
Android 4.2.2
Android 4.3
Internet Explorer 7 / Windows Vista
Internet Explorer 8-10 / Windows 7
Safari 5.1.9 / OS X10.6.8
Safari 6.0.4 / OS X 10.8.4

実際に無効化してみる

ELB (SSL設定) + Webサーバの場合

AWSコンソールにログインしてロードバランサーの設定画面に移動します。
対象のELBを選択した状態でリスナータブ内の変更対象を選択して編集を押します。

AWS ELB管理画面

変更画面にセキュリティポリシーを指定する項目がございます。
セキュリティポリシーを設定する事でSSL/TLSのバージョンと暗号スイートの設定が行われます。
セキュリティポリシーの選択による組み合わせは下記サイトをご確認ください。

Create an HTTPS listener for your Application Load Balancer

AWS ELB管理画面 - 設定

今回はTLS1.0と1.1を無効化する対応になりますのでセキュリティポリシーの選択は「 TLS-1-2-Ext-2018-06 」を選択します。選択後は更新ボタンを押して反映します。

設定が完了して再度Qualys SSL LabsでテストをしたところA判定を頂く事ができました!

Nginxの場合

サーバのコンソールにログインしてSSLの設定が記述されているファイルを操作します。
下記設定変更後にサーバを再起動することで適用されます。

listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  # (変更前) 
ssl_protocols TLSv1.2;                # (変更後) TLS1.0と1.1 を削除
server_name XXXXXXXXXXXXX;

まとめ

今回はSSLについて確認をしてみました。
2014年にGoogleが検索エンジンのSEOに影響をすると発表してから急速に導入が進みSEOを考慮しているサイトは大半導入済みとなっています。

ただし、導入後のメンテナンスができていないサイトもいくつかあるのでこの記事を参照頂いた方には1度確認して頂くといいな〜♪と考えています。