LoginSignup
8
6

More than 5 years have passed since last update.

nginxの設定で暗号化通信をTLS1.2のみ許可する

Posted at

▼主題

タイトルの通り、安全性を高めるために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となる。

▼参考記事

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6