以前一直没在Linux+Nginx环境下配置过SSL安全链接,这两天没事折腾了一下,基本上弄明白了,并且成功实现了网站通过https的方式进行安全链接。其主要操作步骤现记录下来,也算是做一个笔记。
1、申请SSL证书:
刚开始是在startssl上申请的免费证书,有3年的有效期,一个证书可包含10个子域名,看着还是不错的。后又辗转到Qcloud,申请了免费的SSL证书,有效期为1年,测试了下,各浏览器下都正常,所以大家可以去Qcloud.com申请免费的SSL证书使用。另外,aliyun也可以申请免费的SSL证书。
在Qcloud的申请过程中,要验证你的域名的所有权,会要求你解析一个CNAME,验证通过就可以下载证书了。
2、上传证书到VPS:
将申请到的SSL证书上传到你的VPS相应的目录中,我是新建了一个名为“SSL”的目录,存储在这个位置。
3、安装SSL证书:
证书到手并上传后,就可以设置你的网站配置文件了。由于我的服务器使用的是Nginx,在对应的Web配置文件中修改server{ }配置即可。
server {
listen 443 SSL;
server_name www.domain.com;
ssl on;
ssl_certificate SSL/1_www.domain.com_cert.crt;
ssl_certificate_key SSL/2_www.domain.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_session_cache builtin:1000 shared:SSL:10m;
location / {
#其它配置
}
}
配置好后,重启下nginx,测试使用https://www.domain.com访问,浏览器地址栏前成功的出现了把绿色的锁,说明配置成功了。
在ssllabs.com中测试了下安全加密链接,竟然给了个C的评级,想想不对啊,后又仔细查了查,在上述配置中将“ssl_ciphers HIGH:!aNULL:!MD5;”更改为:
ssl_ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:DES-CBC3-SHA;
重新加载nginx配置,重新评级妥妥的“A”。
4、设置http跳转到https:
在平常访问网址时,出于习惯我们不会输入http或https,在地址栏直接输入地址(如:www.byspace.net)浏览器是打开https://www.iyuren.com,而不是https://www.iyuren.com。为了方便将http的链接自动跳转到https上,只需要在上述3中的server{ }前再增加一个server{ },用来监听http的80端口,并实现跳转。
URL重写进行跳转方式:
server {
listen 80;
server_name domain.com;
rewrite ^(.*) https://$server_name$1 permanent;
}
通过301重定向进行跳转方式:
server {
listen 80;
server_name domain.com;
return 301 https://$server_name$request_uri;
}
好了,通过上面的配置,就实现了个网站通过https的安全方式进行链接了!
现在的问题就是CDN必须要套餐才可以使用SSL,放源又怕被打。。。
@Lonely呵呵,别怕!今天又试了试腾讯云的CDN,有免费的CDN流量,折腾半天也搞好了SSL的CDN。
@山野愚人居免费的CDN流量被人CC几下就没了。。。
@山野愚人居腾讯云的CDN貌似有点不稳定,经常出现404
配置SSL的感觉很高大上,我等只能仰望了
@握兰网只要想搞起来,没啥困难的!
Qcloud现在不支持顶级域名。。
@筚路蓝缕阿里云和腾讯云都不支持呢,免费的二级域名SSL已经够了!
是否需要买腾讯的主机才行了。。
@筚路蓝缕那不是,只要支持SSL的服务器都行,把申请到的证书放到自己的服务器上配置就行!
@山野愚人居落伍了,现在还用的几年前脑壳发热续了几年续的虚拟主机,要想可劲造还得上VPS才行。
https 你的图片CDN是放哪里的?自己的vps上?
@不亦乐乎七牛CDN加速,自己的VPS只有1M的小水管,图片只有CDN了……
@山野愚人居word靠,你一个回复3条邮件通知。
七牛https收费啊。
@不亦乐乎3条回复?不会吧!我测试一下去!我的图片少,流量小,用七牛也没多少钱!
貌似小绿锁没出来
@闲鱼不会啊,你用哪个浏览器?
@山野愚人居我浏览器的问题,不好意思
没你这么壕啊,还是虚拟机
用这个主题的人越来越少了,博主改的不错呀。文章结尾增加上下篇的指导文章有莫有 0.0
@自定义简洁的主题少啊,没事瞎折腾呗!
博主的startSSL证书居然是三年期的,我的才一年
@憧憬Licoy10月份申请玩的,确实是3年,还可以加10个子域名!
现在博客好多都搞SSL,有个绿锁看着逼格高点。。。
@HanSSL是大势所趋啊!