为nginx配置https并自签名证书一、把证书准备好。 步骤与使用OpenSSL自签发服务器https证书所述大同小异。在这里再重复一次。 1、制作CA证书: ca.key CA私钥:
制作解密后的CA私钥(一般无此必要):
ca.crt CA根证书(公钥):
2、制作生成网站的证书并用CA签名认证 在这里,假设网站域名为blog. 生成blog.证书私钥:
制作解密后的blog.证书私钥:
生成签名请求:
在common name中填入网站域名,如blog.即可生成改站点的证书,同时也可以使用泛域名如*.来生成所有二级域名可用的网站证书。 用CA进行签名:
其中,policy参数允许签名的CA和网站证书可以有不同的国家、地名等信息,days参数则是签名时限。 如果在执行签名命令时,出现“I am unable to access the ../../CA/newcerts directory” 修改/etc/pki/tls/openssl.cnf中“dir = ./CA” 然后:
再重新执行签名命令。 最后,把ca.crt的内容粘贴到blog..crt后面。这个比较重要!因为不这样做,可能会有某些浏览器不支持。 好了,现在https需要到的网站私钥blog..key和网站证书blog..crt都准备完毕。接下来开始配置服务端。 二、配置nginx 新开一个虚拟主机,并在server{}段中设置:
其中的路径是刚刚生成的网站证书的路径。 然后使用一下命令检测配置和重新加载nginx:
三、优化nginx配置 1、优化nginx性能 在http{}中加入:
据官方文档所述,cache中的1m可以存放4000个session。 在配置https的虚拟主机server{}中加入:
2、有时候,会发现,在phpMyAdmin等程序登入后会错误地跳转http的问题。解决方法是定位至“location ~ .*\.(php|php5)?${}”在include fcgi.conf;或者在fastcgi_param配置后面加上:
在这里是nginx官方的关于https的文档,可以作为参考。 |
|