-
-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
lego 使用记录 #336
Comments
lego 生成证书sudo ALICLOUD_ACCESS_KEY=123 \ # 设置阿里云的访问密钥ID为123,用于身份验证
ALICLOUD_SECRET_KEY=123 \ # 设置阿里云的密钥为123,与访问密钥ID配合使用进行身份认证
lego --server=https://acme-staging-v02.api.letsencrypt.org/directory \ # 使用lego客户端并指定ACME服务器地址为Let's Encrypt的Staging环境。正式运行时移除改行,这是测试时使用的,防止触发 rate limit
--path /home/ubuntu/lego/data \ # 设置lego客户端的工作目录路径,用于存储生成的证书等数据
-a \ # 同意服务条款
--email [email protected] \ # 设置接收警告和通知的邮箱地址
--dns alidns \ # 使用阿里云DNS服务进行域名验证
-d example.host \ # 指定需要为之生成证书的域名
-d *.example.host \ # 指定需要为之生成证书的域名(此例为通配符证书)
--http \ # 使用HTTP挑战方式验证域名所有权
run \ # 执行主操作流程,包括验证和证书申请
--run-hook /home/ubuntu/lego/hook.sh # 操作完成后执行的钩子脚本路径 这样执行后会生成名为 然后添加 crontab 任务用于续期:
和上面的不同点就是
#!/bin/bash
nginx_cert_dir="/etc/nginx/ssl"
echo $LEGO_CERT_DOMAIN
if [ "$LEGO_CERT_DOMAIN" = "example.host" ]; then
install "$LEGO_CERT_PATH" "$nginx_cert_dir"
install "$LEGO_CERT_KEY_PATH" "$nginx_cert_dir"
systemctl restart nginx
fi
echo over nginx 配置形如:
小 tip按照 Let's Encrypy 协议,生成的证书应该为以下部分:
lego 生成的不太一样:
正常咱们直接用 详情可以看下官方仓库 issue 解释: go-acme/lego#1264 (comment) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
类似于 acme.sh, lego 也是用于签发证书的工具,采用 go 语言实现(acme.sh 是用 shell 写的,阅读困难)。
lego 的命令、文档、代码实现都更加清晰明了,推荐使用。
安装直接看官方文档,用包管理器就行: https://go-acme.github.io/lego/installation/index.html
我是 Ubuntu 系统,但是 lego 官方只维护了 snap 包,而 snap 包安装的 lege 只能写
/var/snap/lego/common/.lego
目录,--run-hook
命令指定的 shell 是没有权限把证书复制到其他目录的。所以我是手动安装的:
# gg 是代理,好用,推荐 gg wget https://github.com/go-acme/lego/releases/download/v4.19.2/lego_v4.19.2_linux_amd64.tar.gz tar -xzvf lego_v4.19.2_linux_amd64.tar.gz sudo mv lego /usr/bin/
The text was updated successfully, but these errors were encountered: