为nginx配置https并自签名证书


为nginx配置https并自签名证书

一、把证书准备好。 
步骤与使用OpenSSL自签发服务器https证书所述大同小异。在这里再重复一次。 
1、制作CA证书: 
ca.key CA私钥:

openssl genrsa -des3 -out ca.key 2048
  • 1

制作解密后的CA私钥(一般无此必要):

openssl rsa -in ca.key -out ca_decrypted.key
  • 1

ca.crt CA根证书(公钥):

openssl req -new -x509 -days 7305 -key ca.key -out ca.crt
  • 1

2、制作生成网站的证书并用CA签名认证 
在这里,假设网站域名为194xy94625.iok.la 
生成194xy94625.iok.la证书私钥:

openssl genrsa -des3 -out 194xy94625.iok.la.pem 1024
  • 1

制作解密后的194xy94625.iok.la证书私钥:

openssl rsa -in 194xy94625.iok.la.pem -out 194xy94625.iok.la.key
  • 1

生成签名请求:

openssl req -new -key 194xy94625.iok.la.pem -out 194xy94625.iok.la.csr
  • 1

在common name中填入网站域名,如194xy94625.iok.la即可生成改站点的证书,同时也可以使用泛域名如*.creke.net来生成所有二级域名可用的网站证书。 
用CA进行签名:

openssl ca -policy policy_anything -days 1460 -cert ca.crt -keyfile ca.key -in 194xy94625.iok.la.csr -out 194xy94625.iok.la.crt
  • 1

其中,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
  • 1
  • 2
  • 3
  • 4

再重新执行签名命令。 
最后,把ca.crt的内容粘贴到blog.creke.net.crt后面。这个比较重要!因为不这样做,可能会有某些浏览器不支持。 
好了,现在https需要到的网站私钥194xy94625.iok.la.key和网站证书194xy94625.iok.la.crt都准备完毕。接下来开始配置服务端。 
二、配置nginx 
新开一个虚拟主机,并在server{}段中设置:

listen 443;
ssl on;
ssl_certificate /path/to/194xy94625.iok.la.crt;
ssl_certificate_key /path/to/194xy94625.iok.la.key;
  • 1
  • 2
  • 3
  • 4

其中的路径是刚刚生成的网站证书的路径。 
然后使用一下命令检测配置和重新加载nginx: 
检测配置:

nginx -t
  • 1

重新加载:

nginx -s reload
  • 1

三、优化nginx配置 
1、优化nginx性能 
在http{}中加入:

ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
  • 1
  • 2

据官方文档所述,cache中的1m可以存放4000个session。 
在配置https的虚拟主机server{}中加入:

keepalive_timeout 70;
  • 1

2、有时候,会发现,在phpMyAdmin等程序登入后会错误地跳转http的问题。解决方法是定位至“location ~ .*.(php|php5)?${}”在include fcgi.conf;或者在fastcgi_param配置后面加上:

fastcgi_param HTTPS on;
fastcgi_param HTTP_SCHEME https;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值