acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书.

主要步骤:

  1. 安装 acme.sh
  2. 生成证书
  3. copy 证书到 nginx/apache 或者其他服务
  4. 更新证书
  5. 更新 acme.sh
  6. 出错怎么办, 如何调试

下面为作者自己搭建时步骤的详细介绍,也可以直接参考acmesh-官方的说明进行安装

1、安装证书申请工具

curl https://get.acme.sh | sh

这个命令后会将acme.sh安装到~/.acme.sh/目录下,重新载入~/.bashrc

source ~/.bashrc

2021-10-09补充:

由于新版本作者默认使用了新的服务器(参见:acmesh-官方Wiki),所以后续执行命令会限制-d的域名参数个数,在执行后续命令前,使用以下命令指定旧服务器后即可:

acme.sh  --set-default-ca  --server letsencrypt

每次更新后都需要优先执行此语句

2、开始申请

2.1、方法一

  • 设置DNS,执行申请(将以下命令中的qbly.top换成自己的一级域名):

    acme.sh --issue -d qbly.top -d *.qbly.top --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please

    执行响应:

    [Sun May 26 14:33:52 HKT 2019] Creating domain key
    [Sun May 26 14:33:52 HKT 2019] The domain key is here: /root/.acme.sh/qbly.top/qbly.top.key
    [Sun May 26 14:33:52 HKT 2019] Multi domain='DNS:qbly.top,DNS:*.qbly.top'
    [Sun May 26 14:33:52 HKT 2019] Getting domain auth token for each domain
    [Sun May 26 14:34:03 HKT 2019] Getting webroot for domain='qbly.top'
    [Sun May 26 14:34:03 HKT 2019] Getting webroot for domain='*.qbly.top'
    [Sun May 26 14:34:03 HKT 2019] Add the following TXT record:
    [Sun May 26 14:34:03 HKT 2019] Domain: '_acme-challenge.qbly.top'
    [Sun May 26 14:34:03 HKT 2019] TXT value: 'CFqIh5XQRdN7_DKzGqqLp8DJ-g9mB86zMl1fzi2TeuY'
    [Sun May 26 14:34:03 HKT 2019] Please be aware that you prepend _acme-challenge. before your domain
    [Sun May 26 14:34:03 HKT 2019] so the resulting subdomain will be: _acme-challenge.qbly.top
    [Sun May 26 14:34:03 HKT 2019] Add the following TXT record:
    [Sun May 26 14:34:03 HKT 2019] Domain: '_acme-challenge.qbly.top'
    [Sun May 26 14:34:03 HKT 2019] TXT value: 'Bo0VhbDQjyVISgEEwce8Ul1bVL6U1E6whfoKY-V9Cgk'
    [Sun May 26 14:34:03 HKT 2019] Please be aware that you prepend _acme-challenge. before your domain
    [Sun May 26 14:34:03 HKT 2019] so the resulting subdomain will be: _acme-challenge.qbly.top
    [Sun May 26 14:34:03 HKT 2019] Please add the TXT records to the domains, and re-run with --renew.
    [Sun May 26 14:34:03 HKT 2019] Please add '--debug' or '--log' to check more details.
    [Sun May 26 14:34:03 HKT 2019] See: https://github.com/Neilpang/acme.sh/wiki/How-to-debug-acme.sh
    
  • 根据返回数据,T给域名添加XT记录后执行(TXT记录的值为上一个命令执行后日志中的TXT value)
    acme.sh --renew -d qbly.top -d *.qbly.top --yes-I-know-dns-manual-mode-enough-go-ahead-please
  • 在目录下会生成一个 qbly.top 的文件夹, 里面有证书和密钥

2.2、方法二 (推荐)

  • 参考地址:https://github.com/acmesh-official/acme.sh/wiki/DNS-alias-mode 若域名支持DNS api 则点击此链接并点击右侧dnsapi菜单,查询域名对应的accesskey
  • 然后把自己的id和key 配置成环境变量。
    如:我使用的是阿里云的域名,查询到dnsapi授权后按如下命令分别加入环境变量(Ali_key、Ali_Secret中的Ali和接下来执行的申请证书命令中的dns_ali对应,这很重要)

    export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje1"
    export Ali_Secret="jlsdflanljkljlfdsaklkjflsaa"
    
  • 手动在域名管理后台添加CNAME记录,多域名示例如下:

  • 最后直接运行申请证书命令, 会自动在你的dnspod 后台解析一条txt记录,可先登录域名后台查验cname解析, 并完成申请证书。(以下命令中的s1.qbly.top、s2.qbly.top为同时支持这两个二级域名的证书,添加多个时,使用“-d *.aa.myyuming.com”的格式)

    acme.sh --issue -d qbly.top -d *.qbly.top -d *.s1.qbly.top -d *.s2.qbly.top --domain-alias myalias.qbly.top --dns dns_ali --log

    2.3 方法三

    acme.sh --issue -d qbly.top -d *.qbly.top --nginx

    3、复制证书

    • 将刚才生成的证书复制到对应的nginx的ssl目录,并重启nginx

      acme.sh --installcert -d qbly.top --key-file /etc/nginx/ssl/qbly.top/qbly.top.key --fullchain-file /etc/nginx/ssl/qbly.top/qbly.top.cer --reloadcmd "service nginx force-reload"

    4、证书更新

    证书有效期是 90 天的,需要定期重新申请,不过acme在安装的时候就已经设置了自动更新,所以这一步不用关心,很省心。

手动更新命令:

acme.sh --cron -f

5、设置软件自动更新

acme.sh --upgrade --auto-upgrade

https免费泛域名证书申请相关推荐

  1. 免费泛域名证书怎么申请?

    网站的信息安全是很重要的,所以很多企业都会给网站配置安全证书,一般情况下,给网站配置免费泛域名证书是很重要的.不过,该证书在申请的时候一定要在正规的地方去申请.但是,申请的时候选择免费的证书是很好的, ...

  2. 使用 Certbot 自动申请并续订阿里云 DNS 免费泛域名证书

    使用 Certbot 自动申请并续订阿里云 DNS 免费泛域名证书 首先安装 Python 3 yum install -y python39 创建并激活虚拟环境 mkdir -p /mnt/cert ...

  3. 申请 AlphaSSL (Loovit.Net) 免费泛域名证书的那些坑

    自从得知可以在 assl.loovit.net 申请到免费泛域名证书之后就一直想着把博客的 WoSign 证书换掉,毕竟部分 WoSign 的证书 Chrome 已经不再信任了,自己的博客从小绿锁变成 ...

  4. 最新版泛域名证书申请

    最新版泛域名证书申请 前言 这几天证书过期了,重新申请了一下,修改了一下之前文档的问题. 泛域名 泛域名证书又名通配符证书是SSL证书中的其中一种形式,一般会以通配符的形式(如:*.domain.co ...

  5. 通过 acme.sh 申请 Zero SSL 免费泛域名证书

    就是白嫖,而且理论上是无限的--中间有些坑,来看看我怎么踩! 如果不是泛域名的,Let's Encrypt.Zero SSL 这类免费证书意义不大,--都去阿里云.腾讯云申请免费一年证书好了. 安装 ...

  6. certbot泛域名证书申请

    前言 什么是Let's Encrypt? 目前世界上就只有为数不多的几家域名证书签发机构得到浏览器的认可,而Let's Encrypt 就是其中一家,并且你可以申请到免费的证书,当然你如果想要付费也行 ...

  7. CentOS 7配置Let’s Encrypt支持免费泛域名证书

    Let's Encrypt从2018年开始支持泛域名证书,有效期3个月,目前仅支持acme方式申请,暂不支持certbot. 1.安装acme.sh curl https://get.acme.sh ...

  8. Let's Encrypt 泛域名证书申请

    泛域名 泛域名证书又名通配符证书是SSL证书中的其中一种形式,一般会以通配符的形式(如:*.domain.com)来指定证书所要保护的域名. OV证书和DV证书都会有通配符的域名形式提供,而EV证书一 ...

  9. let's encrypt部署免费泛域名证书

    环境说明 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@localhos ...

  10. 申请免费的国产泛域名证书

    1. 申请免费泛域名证书 云服务商提供的免费证书一般都是单独域名证书,对于泛域名(也可以称为子域名.通配符域名)支持的较少.如果想要使用免费的泛域名,则需要付费购买或者使用Let's Encrypt等 ...

最新文章

  1. 小的人工智能企业应如何解决算力服务器
  2. 为什么不让安装卫xing×××啊
  3. C++/CLI思辨录之代理构造函数
  4. c语言 线程a每隔10秒执行一次,线程b每隔100秒执行一次,线程池执行时多线程每隔100ms执行一次线程任务 求解答...
  5. Python学习--Selenium模块
  6. vim复制、删除和粘贴一行
  7. 浅谈移动互联网广告设计评论
  8. CentOS7系列--5.2CentOS7中配置和管理Docker
  9. minus出错matlab,请求帮忙指点MATLAB中的语法错误
  10. 鸡兔同笼:不用暴力也可以
  11. SurfaceView实例
  12. Matlab中_pkg.exe,pkg是什么文件?pkg文件怎么安装?
  13. Excel如何将列数据转换成行数据?分享技巧!excel怎么把列的信息变换为行的信息?
  14. 信息高速公路体现计算机的网络化,信息高速公路主要体现了计算机在什么方面的发展趋势...
  15. 多系统折腾记录(老电脑MBR分区)
  16. KUBUNTU 10.04 的安装与配置详解
  17. Word2007/2003常用快捷键
  18. JAVA反色计算方法的改进和修正
  19. 计算机文化基础多选,计算机文化基础多选题..pdf
  20. mysql入门视频 吾_学习猿地-全网最新版本MySQL8全套视频教程(学完这个课 MySQL 就精通了)...

热门文章

  1. 设置font标签居中显示
  2. 快速学习一门技术的逻辑
  3. Android 中获取符合分辨率的视频
  4. php压缩文件夹(整理最新版)
  5. 分布式数据库TiDB在携程的实践
  6. MySQL 文本类型,存储大小
  7. 【深度学习】初次接触
  8. CAD几何引擎和图形引擎的关系
  9. 什么是 DNS,有什么作用?为什么需要更换公共DNS服务器?
  10. xp系统打印机服务器win7连接不了,Win7无法共享xp打印机的解决方法