HTTPS证书是需要购买的,
Let's Encrypt 可以为我们的网站提供免费的HTTPS证书。
Let's Encrypt 是一个由非营利性组织的互联网安全研究小组(ISRG)提供的免费、自动化和开放的证书颁发机构(CA)。
Let's Encrypt 免费证书的签发/续签都是脚本自动化的,官方提供了几种证书的申请方式方法,
点击查看
但官方的方式都比较麻烦,特别对于英文差的童鞋😂,
我直接使用第三方客户端 acme.sh 申请,这种方式可能是目前最简单的方法,使用shell脚本的方式,可以自动发布和续订 Let's Encrypt 中的免费证书。
#安装
1 2
| curl https://get.acme.sh | sh
|
#安装过程
把 acme.sh 安装到当前用户的主目录$HOME下的.acme.sh文件夹中,即~/.acme.sh/,之后所有生成的证书也会放在这个目录下;
创建了一个指令别名alias acme.sh=~/.acme.sh/acme.sh,这样我们可以通过acme.sh命令方便快速地使用 acme.sh 脚本;
自动创建cronjob定时任务, 每天 0:00 点自动检测所有的证书,如果快过期了,则会自动更新证书。
证书虽然会自动更新,但需要手动更新证书文件到你的服务器对应证书目录,不是全部都是全自动的。证书每一次更新会延长60-90天(我有时候是60天,有时候是90天,后面希望会延长证书时间吧)
#查看是否安装成功

#生成证书
1
| .acme.sh/acme.sh --issue -d itpika.com -d www.itpika.com -w /home/www/root/itpika.com
|
- –issue是 acme.sh 脚本用来颁发证书的指令;
- -d是–domain的简称,其后面须填写已备案的域名;
- -w是–webroot的简称,其后面须填写网站的根目录。

截图的最后输出了证书的存放目录
可以通过下面两个常用acme.sh命令查看和删除证书:
1 2 3 4 5
| # 查看证书列表 acme.sh --list
# 删除证书 acme.sh remove <SAN_Domains>
|
#安装证书
安装证书只是将证书文件拷贝到对应的目录而已,完全可以自己拷贝,这里还是给出来1 2 3 4 5
| # 最后一行命令还帮我重启了nginx acme.sh --installcert -d itpia.com \ --key-file /etc/nginx/ssl/itpia.com.key \ --fullchain-file /etc/nginx/ssl/fullchain.cer \ --reloadcmd "service nginx force-reload"
|
#手动更新证书
1
| acme.sh --renew -d itpika.com --force
|
#更新acme.sh
acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常最好也更新以保持同步。
#手动更新
#自动更新
1
| acme.sh --upgrade --auto-upgrade
|
#关闭自动更新
1
| acme.sh --upgrade --auto-upgrade 0
|
最后检测一下SSL是否没问题
SSL完整性检测 ->
myssl.com
免费的HTTPS证书目前有很多地方也都可以搞到,比如各种云厂商(阿里,腾讯)。最终使用哪里的就看自己的爱好了