本文是对Nginx配置SSL证书的总结。
你可以从任何证书提供商处申请证书,这里以阿里云为例。
注意,1年到期后别忘记重新申请证书!
放心大胆的支付吧,不用钱!
注意,免费型证书只支持单个域名!例如你要为www.example.com申请证书,你必须填写www.example.com,而不能是example.com。
例如DNSPod,填写主机记录,记录值和记录类型,然后点击保存。
耐心等待TTL刷新(一般为10分钟,也可能花不了10分钟)。
回到阿里云SSL证书申请页面,点击验证。
验证通过后,证书提供商将会为你的域名颁发证书。在阿里云SSL证书控制台的已签发列表下可以找到你的域名对应的SSL证书。
下载Nginx对应的SSL证书xx_nginx.zip
,准备配置Nginx。
如果你还没有安装Nginx,可以参考部署Nginx
$ sudo mkdir /etc/nginx/certs
$ sudo cd /etc/nginx/certs
## 上传你的证书至此目录
$ sudo ls -l
drwxr-xr-x 2 root root 4096 Jul 24 17:15 ./
drwxr-xr-x 7 root root 4096 Jul 24 17:15 ../
-rw-r--r-- 1 root root 4053 Jul 24 16:49 xx_nginx.zip
$ sudo unzip xx_nginx.zip
$ sudo ls -l
-rw-r--r-- 1 root root 1679 Jul 24 16:48 xx.key ## ssl cert key
-rw-r--r-- 1 root root 3667 Jul 24 16:48 xx.pem ## ssl cert
一切准备就绪后,可以开始修改我们的Nginx
配置文件了。
将Http修改为Https非常简单,只需要修改一处内容,并添加若干代码。
listen 80;
修改为listen 443;
server
块中添加以下代码ssl on;
ssl_certificate certs/xx.pem;
ssl_certificate_key certs/xx.key;
ssl_session_timeout 5m;
修改完成后,重启Nginx
$ sudo service nginx reload
$ sudo service nginx restart
好了,使用Https访问你的网站吧。
注意,以上修改完成后,只能使用Https访问了,但是往往我们不希望用户使用Http访问的时候出现404的情况。那么,我们可以简单的将80端口的用户转发到443端口,来达到Http和Https共存的状态。
在Nginx配置文件中添加
server {
listen 80;
server_name xx.xx.com;
return 301 https://$server_name$request_uri;
}
重启Nginx
原文:https://www.cnblogs.com/gcdd/p/12292140.html