SSL証明書を取得する際に秘密鍵を生成でパスワード(パスフレーズ)を設定した場合、Nginxをスタートもしくはリスタートしようとした場合に下記のようにエラーメッセージが表示され起動できない。
$ sudo systemctl restart nginx
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
「t」オプションでチェックをしてみると、何やらパスフレーズを入力せよと表示されます。
$ sudo nginx -t
Enter PEM pass phrase:
ここで秘密鍵を生成した際に設定したパスフレーズを入力するとNginxが起動できますが、毎回起動の度に入力は出来ないのでパスフレーズを自動的に認証する設定を行います。
秘密鍵のパスフレーズを転記したファイルを作成しNginxの設定に追記することで解決できます。
1.パスフレーズを転記したファイルを作成
$ sudo vi /etc/nginx/ssl/yourdomain.com.private.passphrase
ファイルの中身はパスフレーズのみで作成
2.Nginxの設定ファイルを修正
server {
listen 443 ssl;
ssl on;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/yourdomain.com.certificate.cert;
ssl_certificate_key /etc/nginx/ssl/yourdomain.com.key.pem
ssl_password_file /etc/nginx/ssl/yourdomain.com.key.passphrase; #今回作成したファイル
}
3.Nginxをリスタート
$ sudo systemctl restart nginx