以下はNginxにsslを導入するにあたり実施したことです。
環境
CentOS 6.8
nginx 1.10.2
RapidSSL
Nginxにsslを導入する流れ
- 秘密鍵の作成
- CSR(証明書署名要求)の作成・提出
- サーバ証明書と中間CA証明書の結合
- 秘密鍵・結合証明書のインストール
- SSLの評価計測
1.秘密鍵の作成
サーバにて下記のコマンドを実行し、秘密鍵を作成
openssl genrsa -out [秘密鍵ファイル名] 2048
2.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提出
3.サーバ証明書と中間CA証明書の結合
認証後、サーバ証明書と中間CA証明書を入手し、結合する
※中間CA証明書は基本的に認証局ホームページからダウンロードできる
cat [サーバ証明書] [中間CA証明書] > [結合ファイル]
※結合後、中身を確認して下記部分が改行されていること確認する
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
4.秘密鍵・結合証明書のインストール
結合ファイルと秘密鍵の権限・所有者の変更
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にて接続可能か確認してください。
5.SSLの評価計測
下記サイトで、SSLセキュリティの評価計測を行えます。
https://www.ssllabs.com/ssltest/