Nginxにsslを導入する。

以下はNginxにsslを導入するにあたり実施したことです。

環境

CentOS 6.8
nginx 1.10.2
RapidSSL

Nginxにsslを導入する流れ

  1. 秘密鍵の作成
  2. CSR(証明書署名要求)の作成・提出
  3. サーバ証明書と中間CA証明書の結合
  4. 秘密鍵・結合証明書のインストール
  5. SSLの評価計測

秘密鍵の作成

サーバにて下記のコマンドを実行し、秘密鍵を作成

openssl genrsa -out [秘密鍵ファイル名] 2048

CSR(証明書署名要求)の作成・提出

サーバにて下記のコマンドを実行し、CSRを作成

openssl req -new -key [秘密鍵ファイル名] -out [CSRファイル名]

いろいろ聞いてくるので、入力

Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Osaka
Locality Name (eg, city) [Default City]:Naniwa-ku Osaka-shi
Organization Name (eg, company) [Default Company Ltd]:会社名
Organizational Unit Name (eg, section) []:会社部門名、サービス名等
Common Name (eg, your name or your server's hostname) []:サーバホスト名
Email Address []:未入力
A challenge password []:未入力
An optional company name []:未入力

SSLサーバー証明書販売代理店にCSR提出

サーバ証明書と中間CA証明書の結合

認証後、サーバ証明書と中間CA証明書を入手し、結合する

※中間CA証明書は基本的に認証局ホームページからダウンロードできる

cat [サーバ証明書] [中間CA証明書] > [結合ファイル]

※結合後、中身を確認して下記部分が改行されていること確認する

-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----

秘密鍵・結合証明書のインストール

結合ファイルと秘密鍵の権限・所有者の変更

sudo chown root:root [結合ファイル]
sudo chmod 400 [結合ファイル]
sudo chown root:root [秘密鍵]
sudo chmod 400 [秘密鍵]

Nginxの設定ファイルの修正

server {
listen 443 ssl;
ssl_certificate [結合ファイルのフルパス];
ssl_certificate_key [秘密鍵のフルパス];
...
}

Nginxのリスタート

sudo /etc/init.d/nginx restart

一応iptablesを確認して443が有効になってるかも確認。

この時点でブラウザ等からhttpsにて接続可能か確認してください。

SSLの評価計測

下記サイトで、SSLセキュリティの評価計測を行えます。

A comprehensive free SSL test for your public web servers.

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

フォローする