はじめに
最近某社で扱ってるサービスのインフラ整備を気が向いたので久しぶりにしようと思ってCTO様にお話を頂いてやってみた時の話です。
環境
- Azure
- Ubuntu 16.04 LTS
- Nginx 1.10.1
前置き
Nginxの設定上で ssl_certificate_key に設定するPEMファイルに鍵が掛かっているのを知らなくて以下コマンドは実行してもOKはでるが SSL Server Test でBが返ってくる。
$ sudo /etc/init.d/nginx reload
Nginx test
Nginxには設定ファイルがちゃんと動くものになっているかテストしてくれるコマンドが用意されているので実行してみます。
$ sudo nginx -t
Enter PEM pass phrase:
お?鍵がかかっている。ということでちょっとCTO様に確認。パスワードを教えてもらった。
$ sudo nginx -t
Enter PEM pass phrase:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
通った。しかしこれだけではさっきと一切SSLのランクは変わらない。
解決策
いつも通りググったらすぐにでてきた。
ちなみに公式さん→ http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_password_file
とりあえず server
の中に ssl_password_file
を追加したらいいらしい。
password_dayo
ぶっちゃけこんな感じのパスワードはあり得ないしファイル名もあり得ないけどこんな感じだったとしよう。
以下Nginx設定
server {
listen 443 ssl;
ssl on;
server_name hoge.example.com;
ssl_certificate /path/to/certificate.cert;
ssl_password_file /path/to/password_file; # PEMファイルより前に定義するべき(?)
ssl_certificate_key /path/to/certificate_key.pem # こいつに鍵がかかっている
# 以下略
}
あとはいろんなことして頑張って A+ 目指しましょうね
最後に
定期的に http://nginx.org/en/CHANGES 見ておくべきですね。
というかもっとNginxについて知見溜めたいです。