给站点上SSL的前洼后坑
编辑由于简历上写着个人博客地址:https......
然而实际上是:http......
又懒得再去修改打印
所以事情就是这么个事情,这篇文章就这么非常卑微地出现了。。。
一、前情回顾
1、你需要有一台服务器
2、最好正在跑着项目
3、最好有一个域名(没有域名应该也可以申请SSL证书但是我不知道)
二、申请证书
能申请证书的平台有很多,因为我服务器是买的阿里云,所以我就直接上阿里云申请了,感觉应该是比去其他平台申请可以简单一些。证书有免费的,别问,没钱。
1、首先要登录,找到“SSL证书”,进去
2、然后选购证书。这里只有单域名&DV类型有免费版的,购买支付就行。
3、进入证书管理控制台,未签发这块有刚刚购买的证书,要申请,填一些信息,审核。
我的审核比较快,免费版的应该都挺快的,点上就完了。
4、下一步等待验证就行了,验证通过了就会给你签发这个证书,把它下载下来,选择需要的服务器,我用的是Nginx。
会得到两个文件:
xxxxxxx_xxx.xxx.xxx.pem(证书)
xxxxxxx_xxx.xxx.xxx.key(秘钥)
嫌弃文件名可以自行修改
三、安装证书
刚才我们下载的是适配Nginx的,我们要把它装到Nginx去。
官方也有教程也很详细:在Nginx或Tengine服务器上安装证书
1、首先,你的服务器开放443端口,其次,服务器上已安装了http_ssl_module模块。
2、在Nginx的安装目录下新建目录 /cert,跟默认配置文件nginx.conf同级,然后把证书和秘钥放到 /cert 目录下。
多说一句,关于这两个东西就这么干,不然配置的时候各种找不到,别问我是怎么知道的,反正我很难受
3、安装SSL之前配置文件
没加SSL之前,conf.d里配置文件只有一个,default.conf,内容是
server {
listen 80;
server_name www.heycm.online;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
4、安装SSL之后配置文件
修改 conf 目录下 default.conf,内容是
server{
listen 80;
server_name www.heycm.online;
return 301 https://$server_name$request_uri;
}
conf 目录下增加配置文件 ssl.conf,内容是
server {
listen 443 ssl;
server_name www.heycm.online;
root /usr/share/nginx/html;
index index.html index.htm;
ssl_certificate cert/domain.pem;
ssl_certificate_key cert/domain.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
特别说明:ssl_certificate和ssl_certificate_key就是对应证书和秘钥的文件,请使用相对路径!!!用绝对路径找不到!
除了特别说明,还需要把站点目录和域名改成你自己的就行了。
以上设置,将会把所有http请求重定向到https,这样安装工作就完成了,重启Nginx服务器就可以了。
有CDN接着往下看......
还是以阿里云CDN为例。
四、CDN配置证书
进入CDN控制台,安全防护》证书服务》配置证书,可以自己上传,直接选云盾证书就把签发给你的证书拿过来了,选择证书名称,下一步,关联域名就OK
但是!!!!!!!!
如果只是加上证书,很有可能会出现“重定向次数过多”,F12一看一堆一堆的重定向,根本访问不了。
为什么出现这种情况?怎么解决?
四、CDN回源配置
1、为什么会出现“重定向次数过多”这样的问题
这是因为源站(就是Nginx)配置了将所有http请求(80端口)全部重定向到https(443端口),而CDN配置回源端口是80。
这就意味着,无论http还是https访问CDN加速域名时,CDN都是用http请求源站,此时会触发源站http重定向到https的策略,要求CDN重发一个https请求,然而CDN还是发回去一个http请求,这样它俩就死循环了,所以重定向次数过多。
大概就跟这图差不多...
2、解决办法,主要就在CDN配置这块了
方法一:将CDN回源端口设置为443
方法二:开启回源协议,设置为“跟随”
方法二选一就可以了,可以解决这个问题。
- 0
- 0
-
分享