证书是什么?,证书就一种网站加密协议,能使你在外网访问时更安全,不容易受到攻击,一般在访问的网址前面会出现绿色的小锁,表示这是安全的访问,通常https需要配置这样的证书,不然就会出现不安全的标识
现在免费申请证书的途径很多,可以在域名服务商那里直接申请,这种证书一般是单域名的证书,比如:nas.abc.com这就是单域名证书,还可以通过专门的证书服务商那里免费申请,但是却有时间限制,一般是90天限制,那么问题来了,有没有适合群晖的证书申请方法,即能免费申请泛域名,又能自动更新证书呢,这样一劳永逸的方法,只需前期一次配置,后面就可以自动更新了。
前面我有文章介绍通过群晖原生申请Let's Encrypt证书的方法,虽然简单,但适应范围小,需要使用CDN加速而且只是单域名的,本文介绍的是申请泛域名的证书,适用面广,不受端口限制(原生申请需开通80端口)
既然说了那么多,是不是心动了,好吧,那就开始吧,我尽量说得详细,其实操作起来非常简单:
一、安装acme.sh程序
首先使用putty或其它工具登陆群晖SSH端口,步骤是:
输入admin及密码
输入sudo -i
输入root及密码
然后输入一串代码,表示安装acme.sh程序并进行解压,具体代码为:
wget https://github.com/Neilpang/acme.sh/archive/master.tar.gz
tar xvf master.tar.gz
cd acme.sh-master/
chmod a+x acme.sh
解压后需将其安全到我们能容易查看的目录内,输入代码:
./acme.sh --install --nocron --home "/volume1/docker/cert/challenges/acme.sh"
二、查找阿里云或腾迅云服务ID和密码并配置
通过域名服务商的ID和key,一般很容易获取,方法本网也有很多介绍的,这里就不啰嗦了,用记事本将其记住
然后去Dnsapi文件夹里找到对应的服务商文件配置,阿里云的是“dns_ali”,而腾迅云的是"dns_dp“,这样只需将前面记录的到该文件里修改即可,另需将其前面”#”去掉,让设置生效:
三、生成证书并配置自动更新配置
1、配置好后,请选用相应的代码进行生成证书,我选用的是阿里云,所以代码是:
./acme.sh --home "/volume1/docker/cert/challenges" --issue --dns dns_ali -d example.cn -d *.example.cn
记得将"example.cn"改为你自已的域名,然后输入运行,如图:
2、一般如果配置成功的话,可以直接产生相应的证书,文件夹是以你的域名命名的,例如"example.cn",里面有7个文件,分别是证书和系统文件,这样才成功
3、然后可以将里面的证书文件先进行安装,方法本网也有,就不多说了,配置好后看有效期一般是90天,怎么办,我们需要自动更新,一般一个月更新一次就够了,更新脚本是:
cd /volume1/docker/cert/challenges/acme.sh
./acme.sh --home "/volume1/docker/cert/challenges" --renew -d example.cn -d *.example.cn
只需将example.cn改成你的域名即可。然后运行该脚本就能更新证书了。
4、更新脚本只能更新证书,但不可能每次手动去更新一次,太麻烦了,我们做一个脚本自动安装,先去“/usr/syno/etc/certificate/_archive”目录看,里面会有刚上传证书的目录,记住他的地址,然后运行脚本:
/volume1/docker/cert/challenges/acme.sh/acme.sh --home /volume1/docker/cert/challenges --installcert -d example.cn --certpath /usr/syno/etc/certificate/_archive/USAEVy/cert.pem --keypath /usr/syno/etc/certificate/_archive/USAEVy/privkey.pem --fullchainpath /usr/syno/etc/certificate/_archive/USAEVy/fullchain.pem --capath /usr/syno/etc/certificate/_archive/USAEVy/chain.pem --reloadcmd
rsync -avzh /usr/syno/etc/certificate/_archive/USAEVy/ /usr/syno/etc/certificate/system/default/
/usr/syno/etc/rc.sysv/nginx.sh reload
这里只需将example.cn改为你的域名,/usr/syno/etc/certificate/_archive/USAEVy改为你的地址就好了,然后运行该脚本,一般一个月一次,这个脚本要比上一个晚半个小时左右才好。
结语:介绍完了,说了那么多,操作起来没几分钟,顶多半小时吧,设置好后以后就不用管他,全自动更新泛域名,是不是很爽,照着教程做,我相信你也能设置成功的。
发表评论