Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

▼主題

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

▼参考記事

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away