以下はNginxにsslを導入するにあたり実施したことです。
環境
CentOS 6.8
nginx 1.10.2
RapidSSL
Nginxにsslを導入する流れ
- 秘密鍵の作成
- CSR(証明書署名要求)の作成・提出
- サーバ証明書と中間CA証明書の結合
- 秘密鍵・結合証明書のインストール
- 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.