之前两篇文章已经很好的介绍了Nginx配置SSL的一些情况,配置好的Nginx每次启动都要输两遍PEM pass phrase,很是不爽,尤其是在服务器重启后,Nginx压根就无法自动启动,必须手动启动并输入那麻烦的PEM pass phrase。如何避免Nginx启动出现Enter PEM pass phrase呢?
求助于万能的搜索引擎后,终于得到了解决的方法:
这种情况可能是在设置私钥key时将密码设置写入了key文件,导致Nginx/Apache等系列服务器在启动时要求Enter PEM pass phrase。我们需要做的是剥离这个密码,利用如下OpenSSL命令生成server.key.unsecure文件:
1 | openssl rsa -in server.key -out server.key.unsecure |
参考《Can I skip the PEM pass phrase question when I restart the webserver?》。
如果server.key.unsecure生成成功,我们就修改Nginx配置,比如像下面这样:
1 2 3 4 5 6 7 8 9 10 | # 这里是SSL的相关配置 server { listen 443; server_name www.example.com; # 你自己的域名 root /home/www; ssl on; ssl_certificate /etc/nginx/certs/server.crt; # 修改下面这一行指向我们生成的server.key.unsecure文件 ssl_certificate_key /etc/nginx/certs/server.key.unsecure; } |
然后使用/etc/init.d/nginx restart重启Nginx,是不是发现不再提示了,整个世界清净了吧:-)
有些童鞋可能苦于VPS的配置,精简掉了OpenSSL,从而没有openssl命令,那怎么办呢?你可以不在服务器上做这个操作,把原先的key文件下载到本地客户端,然后再openssl吧。什么?Windows怎么办?没关系,Windows下有OpenSSL for Windows,没有的童鞋赶紧下载下来使用吧。
《Nginx配置SSL安全证书避免启动输入Enter PEM pass phrase》有2个想法