前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 acme.sh 生成免费的 https 证书

使用 acme.sh 生成免费的 https 证书

作者头像
崔哥
发布2022-05-25 21:02:10
6960
发布2022-05-25 21:02:10
举报
文章被收录于专栏:崔哥的专栏

可以从 zerossl 生成免费的证书,有效期90天

安装

代码语言:javascript
复制
curl https://get.acme.sh | sh -s email=你的email

如上,是最简单的安装方法,但可能不会成功(因为这个域名访问不了raw.githubusercontent.com),最稳妥的方法是下面这种

代码语言:javascript
复制
git clone https://github.com/acmesh-official/acme.sh.git
cd acme.sh
[root@iZbp1430s16l9piu268n8rZ acme.sh]# ./acme.sh --install -m 你的email
[Fri Apr  8 19:05:22 CST 2022] It is recommended to install socat first.
[Fri Apr  8 19:05:22 CST 2022] We use socat for standalone server if you use standalone mode.
[Fri Apr  8 19:05:22 CST 2022] If you don't use standalone mode, just ignore this warning.
[Fri Apr  8 19:05:22 CST 2022] Installing to /root/.acme.sh
[Fri Apr  8 19:05:22 CST 2022] Installed to /root/.acme.sh/acme.sh
[Fri Apr  8 19:05:22 CST 2022] Installing alias to '/root/.bashrc'
[Fri Apr  8 19:05:22 CST 2022] OK, Close and reopen your terminal to start using acme.sh
[Fri Apr  8 19:05:22 CST 2022] Installing alias to '/root/.cshrc'
[Fri Apr  8 19:05:23 CST 2022] Installing alias to '/root/.tcshrc'
[Fri Apr  8 19:05:23 CST 2022] Installing cron job
no crontab for root
no crontab for root
[Fri Apr  8 19:05:23 CST 2022] Good, bash is found, so change the shebang to use bash as preferred.
[Fri Apr  8 19:05:24 CST 2022] OK

验证是否安装成功

注意,你可能需要关闭当前ssh链接,重新打开终端才能生效

代码语言:javascript
复制
[vagrant@nfsFileSystem ~]$ acme.sh -h
https://github.com/acmesh-official/acme.sh
v3.0.2
Usage: acme.sh <command> ... [parameters ...]
Commands:
  -h, --help               Show this help message.
  -v, --version            Show version info.
  --install                Install acme.sh to your system.
  --uninstall              Uninstall acme.sh, and uninstall the cron job.
  --upgrade                Upgrade acme.sh to the latest code from https://github.com/acmesh-official/acme.sh.
  --issue                  Issue a cert.
...

安装成功后会在当前用户下创建一条计划任务,用来检测所有证书是否需要更新,或者 应用本身是否需要更新

代码语言:javascript
复制
19 0 * * * "/home/vagrant/.acme.sh"/acme.sh --cron --home "/home/vagrant/.acme.sh" > /dev/null

生成证书

生成证书需要验证你的域名所有权。acme.sh 实现了 acme 协议支持的所有验证协议,一般有 http 和 dns 两种验证方式。 这里介绍几种常用的验证方式。

http 方式,需要在你的网站根目录下放置一个文件

代码语言:javascript
复制
acme.sh --issue -d portainer.cuiwei.net --webroot /data/www/portainer/web/ --debug

执行上面的命令会在/data/www/portainer/web/目录自动生成一个类似.well-known/acme-challenge/tvPCfBH2s54bKxC_ORkcDnEQcBAf1wanJGdDgxltvMc这样的文件

如果没意外,会生成portainer.cuiwei.net.keyportainer.cuiwei.net.cer文件,个人习惯.cer后缀改为.pem,手动复制两个文件(portainer.cuiwei.net.key,portainer.cuiwei.net.pem)到指定位置,就可以使用了

手动 dns 方式,手动在域名上添加一条 txt 解析记录

不需要服务器,在本地就能生成

一、

代码语言:javascript
复制
acme.sh --issue -d m.cuiwei.net --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please
11.JPG
11.JPG

二、如上图,请将 TXT 记录添加到您的 DNS 记录中。每次更新证书时都需要执行此步骤。使用 DNS api 模式,这一步可以自动化。

三、

代码语言:javascript
复制
acme.sh --renew -d m.cuiwei.net --yes-I-know-dns-manual-mode-enough-go-ahead-please
acmerenew.jpg
acmerenew.jpg

手动复制两个文件(m.cuiwei.net.key,m.cuiwei.net.pem)到指定位置,就可以使用了

https://github.com/acmesh-official/acme.sh/wiki/DNS-manual-mode

参考

https://github.com/acmesh-official/acme.sh/wiki/说明

https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 生成证书
    • http 方式,需要在你的网站根目录下放置一个文件
      • 手动 dns 方式,手动在域名上添加一条 txt 解析记录
      • 参考
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档