LoginSignup
18
28

More than 5 years have passed since last update.

自己証明書でnginxにSSL(TLS)対応する

Last updated at Posted at 2017-03-05

自己証明書を使ってnginxにSSL対応をします。
とても簡単です。

本記事ではSSLと記述しますが、本来であればTLSというのが正しいです。
SSLプロトコルは脆弱性の影響で廃止され、多くのブラウザではすでに支援が終わっています。
今はSSL3.0を基盤+脆弱性に対応したTLSが基本ですが、SSLという名前が既に固着していて混乱を避けるためにあえてSSL使うところがおおいです。

必要なパッケージ確認&インストール

自己証明書発行のためには以下のパッケージが必要です。
openssl、openssl-devel、openssl-libs
インストールされているか確認してみて、なかったらインストールしましょう。

確認

# rpm -qa | grep openssl
openssl-devel-1.0.1e-60.el7_3.1.x86_64
openssl-libs-1.0.1e-60.el7_3.1.x86_64
openssl-1.0.1e-60.el7_3.1.x86_64

インストール

# yum install openssl openssl-devel openssl-libs

自己証明書を発行

# mkdir /etc/nginx/ssl
# openssl req -new -x509 -sha256 -newkey rsa:2048 -days 365 -nodes -out /etc/nginx/ssl/nginx.pem -keyout /etc/nginx/ssl/nginx.key

いろいろ聞かれますが、練習用でやっているのでそのままEnterで大丈夫です。
2つのファイルが作成されますが、それぞれ
nginx.key:暗号化鍵
nginx.pem:自己署名証明書
になります。

重要な情報なので権限設定を厳重にしましょう。

# chown root:root -R /etc/nginx/ssl/
# chmod 600 /etc/nginx/ssl/*
# chmod 700 /etc/nginx/ssl

nginx.conf編集

# vi /etc/nginx/nginx.conf


server {
    listen 80;
    # httpsにリダイレクト処理
    return 301 https://$host$request_uri;
}


server {
    listen 443 ssl;
    server_name _;

    # 自己署名証明書
    ssl_certificate /etc/nginx/ssl/nginx.pem;
    # 暗号化鍵
    ssl_certificate_key /etc/nginx/ssl/nginx.key;
    # 他の要素は80ポートど同じく設定してください。
}
18
28
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
18
28