用到的网站:https://freessl.cn/ 证书免费
用到的工具:https://keymanager.org/ 一站式管理域名证书 需要提前安装这个软件,首次打开需要设置密码
一、证书申请及验证+部署:
申请很简单,打开https://freessl.cn/,登录后,在首页的输入栏里,打上你要添加的域名,再点后面的创建免费的SSL证书就可以了
之后有很多选项,我选的是DNS验证,一键申请,最后你点继续,会弹出keymanager,然后就会让添加运营商
若域名运营商在腾讯、阿里等,可以直接选择,然后去你的腾讯或阿里获得api就可以一键验证了。
但若不是这几个,比如是爱名网,就需要手动去添加域名记录,按提示操作就可以了。
验证过了之后,证书就会下发成功,此时选择一键部署,然后会让添加部署信息。
部署信息,也就是你的服务器信息,IP 用户名 密码。
填密码的时候,有两种,一种是key,一种是密码。
密码的简单,你怎么登录服务器的,就用什么密码就好了。
而key的,它会给你一排命令,用SSH连接上服务器后,把这个命令复制然后粘贴,再回车,它就自动创建了,再点部署就会显示成功。
二、改配置文件:
我是用LNMP搭建的,所以每个域名会有一个域名.conf的配置文件,上面部署成功之后,就要改这个配置文件。
配置文件目录:/usr/local/nginx/conf/vhost
我也是参考百度上的一篇文章:一键LNMP配置SSL证书,全站https访问 大体相同,但修改的文件不是一样的。
1、让https能成功访问:
只需要在listen 80; 下面,添加以下代码,然后重启lnmp就可以了【此处有问题,详见本地的conf文件。】
以及这篇文章:https://bbs.vpser.net/thread-25617-1-1.html
listen 443 ssl;
ssl on;
ssl_certificate /etc/ssl/cert.pem;
ssl_certificate_key /etc/ssl/key.pem;
2、让https和http都能访问:
只需要把上面代码中 ssl on;改成 ssl off;再重启lnmp就可以了
3、让http全跳转到https:
这需要加个判断,如下,适用于老站,新站就不用了。位置就放在404的上面即可;
if ($scheme = http ) {return 301 https://$host$request_uri;}
三、遇到的问题:
我一个空间里面,有两个网站,但如果直接用keymanager的一键部署的话,因为空间是一样的,所以它会把证书给覆盖了。
所以此时就需要手动添加证书,在keymanager里找到证书列表,在后面的更多里面,找到导出证书。
此时会弹出个列表,让你选择格式,因为我的空间是Nginx,所以我就直接选择的第一个,再导出。
导出后,会以得到两个文件,其格式,一个是crt,一个是key,把这两个文件上传到/etc/ssl目录。
然后再找到域名配置文件.conf 打开,把上面二-1里面的4行代码的最后两行,改一下,说白了,就是改一下最后的两个文件名
改成你下载的文件名即可,crt对应的ssl_certificate key对应ssl_certificate_key 改好了,上传,最后再重启lnmp,就大功告成了。