问题标签 [acme]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
lets-encrypt - 无法将 acme.sh 与 tls-alpn-01 一起使用来更新或颁发证书
根据官方 ACME.SH 文档链接,颁发证书就像运行以下命令一样简单:
但是,我收到以下错误
我试过从默认切换ZeroSSL.com
到BuyPass.com
,但这没有帮助。这些提供者似乎不允许tls-alpn-01
验证方法,但它可能与我遗漏的东西有关。
PS:抢先回答一些问题:
- 我有一个有效域,已替换为“example.com”
- 该站点在 443 端口上运行,但
port 80
被 ISP 阻止,因此tls-alpn-01
- 我正在停止 Nginx,然后检查
netstat
端口 443 是否未绑定到服务。 - 当我使用
--debug 2
参数运行脚本时,我得到以下_authorizations_map
变量值
_authorizations_map='example.com,{"identifier":{"type":"dns","value":"example.com"},"status":"pending","expires":"2021-08-18T22 :53:50Z","挑战":[{"type":"http-01","url":"https://acme.zerossl.com/v2/DV90/chall/wYehJ8kQjUDiDadBJ12qKw", "状态": "待定","token":"Sfga2N2KwV-2hg3wo1gYAoyFvqV87dRvG2sHw4I6ups"},{"type":"dns-01","url":"https://acme.zerossl.com/v2/DV90/chall/CkrMQdEJthf-TmWvllW -Bg”,“状态”:“待定”,“令牌”:“_AlgMGzIfSQs7673Su-njnpieba_zLpSYxiUdXDEFnz”}]}'
tensorflow - 字典观察空间 Acme DQN 代理
我正在尝试使用masked_epsilon_greedy向我的dqn 代理添加非法操作屏蔽。有谁知道我如何更新策略网络以使用而不是“观察”,因为观察空间是一个包含观察和法律行动的字典?observation["your_key_for_observation"]
https - 为什么不能用acme写certificate.crt?
nginx 状态良好。
我想用 acme 创建和编写 certificate.crt:
CF_Key
是我在 cloudflare 中的全局 api 密钥,CF_Email
是登录 cloudflare 的注册电子邮件。
输出的内容太长,这里不能发,所以我上传到termbin.com,我们分享下面的链接:
请打开网页,你可以得到完整的输出信息,并检查导致错误的原因,主要有两个问题:
1.我的 nginx 服务器状态良好,acme.sh 检测不到。
2.如何设置配置文件?
将密钥写入指定目录:
它遇到问题:
签入文件/usr/local/etc/certfiles/
没有。certificate.crt
_
那怎么修呢?/usr/local/etc/certfiles/
kubernetes - 如何使用 getambassador 创建 TLS 证书?
由于某些原因,我正在尝试使用大使 1.13 版本。通过使用 LetsEncrypt 和大使方法创建证书:但它会产生一些错误:
错误-1:
错误 2:
我该如何解决这个问题?
下面的代码可以工作,但上面的大使版本不工作:
大使版本不工作:主机 CRD、ACME 支持和外部负载均衡器配置。详细信息: https ://www.getambassador.io/docs/edge-stack/1.13/topics/running/host-crd/
ssl - 为不同 IP 地址上的资源自动生成 ACME 子域 SSL 证书
我一直在研究迁移到使用Let's Encrypt来维护 SSL 证书的可能性,这些证书用于我们用于操作的各种资源。我们有以下使用 SSL 证书的资源:
- 主网站 (
www.example.com
/example.com
) - 由同样维护 SSL 证书的第三方托管和维护 - 客户端门户网站 (
client.example.com
) - 由我们在位于远程数据中心的服务器上托管和维护的 IIS 站点 - FTP 服务器 (
ftp.example.com
) - 由我们在位于远程数据中心的服务器上托管和维护的 WS_FTP 服务器 - 硬件防火墙 (
firewall.example.com
) - 我们内部网络的本地安全设备 - 远程桌面网关 (
rd.example.com
) - 我们在本地服务器上托管和维护的 RDP 服务器
如上所述,主网站 ( www
) 的 SSL 证书由第 3 方主机维护,所以我一般不会弄乱那个。但是,正如您所知,每个端点的 DNS 记录都指向各种不同的 IP 地址。这就是我对颁发和部署 SSL 证书的整个过程缺乏经验让我有点困惑的地方。
首先,由于我不管理或维护主网站,因此我目前正在从提供端点的服务器/服务中手动为每个端点生成 CSR——一个来自 IIS 服务器,另一个来自RDP 服务器,另一个来自 WS_FTP 服务器,一个来自硬件防火墙。手动过程虽然不是很耗时,但仍然需要我通过几个步骤来处理需要不同过程的不同服务器系统。
我考虑过使用 Let's Encrypt 的免费通配符 SSL 证书之一来覆盖所有这四个端点 ( *.example.com
),但我不想“干涉”我们的主要网站主机在这方面所做的事情。我意识到实际的证书本身是由客户端连接到的服务器提供的,所以这无关紧要(对吗?),但我可能仍然对每个子域端点的单独 SSL 证书更满意。
因此,我一直致力于使用Certes ACME 客户端库构建应用程序,以尝试自动处理从 CSR 到部署的整个 SSL 流程。但是,我遇到了一些障碍:
- 防火墙针对端口 80 上的连接进行了保护,因此我无法
HTTP-01
在设备本身上提供该子域 (fw.example.com) 的验证文件。FTP 服务器的子域 (ftp.example.com) 也是如此。 - 我的 DNS 由当前不提供 API 的提供商托管(他们说他们正在开发 API),因此我无法
DNS-01
通过将 TXT 记录写入区域文件来自动化验证过程。 - 我找到了
TLS-ALPN-01
验证方法,但我不确定这是否适合我尝试实现的用例。根据Let's encrypt(强调我的)中对该方法的描述:
这个挑战并不适合大多数人。它最适合希望执行基于主机的验证(如 HTTP-01)但希望完全在 TLS 层执行以分离关注点的 TLS 终止反向代理的作者。目前,这主要意味着大型托管服务提供商,但像 Apache 和 Nginx 这样的主流 Web 服务器有朝一日可以实现这一点(Caddy 已经这样做了)。
优点:
- 如果您无法使用端口 80,它会起作用。
- 它可以纯粹在 TLS 层执行。
缺点:
- Apache、Nginx 或 Certbot 不支持它,并且可能不会很快支持。
- 与 HTTP-01 一样,如果您有多个服务器,它们都需要使用相同的内容来回答。
- 此方法不能用于验证通配符域。
所以,根据我目前的研究和我的环境,我最大的三个问题是:
TLS-ALPN-01
验证方法是否是为每个子域生成单独的 SSL 证书的有效(甚至可用)选项?由于防火墙和 FTP 服务器目前无法在端口 80 上提供适当的文件,因此我看不到任何方法可以HTTP-01
对这些子域使用验证。无法使用 API 来自动化DNS-01
验证会使该方法通常比它的价值更麻烦。虽然我可能可以HTTP-01
对客户端门户进行验证 - 可能还有 RDP 服务器(我的研究还没有那么深入) - 我仍然需要手动处理其他两个子域。- 尝试为子域做通配符证书会更好吗?除了通过减少需要颁发的 SSL 证书的数量来“简化”流程之外,与为每个子域使用单独的证书相比,走这条路线是否有任何内在的好处?由于主站点由第 3 方托管/管理,并且(再次)我目前无法使用 API 来自动化
DNS-01
验证,我想我需要使用HTTP-01
验证。根据我的理解,这意味着我需要获得访问/权限才能创建响应文件,以及该服务器上的相应目录。 - 可以肯定的是,如果我要生成/部署通配符证书到子域,而主网站仍然使用自己的 SSL 证书,是否有可能引起某种“冲突”
www
?同样,我不认为是这种情况,但我想尽我所能避免在这种情况下引入更多的复杂性和/或问题。
elasticsearch - SSL 证书问题:无法获取本地颁发者证书(仅当证书由 Terraform 管理时)
我正在尝试在 Elasticsearch 集群上为客户端设置 HTTPS。当我通过以下命令使用 certbot 从集群生成 SSL 证书时,它工作正常:
我的 Elasticsearch 集群配置如下:
因此,我设法使用我的登录名和密码在我的 elasticsearch 上通过以下命令在 HTTPS 中进行身份验证:
我的问题是我现在想做同样的操作,但是通过 Terraform 使用ACME 提供程序生成 SSL 证书 ,更准确地说是使用资源 "acme_certificate"。这是我的 Terraform 代码:
从 Terraform 资源“acme_certificate”我得到以下输出:
- “certificate_pem”将成为我的“cert.pem”文件(但我没有在我的 Elasticsearch 设置中使用它)
- “发行人_pem”
- “private_key_pem”将成为我的“privkey.pem”文件
因此,我错过了通过将“certificate_pem”和“issuer_pem”关联起来构建的“fullchain.pem”文件,如下所示(我的错误可能在那里):
我的“fullchain.pem”文件如下所示:
以与使用相同的方式cerbot
,我使用 Terraform 将我的证书注入 Elasticsearch 并验证 Elastic 用户是否具有正确的权限(使用chmod
andchown
命令) elasticsearch 服务重新启动正常,但是当我尝试连接时它给了我以下错误:
我不明白问题是什么,我的印象是 Terraform 返回的证书不正确。但是当我用 cerbot 测试它们的有效性时,一切似乎都很好:
谢谢你的帮助 !
docker - 从 traefik 到 PowerDNS 的 DNS 挑战
尝试设置 DNS 质询以获取通配符证书。
这是我们的环境变量的样子:
这是它输出的日志:
已经尝试增加DELAYBEFORECHECK
和设置一个RESOLVER
没有成功。
在 PowerDNS 中正确创建了 ACME 挑战:
可能有人可以提供帮助或对如何完成这项工作有想法?
kubernetes - 在 k8s 中使用 LetsEncrypt 和集群颁发者的证书始终处于“假”状态
我无法在 k8s 中为我的入口主机颁发工作证书。我使用 ClusterIssuer 来颁发证书,并且同一个 ClusterIssuer 过去曾为我的域名 *xyz.com 下的入口主机颁发证书。但是突然之间,我既不能为我的主机名颁发状态为“True”的新证书,也不能创建正确的证书机密(kubernetes.io/tls)(而是创建了一个不透明的机密)。
我检查了证书请求,它不包含任何事件。我也看不到任何挑战。我在下面添加了日志。任何帮助,将不胜感激
这是 ingress.yaml
这是集群发行者:
kubernetes - 带有证书管理器的 K8s 内部 ACME 服务器,仅用于发布内部 k8s 证书-htttp 挑战问题
是否可以使用 cert-manager 仅在一个命名空间中具有 ACME 服务器的集群中为有效负载生成证书?据我了解,cert-manager 尝试通过退出集群和进入集群来访问 dns 名称以进行 http chalange,但是如果我不想离开集群怎么办?我不希望 cert-manager 创建 Ingress 资源。让整个挑战发生在集群内部。
我的情况:
- 我的一个命名空间中有 ACME 服务器(step-ca)
- 我需要在另一个命名空间中为我的 POD 创建证书,例如通用名称“${app}.${namespace}”
备注:在我的情况下,由于板上的 istio,问题更加复杂。对于入口流量,cert-manager 可以与内部 ACME 服务器正常工作,但对于出口流量,我需要通过 stunnel(在每个 POD 中)才能到达外面的 Squid,我需要这些证书用于 stunnel。
django - 如何使用 Traefik 的 dnsChallange 获得“www.*.example.org”的证书?
使用下面的配置,颁发的证书适用于www.example.org
和abc.example.org
.but 不适用于www.abc.example.org
.
在 DNS 中,我有和的A
记录。example.org
*.example.org
是否有可能同时获得适用的www.*.example.org
证书*.example.org
?