最后更新于
最后更新于
对于网站而言,SSL加密非常重要,不仅可以加强网站的安全性,而且还能提高网站的SEO,浏览器不会提示用户站点是非安全的。
acme.sh 实现了 acme
协议, 可以从 letsencrypt 生成免费的证书.
GitHub项目地址:
epel
存储库并安装copr yum
插件开始安装。snapcore
包。snapd socket
创建过程中会询问一些基础的问题,比如说 email、域名等。
--home
是一个自定义的安装目录acme.sh
。默认情况下,它安装到~/.acme.sh
-m
,--email 指定账户邮箱,只对'--install
'和'--update-account
'命令有效。
--config-home
是一个可写文件夹,acme.sh 将在那里写入所有文件(包括证书/密钥、配置),默认情况下,它在--home
--cert-home
是一个自定义目录,用于保存您颁发的证书,默认情况下,它保存在--config-home
.
--accountemail
是用于注册 Let's Encrypt 帐户的电子邮件,您将在此处收到续订通知电子邮件。
--accountkey
是保存您帐户私钥的文件。默认情况下,它保存在--config-home
.
--user-agent
是用于发送到 Let's Encrypt 的用户代理标头值。
acme.sh -v
查看当前版本。acme.sh
3.x版本默认使用Let’s Encrypt作为服务提供商,我们可以通过以下命令,将其更换为ZeroSSL:
acme.sh --help
即可查看 acme.sh 的帮助命令只需要指定域名, 并指定域名所在的网站根目录. acme.sh 会全自动的生成验证文件, 并放到网站的根目录, 然后自动完成验证. 最后会删除验证文件. 整个过程没有任何副作用.
/etc/nginx/conf.d/ssl/
为 zhiqiang.cloud
站点下的证书请求目录。
如果没有安装 web 服务器,acme.sh 也自带一个建议的web服务用于证书申请,前提是需要安装 socat ,80端口没有被占用。使用方法:acme.sh --issue -d zhiqiang,cloud --standalone
优点:不需要任何服务器,不需要任何公网 IP,只需要 DNS 的解析记录即可完成验证,而且可申请泛域名证书。
缺点:需要配合DNS解析服务商的API使用,否则 acme.sh 将无法自动更新证书,每次都需要手动再次重新解析验证域名所有权。
SSL证书验证可通过DNS验证、文件验证等多种方式,为了方便多个域名申请以及后续证书更新,推荐使用DNS API方式,不过在使用前需要先进行设置。
2、配置环境变量
3、申请证书
申请证书后, key 和 秘钥会被 明文 保存在
~/.acme.sh/account.conf
, 请妥善保管
如果需要重新申请证书: 请删除掉该目录下内容
rm -rf /root/.acme.sh/zhiqiang.cloud/*
DP_Id=” ”中请填写您的ID
DP_Key=” ”中请填写Token
HUAWEICLOUD_Username:华为云用户名
HUAWEICLOUD_Password:华为云密码
目前支持 DNSPod、CloudXNS、Aliyun、jdcloud、 CloudFlare、 GoDaddy、 Azure、AWS 等国内外大多数主流DNS服务提供商。
注意:通过ZeroSSL官网在线申请SSL证书,免费账户是有3个域的额度限制的,但通过acme.sh
申请则没有这个限制,所以建议使用acme.sh
进行申请,简单方便。
首次使用需要先注册ZeroSSL账户(参考上一步),如果已经注册,下面的命令会自动关联账户,命令如下(myemail@example.com
改成你自己的ZeroSSL邮箱,不要乱填):
以zhiqiang.cloud
域名为例,该域名使用DNSPod解析,我已经在上一个步骤中设置好DNSPod解析DNS API,现在可以输入命令直接申请:
acme.sh 可以同时申请多个域名.例如拥有域名aaa.com
,bbb.com
,ccc.com
,只需要在命令后加上-d 空格 域名
即可
多域名申请证书会将多个证书合并为一个证书,并存放到以第一个域名命名的文件夹内,证书信息仅显示第一个域名的信息.
如果申请过程中没有报错,就可以将SSL证书拷贝到任何想要的位置进行使用,命令如下:
zhiqiang.cloud
SSL证书导出到了/data/ssl
目录,前提是需要创建相关目录。仅供参考,请根据具体的域名进行替换
以 CentOS 环境为例, 其他环境未测试,但是应该比较类似.
ZeroSSL 的证书有效期为60天
目前手动添加DNS获取证书的方式无法自动更新,但是使用DNS API的方式进行获取证书可以在 60 天以后会自动更新, 你无需任何操作.
vim ~/.acme.sh/auto-udate-ca.sh
vim /etc/crontab
目前由于 acme 协议和 Let`s CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.
升级 acme.sh 到最新版 :
如果你不想手动升级, 可以开启自动升级:
之后, acme.sh 就会自动保持更新了.
你也可以随时关闭自动更新:
错误一:
解决方案:
查询libssl.so
模块版本
内容为:
其它出错, 请添加 debug log
:
或者:
请参考:
本文并非完全的使用说明, 还有很多高级的功能, 更高级的用法请参看其他 wiki 页面.
Certbot 是一个免费的开源软件工具,用于在手动管理的网站上自动使用证书以启用 HTTPS。
1、打开 ,获取 AccessKey ID
和 AccessKey Secret
1、Token可通过: 获取。
HUAWEICLOUD_ProjectID:可通过获取
查看更多DNS API 使用方式, 请查看
申请证书之前,建议先在ZeroSSL官方网站:注册账号,方便与acme.sh
申请的证书进行绑定于关联。
打开浏览器 验证 HTTPS 证书