• 欢迎访问举个栗子网站
  • 小说APP下载 xsz.tw 不带广告的小说站

ACME Shell脚本:acme.sh 安装使用

软件 举个栗子 2年前 (2018-03-22) 1399次浏览 0个评论 扫描二维码

ACME Shell 脚本:acme.sh 构建状态

通过 https://gitter.im/acme-sh/Lobby 加入聊天室

  • 纯粹以 Shell(Unix shell)语言编写的 ACME 协议客户端。
  • 完整的 ACME 协议实现。
  • 支持 ACME v1 和 ACME v2
  • 支持 ACME v2 通配符证书
  • 简单,功能强大且非常易于使用。你只需要 3 分钟就可以学会。
  • Bash,短跑和 sh 兼容。
  • Let’s Encrypt 免费证书客户端最简单的 shell 脚本。
  • 纯粹用 Shell 编写,不依赖 python 或官方 Let’s Encrypt 客户端。
  • 只需一个脚本即可自动发布,续订和安装证书
  • 不需要root/sudoer访问。
  • Docker 友好
  • IPv6 支持

它可能是最简单和最聪明的 shell 脚本,可以自动发出并更新免费的证书,让我们加密。

Wiki:https//github.com/Neilpang/acme.sh/wiki

对于 Docker 粉丝:acme.shACME Shell 脚本:acme.sh 安装使用 搬运工人

Twitter:@neilpangxa

中文说明

那些支持:

测试操作系统

NO Status Platform
1 Ubuntu
2 Debian
3 CentOS
4 Windows (cygwin with curl, openssl and crontab included)
5 FreeBSD
6 pfsense
7 openSUSE
8 Alpine Linux (with curl)
9 Archlinux
10 fedora
11 Kali Linux
12 Oracle Linux
13 Proxmox https://pve.proxmox.com/wiki/HTTPSCertificateConfiguration#Let.27s_Encrypt_using_acme.sh
14 —– Cloud Linux https://github.com/Neilpang/le/issues/111
15 OpenBSD
16 Mageia
17 —– OpenWRT: Tested and working. See wiki page
18 SunOS/Solaris
19 Gentoo Linux
20 Build Status Mac OSX

对于所有构建状态,请查看我们的每周构建项目

https://github.com/Neilpang/acmetest

支持的模式

1.如何安装

1.在线安装

检查这个项目:https//github.com/Neilpang/get.acme.sh

卷曲 https://get.acme.sh | SH

要么:

wget -O  -  https://get.acme.sh | SH

2.或者,从 git 安装

克隆此项目并启动安装:

git clone https://github.com/Neilpang/acme.sh.git
 cd ./acme.sh
./acme.sh --install

don't have to be root然后,你,虽然it is recommended

高级安装:https//github.com/Neilpang/acme.sh/wiki/How-to-install

安装程序将执行 3 个操作:

  1. 创建和复制acme.sh到你的主目录($HOME~/.acme.sh/。所有证书也将被放置在这个文件夹中。
  2. 为:创建别名acme.sh=~/.acme.sh/acme.sh
  3. 创建每日 cron 作业,根据需要检查和更新证书。

Cron 输入示例:

0 0 *  *  *   /home/user/.acme.sh  /acme.sh --cron --home  /home/user/.acme.sh   >的/ dev / null 的

安装完成后,您必须关闭当前终端并重新打开,以使别名生效。

好的,您现在已准备好颁发证书。

显示帮助信息:

root @ v1:# acme.sh -h

2.只需签发证书

示例 1:单个域。

acme.sh --issue -d example.com -w /home/wwwroot/example.com

要么:

acme.sh --issue -d example.com -w / home / username / public_html

要么:

acme.sh --issue -d example.com -w / var / www / html

示例 2:同一证书中的多个域。

acme.sh --issue -d example.com -d www.example.com -d cp.example.com -w /home/wwwroot/example.com

参数/home/wwwroot/example.com/home/username/public_htmlor /var/www/html是您托管网站文件的 Web 根文件夹。你必须write access这个文件夹。

第二个参数“example.com”是您希望颁发证书的主要域。您必须至少有一个域名。

您必须将所有域指向并绑定到同一个 webroot 目录:/home/wwwroot/example.com

证书将被放入 ~/.acme.sh/example.com/

证书将每60天自动更新一次。

更多示例:https//github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert

3.将证书安装到 Apache / Nginx 等。

证书生成后,您可能想要将证书安装/复制到 Apache / Nginx 或其他服务器。您必须使用此命令将证书复制到目标文件,请勿使用〜/ .acme.sh /文件夹中的证书文件,它们仅供内部使用,将来可能会更改文件夹结构。

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 force-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 force-reload 

只有域是必需的,所有其他参数都是可选的。

现有文件的所有权和许可信息将被保留。您可以预先创建文件来定义所有权和权限。

安装/将证书/密钥复制到生产 Apache 或 Nginx 路径。

该证书默认每60天更新一次(可配置)。一旦证书更新,Apache / Nginx 服务将通过以下命令自动重新加载:service apache2 force-reloadservice nginx force-reload

请注意:reloadcmd 非常重要。证书可以自动更新,但是,如果没有正确的’reloadcmd’证书可能不会刷新到您的服务器(如 nginx 或 apache),那么您的网站将无法在 60 天内显示更新的证书。

4.使用独立服务器颁发证书

(要求您是 root / sudoer 或者有权在端口 80(TCP)上侦听)

端口80(TCP)必须可以自由侦听,否则会提示您释放它并重试。

acme.sh --issue --standalone -d example.com -d www.example.com -d cp.example.com

更多示例:https//github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert

5.使用 Apache 模式

(需要你是 root / sudoer,因为它需要与 Apache 服务器交互)

如果您正在运行 Web 服务器,Apache 或 Nginx,建议使用Webroot mode

特别是,如果您运行的是 Apache 服务器,则可以使用 Apache 模式。此模式不会将任何文件写入您的 Web 根文件夹。

只需将字符串“apache”设置为第二个参数,它将自动强制使用 apache 插件。

acme.sh --issue --apache -d example.com -d www.example.com -d cp.example.com

这个 apache 模式只是颁发证书,它不会改变你的 apache 配置文件。您将需要配置您的网站配置文件以使用您自己的证书。我们不想搞乱你的 apache 服务器,不用担心。

更多示例:https//github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert

6.使用 Nginx 模式

(需要你是 root / sudoer,因为它需要与 Nginx 服务器交互)

如果您正在运行 Web 服务器,Apache 或 Nginx,建议使用Webroot mode

特别是,如果您运行的是 nginx 服务器,则可以使用 nginx 模式。此模式不会将任何文件写入您的 Web 根文件夹。

只需将字符串“nginx”设置为第二个参数即可。

它会自动配置 nginx 服务器来验证域,然后将 nginx 配置恢复到原始版本。

所以,配置没有改变。

acme.sh --issue --nginx -d example.com -d www.example.com -d cp.example.com

这个 nginx 模式只是颁发证书,它不会改变你的 nginx 配置文件。您将需要配置您的网站配置文件以使用您自己的证书。我们不想搞乱你的 nginx 服务器,不用担心。

更多示例:https//github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert

7.自动集成 DNS API

如果您的 DNS 提供商支持 API 访问,我们可以使用该 API 自动颁发证书。

你不必手动做任何事情!

目前 acme.sh 支持:

  1. CloudFlare.com API
  2. DNSPod.cn API
  3. CloudXNS.com API
  4. GoDaddy.com API
  5. PowerDNS.com API
  6. OVH,kimsufi,soyoustart 和 runabove API
  7. nsupdate API
  8. LuaDNS.com API
  9. DNSMadeEasy.com API
  10. AWS Route 53
  11. aliyun.com(阿里云)API
  12. ISPConfig 3.1 API
  13. Alwaysdata.com API
  14. Linode.com API
  15. FreeDNS(https://freedns.afraid.org/
  16. cyon.ch
  17. Domain-Offensive / Resellerinterface / Domainrobot API
  18. Gandi LiveDNS API
  19. 结 DNS API
  20. DigitalOcean API(本机)
  21. ClouDNS.net API
  22. Infoblox NIOS API(https://www.infoblox.com/
  23. VSCALE(https://vscale.io/
  24. Dynu API(https://www.dynu.com
  25. DNSimple API
  26. NS1.com API
  27. DuckDNS.org API
  28. Name.com API
  29. Dyn 托管 DNS API
  30. Yandex PDD API(https://pdd.yandex.ru
  31. 飓风电动 DNS 服务(https://dns.he.net
  32. UnoEuro API(https://www.unoeuro.com/
  33. INWX(https://www.inwx.de/
  34. Servercow(https://servercow.de
  35. Namesilo(https://www.namesilo.com
  36. InternetX autoDNS API(https://internetx.com
  37. Azure DNS
  38. selectel.com(selectel.ru)DNS API
  39. zonomi.com DNS API
  40. DreamHost.com API
  41. DirectAdmin API

和:

词典 DNS API:https//github.com/Neilpang/acme.sh/wiki/How-to-use-lexicon-dns-api (DigitalOcean,DNSimple,DNSMadeEasy,DNSPark,EasyDNS,Namesilo,NS1,PointHQ,Rage4 和 Vultr 等)

更多 API 即将推出…

如果您的 DNS 提供商不在上面的支持列表中,您可以轻松编写自己的 DNS API 脚本。如果这样做,请考虑提交合并请求并将其提供给项目。

有关更多详细信息:如何使用 DNS API

8.使用 DNS 手动模式:

如果您的 dns 提供程序不支持任何 api 访问,您可以手动添加 txt 记录。

acme.sh --issue --dns -d example.com -d www.example.com -d cp.example.com

你应该得到如下的输出:

Add the following txt record:
Domain:_acme-challenge.example.com
Txt value:9ihDbjYfTExAYeDs4DBUeuTo18KBzwvTEjUnSwd32-c

Add the following txt record:
Domain:_acme-challenge.www.example.com
Txt value:9ihDbjxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Please add those txt records to the domains. Waiting for the dns to take effect.

然后重新运行renew参数:

acme.sh --renew -d example.com

好的,完成了。

注意,这是 dns 手动模式,不能自动更新。当您续签证书时,您将不得不在手中添加新的 txt 记录到您的域名。

请改用 dns api 模式。

9.发行 ECC 证书

Let's Encrypt现在可以颁发ECDSA证书。

我们也支持他们!

只需keylength使用前缀设置参数即可ec-

例如:

单域 ECC 证书

acme.sh --issue -w /home/wwwroot/example.com -d example.com --keylength ec-256

SAN 多域 ECC 证书

acme.sh --issue -w /home/wwwroot/example.com -d example.com -d www.example.com --keylength ec-256

请看keylength上面的参数。

有效值是:

  1. ec-256(prime256v1,“ECDSA P-256”)
  2. ec-384(secp384r1,“ECDSA P-384”)
  3. ec-521(secp521r1,“ECDSA P-521”,目前尚未得到 Let’s Encrypt 的支持。)

10.发出通配符证书

很简单,只需要一个通配域作为-d参数。

acme.sh --issue -d example.com -d ' * .example.com '--   dns dns_cf

11.如何更新证书

不,你不需要手动更新证书。所有证书将每60天自动更新一次。

但是,您也可以强制更新证书:

acme.sh --renew -d example.com --force

或者对于 ECC 证书:

acme.sh --renew -d example.com --force --ecc

12.如何停止证书续订

要停止更新证书,您可以执行以下操作以从更新列表中删除证书:

acme.sh --remove -d lizi.tw [--ecc]

证书/密钥文件不会从磁盘中删除。

你可以自己删除相应的目录(例如~/.acme.sh/lizi.tw)。

13.如何升级 acme.sh

acme.sh 正在不断发展,所以强烈建议使用最新的代码。

您可以将 acme.sh 更新为最新的代码:

acme.sh --upgrade

您也可以启用自动升级:

acme.sh --upgrade --auto-upgrade

然后acme.sh会自动保持最新。

禁用自动升级:

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

14.从现有的 CSR 颁发证书

https://github.com/Neilpang/acme.sh/wiki/Issue-a-cert-from-existing-CSR

15.在底层

使用 shell 运行 ACME,直接到“Let’s Encrypt”。

去做:

16.致谢

  1. Acme-tiny:https//github.com/diafygi/acme-tiny
  2. ACME 协议:https//github.com/ietf-wg-acme/acme

17.许可证及其他

许可证是 GPLv3

欢迎问题和发出请求

非常欢迎提出问题发出请求

18.捐赠

你的捐款使acme.sh更好:

  1. PayPal / Alipay(支付宝)/ Wechat(微信):https//donate.acme.sh/

捐赠清单


举个栗子 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:ACME Shell 脚本:acme.sh 安装使用
喜欢 (0)
举个栗子
关于作者:
建筑工地上施工员,闲暇时弄个博客打发时间,
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址