Letsencrypt.org CA免费证书生成
Letsencrypt.org CA免费证书使用
Let's 支持多中客户端,这里使用acme.sh客户端配置免费证书。
acme.sh优点:
- 纯用Shell(Unix外壳)语言编写的ACME协议客户端。
- 完整的ACME协议实施。
- 支持ACME v1和ACME v2
- 支持ACME v2通配符证书
- 简单,强大且非常易于使用。您只需要3分钟即可学习。
- Bash,破折号和sh兼容。
- 让我们加密免费证书客户端的最简单的shell脚本。
- 完全用Shell编写,不依赖python或官方的Let's Encrypt客户端。
- 只需一个脚本即可发布,续订和自动安装证书。
- 不需要
root/sudoer
访问。 - Docker友好
- IPv6支持
- 以进行续订或错误等Cron作业通知。
使用:
acme.sh安装:
1、 在线安装
curl 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
程序将执行3个操作:
- 创建和复制
acme.sh
到你的主目录($HOME
)~/.acme.sh/
。所有证书也将放置在此文件夹中。 - 为创建别名
acme.sh=~/.acme.sh/acme.sh
。 - 如果需要,创建每日cron作业以检查并更新证书。
cron 示例:
$HOME 为用户目录,注意修改为自己的实际用户目录
0 0 * * * "$HOME/.acme.sh"/acme.sh --cron --home "$HOME/.acme.sh" > /dev/null
几种生成证书的情形:
-
只需颁发证书
acme.sh --issue -d example.com -w /home/wwwroot/example.com or: acme.sh --issue -d example.com -w /home/username/public_html or: acme.sh --issue -d example.com -w /var/www/html
-
同证书下多个子域名
acme.sh --issue -d example.com -d www.example.com -d cp.example.com -w /home/wwwroot/example.com
-w 参数为web服务的根路径,必须要具备此文件的写权限
证书将被放置在 ~/.acme.sh/example.com/
证书将每60天自动更新一次。
-
将证书安装到Apache / Nginx等。
Apache example:
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 example:
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 模式
如果您正在运行Web服务器(Apache或Nginx),建议使用Webroot mode。 acme.sh --issue --apache -d example.com -d www.example.com -d cp.example.com 此模式不会讲任何文件些人web根文件夹,第二个参数指定使用apache 模式,将强制使用apache插件。 此apache模式仅用于颁发证书,不会更改您的apache配置文件。您将需要配置您的网站配置文件以自己使用证书。我们不会乱您的apache服务器,不用担心。
[更多示例](https : //github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert)
-
使用Nginx模式
同apache 模式一样,如果正在使用web服务器nginx,推荐使用这种方式,只需将第二参数指定为nginx 即可 acme.sh --issue --nginx -d example.com -d www.example.com -d cp.example.com
注意事项:指定插件方式,注意将nginx,apacha的命令配置到了环境变量路径下,可以直接使用nginx,httpd执行命令
-
发行通配符证书
acme.sh --issue -d example.com -d ' * .example.com '-- dns dns_cf
-
续订证书
默认所有证书将每60天自动更新换一次,但是也可以强行更新: acme.sh --renew -d example.com --force
-
如何停止证书续订
acme.sh --remove -d example.com [--ecc]
-
如何升级acme.sh
acme.sh正在不断开发中,因此强烈建议使用最新代码。
您可以将acme.sh更新为最新代码:
acme.sh --upgrade
您还可以启用自动升级:
acme.sh --upgrade --auto-upgrade
然后acme.sh将自动保持最新。
禁用自动升级:
acme.sh --upgrade --auto-upgrade 0