使用acme.sh生成letsencrypt证书
使用acme.sh生成免费的letsencrypt证书,并实现自动更新letsencrypt证书。
安装 acme.sh
acme.sh的安装方式很简单,使用官方的安装命令即可。
1 | curl https://get.acme.sh | sh |
- 安装命令会将acme.sh安装至 ~/.acme.sh/ 路径下
- 自动创建 cronjob, 每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书
测试是否安装成功
使用 acme.sh 命令
1 | acme.sh |
如果显示 Command ‘acme.sh’ not found, 运行下面的命令,创建 一个 bash 的 alias。
1 | alias acme.sh=~/.acme.sh/acme.sh |
生成证书
生成证书有两种方式
- http验证
- dns 验证
推荐使用http验证,dns验证需要提供api id 和 api key 才能实现自动更新证书
http验证
前提
- 拥有服务器控制权
- 服务器网站根目录路径
- 域名已经解析到服务器以及网站根目录,并能正常访问
生成证书
将 readonly.info 替换为需要生成证书的域名
1 | acme.sh --issue -d readonly.info --webroot /home/wwwroot/readonly.info/ |
如果你用的 apache/nginx服务器, acme.sh 还可以智能的从 apache/nginx的配置中自动完成验证, 你不需要指定网站根目录
1 | acme.sh --issue -d readonly.info --apache |
DNS验证
参考官方wiki链接
安装证书
默认生成的证书都放在安装目录 ~/.acme.sh/ 里面的一个与域名同名的文件夹。
官方不推荐直接使用目录下的证书。那我们就需要将生成的证书复制到自己用到的目录下, 例如 /home/wwwroot/certs/readonly.info/
在这里推荐官方推荐的安装证书的命令:
Apache
1 | acme.sh --install-cert -d readonly.info \ |
Nginx
1 | acme.sh --install-cert -d readonly.info \ |
–reloadcmd 命令是重启web服务器命令,可根据自身实际情况进行修改
🎉 至此证书已经成功生成