▼主題
タイトルの通り、安全性を高めるためにTLS 1.2による通信のみを許可したい。
▼用語
●TLS
- 概要
Transport Layer Securityの略。
TCP/IPを使った様々なサーバとクライアントの通信で、セキュアなチャンネルを利用できるようにする仕組み。
- SSLとの違い
以前はSSLと呼ばれていたが、Netscape社が開発したSSLプロトコルをIETFへ移管するための標準化に伴って名称が変更された。
TLSはSSLの次世代規格であり、TLSはSSL 3.0をベースとしている。
▼nginxへの設定
●nginxの設定の変更
nginxの設定ファイルを修正する。
ファイル名やエディタはそれぞれの環境次第なので適宜読み替えてほしい。
$ sudo vi /etc/nginx/conf.d/virtual.conf
変更自体は簡単で、設定ファイル内の下記の部分で有効化したいバージョンを書くだけでOK。
# /etc/nginx/conf.d/virtual.conf
...
ssl_protocols TLSv1.1 TLSv1.2
...
●nginxへ設定の反映
nginxを再起動すれば読み込まれる。
$ sudo nginx -s reload
▼確認方法
OpenSSLをSSL/TLSクライアントとして利用して確認する。
TLS 1.2でセッションが確立でき、TLS 1.1でセッションが確立できなければ成功。
確認コマンドは下記
$ openssl s_client -connect your.domain:443 -tls1_2
$ openssl s_client -connect your.domain:443 -no_tls1_2
色々と表示されるが、セッションが確立できれば
# SSL handshake has read 3650 bytes and written 326 bytes
のように読み取りと書き込みが行われる。
セッションが確立できなければ読み取りも書き込みも0 bytesとなる。