You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用EAB密钥在Certbot获取SSL证书及Angular应用HTTPS配置问题

无法通过Certbot的dns-google插件获取ACME SSL证书

操作流程

  • 安装Certbot等ACME客户端
  • 执行注册命令(对接Google Trust Services,使用EAB密钥):

certbot register --email <你的邮箱> --no-eff-email --server "https://dv.acme-v02.api.pki.goog/directory" --eab-kid "<EAB_KEY_ID>" --eab-hmac-key "<EAB_HMAC_KEY>"

需将`<你的邮箱>`、`<EAB_KEY_ID>`、`<EAB_HMAC_KEY>`替换为Google Domains获取的对应值
- 执行证书获取命令(通过Google Cloud DNS自动完成dns-01验证):
```bash
certbot certonly --preferred-challenges dns-01 --dns-google -d <你的域名>

需将<你的域名>替换为实际域名

问题详情

执行证书获取命令时,触发以下错误:

Saving debug log to C:\Certbot\log\letsencrypt.log
The requested dns-google plugin does not appear to be installed

已通过pip3 show certbot-dns-google检查插件安装状态,但问题未解决。

环境信息

  • 操作系统:Windows 10
  • Python版本:3.12.1
  • 已通过官网安装包及pip install certbot-dns-google命令完成Certbot与插件安装,目标对接Nginx服务器

Angular应用HTTPS配置参考

  • Google Domain配置:登录Google Domains,进入「Security」菜单,点击「Manage SSL certificates」,购买SSL证书后从「Google Trust Services」获取EAB密钥
  • 证书获取:参照上述ACME流程
  • Nginx部署配置:配置Nginx启用HTTPS,指定SSL证书(.crt)和私钥(.key)的本地路径
  • Angular项目配置:修改angular.json,开启HTTPS模式,设置baseHref为HTTPS域名,开发环境下启用useHash:

"build": {
"options": {
"useHash": true
}
}

- **构建与部署**:执行`ng build --prod`生成生产环境包,部署至服务器

## 解决方案(针对dns-google插件未识别问题)
### 1. 验证Python环境兼容性
Python 3.12属于较新版本,部分Certbot插件可能存在兼容性适配延迟。可尝试:
- 降级Python至3.11版本(Certbot官方推荐的稳定兼容版本)
- 改用Certbot官方Windows安装包(而非pip安装),安装包会自动配置兼容的插件依赖

### 2. 统一Python环境路径
Windows下多Python环境共存可能导致pip安装的插件不在Certbot运行的环境中:
- 执行`where certbot`查看Certbot的执行路径
- 执行`where pip`确认pip所属的Python环境,确保与Certbot路径一致
- 若环境不一致,使用对应环境的Python执行安装命令:`python -m pip install certbot-dns-google`

### 3. 手动指定插件路径
若插件已安装但Certbot无法识别,可在命令中手动指定插件位置:
```bash
certbot certonly --preferred-challenges dns-01 --dns-google --dns-google-credentials <Google Cloud服务密钥路径> -d <你的域名> --plugins certbot-dns-google:<插件安装路径>

插件安装路径可通过pip show certbot-dns-google输出中的Location字段获取

4. Docker容器运行方案(替代)

若上述方法均无效,可使用Docker隔离环境运行Certbot,规避系统环境冲突:

docker run -it --rm -v "/etc/letsencrypt:/etc/letsencrypt" -v "/var/lib/letsencrypt:/var/lib/letsencrypt" certbot/dns-google certonly --preferred-challenges dns-01 --dns-google-credentials <Google Cloud服务密钥路径> -d <你的域名>

需提前准备Google Cloud服务密钥文件,并确保Windows上已安装Docker Desktop

内容的提问来源于stack exchange,提问作者Soujanya Joshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 08:57:48