今天推荐的这个脚本acme.sh,实现了 acme 协议, 可以帮你持续自动从更新CA证书。下载地址如下:

安装 acme.sh

安装acme.sh很简单,一个命令即可:

curl | sh

普通用户和 root 用户都可以安装使用。安装过程进行了以下几步:

1、把acme.sh安装到你的home目录下:

~/.acme.sh/

并创建 一个 bash 的 alias,方便你使用:alias acme.sh=~/.acme.sh/acme.sh

2、自动为你创建 ,每天 0:00 点自动检测所有的证书。如果快过期了,需要更新,则会自动更新证书,安装过程不会污染已有的系统任何功能和文件,所有的修改都限制在安装目录中:~/.acme.sh/

生成证书

acme.sh 实现了 acme 协议支持的所有验证协议, 一般有两种方式验证:http 和 dns 验证。

1、http 方式需要在你的网站根目录下放置一个文件, 来验证你的域名所有权,完成验证,然后就可以生成证书了。

acme.sh --issue -d -d -- /home///

acme.sh 会全自动的生成验证文件, 并放到网站的根目录,然后自动完成验证。最后会聪明的删除验证文件,整个过程没有任何副作用。

如果你用的是服务器,acme.sh 还可以智能的从 的配置中自动完成验证,你不需要指定网站根目录:

acme.sh --issue -d --

如果你用的是nginx服务器,或者反代,acme.sh还可以智能的从 nginx的配置中自动完成验证,你不需要指定网站根目录:

acme.sh --issue -d --nginx

注意:无论是 还是 nginx 模式,acme.sh在完成验证之后,会恢复到之前的状态,都不会私自更改你本身的配置。好处是你不用担心配置被搞坏,但也有一个缺点,你需要自己配置 ssl 的配置,否则,只能成功生成证书,你的网站还是无法访问https。但是为了安全,你还是自己手动改配置吧。

如果你还没有运行任何 web 服务,80 端口是空闲的, 那么 acme.sh 还能假装自己是一个, 临时听在80 端口,完成验证:

acme.sh --issue -d --

2、dns 方式,在域名上添加一条 txt 解析记录,验证域名所有权。

这种方式的好处是,你不需要任何服务器,不需要任何公网 ip,只需要 dns 的解析记录即可完成验证。不过,坏处是,如果不同时配置 DNS API,使用这种方式 acme.sh 将无法自动更新证书,每次都需要手动再次重新解析验证域名所有权。

acme.sh --issue --dns -d

然后,acme.sh 会生成相应的解析记录显示出来,你只需要在你的域名管理面板中添加这条 txt 记录即可。

等待解析完成之后, 重新生成证书:

acme.sh --renew -d

注意:第二次这里用的是 --renew

dns 方式的真正强大之处在于可以使用域名解析商提供的 api 自动添加 txt 记录完成验证。

关注公众号【终端研发部】回复关键字“Java”获取Java面试题和答案。

acme.sh 目前支持 , , , 以及 ovh 等数十种解析商的自动集成。

copy/安装 证书

前面证书生成以后,接下来需要把证书 copy 到真正需要用它的地方。

注意:默认生成的证书都放在安装目录下:~/.acme.sh/,请不要直接使用此目录下的文件。例如,不要直接让 nginx/ 的配置文件使用这下面的文件。这里面的文件都是内部使用,而且目录结构可能会变化。

正确的使用方法是使用 -- 命令,并指定目标位置,然后证书文件会被copy到相应的位置,例如:

acme.sh --installcert -d .com 

--key-file /etc/nginx/ssl/.key 

--fullchain-file /etc/nginx/ssl/fullchain.cer 

--reloadcmd "service nginx force-reload"

一个小提醒,这里用的是 nginx force-,不是 nginx ,据测试, 并不会重新加载证书,所以用的 force-。

Nginx 的配置 使用 /etc/nginx/ssl/.cer,而非 /etc/nginx/ssl/.cergodaddy域名解析教程,否则 SSL Labs 的测试会报 Chain 错误。

--命令可以携带很多参数,来指定目标文件。并且可以指定 , 当证书更新以后,会被自动调用,让服务器生效。

值得注意的是,这里指定的所有参数都会被自动记录下来,并在将来证书自动更新以后,被再次自动调用。

更新证书

目前证书在 60 天以后会自动更新,你无需任何操作。今后有可能会缩短这个时间,不过都是自动的godaddy域名解析教程,你不用关心。

更新 acme.sh

目前由于 acme 协议和 CA 都在频繁的更新,因此 acme.sh 也经常更新以保持同步。

升级 acme.sh 到最新版 :

acme.sh --

如果你不想手动升级, 可以开启自动升级:

acme.sh -- --auto-

之后, acme.sh 就会自动保持更新了。

你也可以随时关闭自动更新:

acme.sh -- --auto- 0

出错怎么办:

如果出错, 请添加 debug log:

acme.sh --issue ..... --debug

或者:

acme.sh --issue ..... --debug 2

最后,本文并非完全的使用说明,还有很多高级的功能,更高级的用法请参看其他 wiki 页面。

地址://acme.sh/wiki

域名如何解析_域名解析视频教程_godaddy域名解析教程

回复【idea激活】即可获得idea的激活方式

回复【Java】获取java相关的视频教程和资料

回复【】获取相关多的学习资料

回复【】获取全套0基础知识手册

回复【2020】获取相关面试题教程

回复【加群】即可加入终端研发部相关的技术交流群


限时特惠:
本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情

站长微信:Jiucxh

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注