以前一直没在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的安全方式进行链接了!
我的证书申请成功了,但是被告知虚拟主机不支持ssl,看来我要换一个服务器了。
@木先森换阿里或腾讯的云服务器, 一次买3年好像也只有800块钱吧,自主程度相当高!
我的评级也是A了,但是不明白这个ssl_ciphers 参数是怎么定义的。
“ssl_ciphers HIGH:!aNULL:!MD5” 这个是自定义的密钥吗?
@筚路蓝缕这个东西可以看看这个:https://cipherli.st/
startssl貌似现在不好
vps就是好,可以自己配置。
突然看到你的公安备案,请问用了多长时间,我的已经半年多了,一点动静都没有。
@尹先生我的48小时内就审批搞定了,还是当地公安网警打电话催我办理的。其实这个也无所谓,只要有正规备案号就行,上个月有个网站也上公安网警备案,结果直接给拒了,但照样无任何妨碍!
可以再加上HSTS
@黑暗游侠嗯嗯,已经加上了~ssllabs评级A+
不错,绿了。
话说,博主会安装pem格式的证书吗?两个文件都是pem,看懵B了。。。现在只能靠Let’s Encrypt苟活。。
@烧酒看文件开头是不是三杠加上begin certificate,后缀名无关。