Nginx配置https-免费自签名CA证书


一、为nginx配置https并自签名证书
1、制作CA证书
ca.key CA私钥:
openssl genrsa -des3 -out ca.key 2048
制作解密后的CA私钥(一般无此必要):
openssl rsa -in ca.key -out ca_decrypted.key
ca.crt CA根证书(公钥):
openssl req -new -x509 -days 7305 -key ca.key -out ca.crt
2、制作生成网站的证书并用CA签名认证
在这里,假设网站域名为blog.creke.net
生成blog.creke.net证书私钥:
openssl genrsa -des3 -out blog.creke.net.pem 2048
制作解密后的blog.creke.net证书私钥(注意:nginx配置中,nginx支持的是解密后的格式):
openssl rsa -in blog.creke.net.pem -out blog.creke.net.key
生成签名请求:
openssl req -new -key blog.creke.net.pem -out blog.creke.net.csr
common name中填入网站域名,如blog.creke.net即可生成该站点的证书,同时*也可以使用泛域名如.creke.net来生成所有二级域名可用的网站证书
用CA进行签名:
openssl ca -policy policy_anything -days 1460 -cert ca.crt -keyfile ca.key -in blog.creke.net.csr -out blog.creke.net.crt
其中,policy参数允许签名的CA和网站证书可以有不同的国家、地名等信息,days参数则是签名时限。
如果在执行签名命令时,出现
“I am unable to access the ../../CA/newcerts directory”
修改/etc/pki/tls/openssl.cnf中“dir = ./CA”
然后:
mkdir -p CA/newcerts
touch CA/index.txt
touch CA/serial
echo “01” > CA/serial
再重新执行签名命令。
最后,
把ca.crt的内容粘贴到blog.creke.net.crt后面。这个比较重要!**因为不这样做,可能会有某些浏览器不支持。
好了,现在https需要用到的网站私钥blog.creke.net.key和网站证书blog.creke.net.crt都准备完毕。接下来开始配置服务端。二、配置nginx
server {
listen 443 ssl;
server_name blog.creke.net;
keepalive_timeout 70;}三、检测配置和重新加载nginx配置
检测配置:
nginx -t
重新加载:
nginx -s reload四、QA
有时候,会发现,在phpMyAdmin等程序登入后会错误地跳转http的问题。解决方法是定位至“location ~ .*.(php|php5)?${}”在include fcgi.conf;或者在fastcgi_param配置后面加上:
fastcgi_param开发云主机域名 HTTPS on;
fastcgi_param HTTP_SCHEME https;
在这里是nginx官方的关于https的文档,可以作为参考。

相关推荐: 如何用VDP备份虚拟机

博主QQ:819594300博客地址:http://zpf666.blog.51cto.com/有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持!一、实验拓扑如下二、实验环境: BENET公司随着规模不断地扩大,需要搭建更多的服务器,为了防止服务器意外…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 04/02 17:25
下一篇 04/02 17:25