当前位置:首页 > 技术文章 > 正文内容

ACME自动申请免费的通配符https域名证书

arlanguage3个月前 (02-01)技术文章25

1.安装acme

在Linux下在线安装脚本,使用以下命令

curl https://get.acme.sh | sh -s email=my@example.com

或者:

wget -O - https://get.acme.sh | sh -s email=my@example.com

或者git安装:

git clone --depth 1 https://github.com/acmesh-official/acme.sh.git
cd acme.sh
./acme.sh --install -m my@example.com

在这一步安装过程中,完成了3个任务: 1、拷贝sh脚本到~/.acme.sh/ 2、创建alias别名acme.sh=~/.acme.sh/acme.sh 如果没有自动创建别名(执行acme.sh,提示command not found),可以使用以下命令自行创建:

alias acme.sh='/root/.acme.sh/acme.sh'

3、启动定时器,并加入到定时任务 其中定时任务可以通过“crontab -l”命令查看到,若没有,也可以自行添加,定时任务如下:

0 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

2.DNS API方式申请域名/泛域名证书

签发泛域名证书是最好的方式了,申请一个证书任意二级域名都可以使用,非常方便。 根据你的域名服务商提供的DNS API,并导入DNS API,各域名服务商的DNS API请参考官方说明:
https://github.com/Neilpang/acme.sh/tree/master/dnsapi。
这里以阿里云为例,在阿里云的控制台里找到自己的DNS API,然后使用以下命令导入到acme.sh中:

阿里云后台创建子账号和分配权限

创建子账号

给刚刚创建的子账号添加权限

将获取到的AccessKey 和 Secret 写到acme.sh.env配置文件里面

vim /root/.acme.sh/acme.sh.env

修改后acme.sh.env文件变成:

export LE_WORKING_DIR="/root/.acme.sh"
alias acme.sh="/root/.acme.sh/acme.sh"
export Ali_Key="*****“
export Ali_Secret=”*******"

执行source 命令

source ~/.bashrc

执行env命令查看环境变量,可以查看到刚刚配置的ali_key 跟 ali_secret

申请泛域名证书:

导入域名商的DNS API之后就可以使用以下命令,自动解析DNS(通过api给你的域名添加一条txt解析记录),验证通过后就会下发证书:

acme.sh --issue --dns dns_ali -d example.com -d *.example.com

证书申请成功后,默认保存在“~/.acme.sh/example.com”目录下。注意:“dns_ali”表示使用阿里云的DNS API,域名商不同的话此处会不同,请参考上述文档。

3.移动证书到指定位置

默认生成的证书都放在安装目录下, 不建议直接通过nginx或apache使用此目录下的证书。正确的使用方法是使用 --install-cert 命令,并指定目标位置,,然后证书文件会被copy到相应的位置,例如: Apache命令如下:

acme.sh --install-cert -d example.com \
--cert-file /path/to/certfile/in/apache/cert.pem \
--key-file /path/to/keyfile/in/apache/key.pem \
--fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
--reloadcmd "service apache2 reload"

Nginx命令如下:

acme.sh --install-cert -d example.com \
--key-file /path/to/keyfile/in/nginx/key.pem \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd "service nginx reload"

执行该命令后,命令中的参数将自动保存在~/.acme.sh/example.com目录下的example.com.conf文件里,定时器更新证书的时候实现自动部署。 上述命令把下发的证书复制到你指定的位置,这样避免你直接从“~/.acme.sh/”读取证书,然后重新加载nginx或apache以刷新证书。域名为必需参数,其它参数为可选。 但要注意的是,reloadcmd参数非常重要(reloadcmd后面的参数为重新加载nginx或Apache的命令,可以根据系统的不同作相应修改),即使更新了证书,但是nginx或apache没有重新加载,证书是不是会刷新到服务中去的。

4、升级更新acme.sh:

升级acme.sh可以使用以下命令:

acme.sh --upgrade

或者使用自动升级,使用以下命令,有更新就自动更新,不需人工干预:

acme.sh --upgrade --auto-upgrade

要关闭自动升级使用以下命令:

acme.sh --upgrade --auto-upgrade 0

5、acme.sh的基本管理:

1、查看acme.sh已签发证书的域名:

acme.sh --list

2、从acme.sh中移除不需要再次签发证书的域名:

acme.sh --remove -d example.com

3、删除acme.sh:

acme.sh --uninstall

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/2064.html

分享给朋友:

“ACME自动申请免费的通配符https域名证书” 的相关文章

阿里架构师讲面试:Nginx 配置 HTTPS 完整过程,细致入微全是精华

配置站点使用 https,并且将 http 重定向至 https。1. nginx 的 ssl 模块安装查看 nginx 是否安装 http_ssl_module 模块。$ /usr/local/nginx/sbin/nginx -V如果出现 configure arguments: --with-...

Nginx安装、启动、停止、重载、查看

Nginx介绍Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在开源BSD-like 协议下发行。特点是占有内存少,并发能力强。1、安装 Nginx程序yum install nginx -y 或 dnf install nginx -y2、n...

Nginx负载均衡安全配置说明2 nginx负载均衡配置文件

上一节,我们对Nginx安全配置的几个知识点做了一个说明,例如限制IP访问、文件目录禁止访问限制、需要防止DOS攻击、请求方法的限制和限制文件上传的大小这个进行了一个分析说明,详细的文章请关注我的头条号:一点热,在里面看回之前的文章,快速入口Nginx负载均衡的一些安全配置说明其实,配置Nginx的...

提升网站性能开发的10个技巧 提升网站性能开发的10个技巧是什么

随着网络的高速发展,网络性能的持续提高成为能否在芸芸App中脱颖而出的关键。高度联结的世界意味着用户对网络体验提出了更严苛的要求。假如你的网站不能做到快速响应,又或你的App存在延迟,用户很快就会移情你的竞争对手。以下为大家总结10条有关性能提升的经验,以供参考:1. 采用反向代理服务器(Rever...

大数据分析工程师入门15-数据收集

数据与智能 本公众号关注大数据与人工智能技术。由一批具备多年实战经验的技术极客参与运营管理,持续输出大数据、数据分析、推荐系统、机器学习、人工智能等方向的原创文章,每周至少输出10篇精品原创。同时,我们会关注和分享大数据与人工智能行业动态。欢迎关注。 作者:凯凯连导语上一篇文章我们简单介绍了下大数...

常见nginx配置文件的主上下文指令有哪些?

Nginx 由模块组成,这些模块由配置文件中指定的指令(directive)来控制。指令被分为简单指令和块指令。简单指令由名称和用空格分隔的参数组成,并以分号 (;) 结尾。块指令与简单指令具有相同的结构,但是在分号的位置,它以一组用大括号 ({ 和 }) 括起来的额外指令结束。如果块指令可以在大括...