标签: lets-encrypt

让我们通过 HTTPS 加密 certbot 验证

来自Certbot webroot 插件的文档

webroot 插件通过为您请求的每个域创建一个临时文件来工作${webroot-path}/.well-known/acme-challenge然后让我们加密验证服务器发出 HTTP 请求,以验证每个请求域的 DNS 是否解析为运行 certbot 的服务器。

在私人使用的家庭服务器上,我禁用了端口 80,即路由器中没有启用端口转发。我无意打开那个端口。

如何告诉 certbot 验证服务器不应发出 HTTP 请求,而是发出 HTTPS(端口 443)请求来验证域的所有权?

验证服务器甚至不需要验证主服务器的证书,因为它默认已经使用 HTTP。我可能有一个自签名证书,或者需要续订的证书,但这应该无关紧要。

目前我处于需要启用端口 80 转发以及其上的服务器以创建/更新证书的情况。这不允许我使用 cronjob 来更新证书。好吧,只要有足够的工作就可以了,但是我已经有一台服务器在监听 443,它也可以完成这项工作。

ssl lets-encrypt

17
推荐指数
1
解决办法
8019
查看次数

Certbot 让加密在与 443 不同的端口上

我想在 443 以外的不同端口上为网络服务器设置 certbot。运行时出现以下错误

certbot --apache -d <sub>.<domain>.<ext>
Run Code Online (Sandbox Code Playgroud)

授权程序失败。sub.domain.ext (tls-sni-01): urn:acme:error:connection :: 服务器无法连接到客户端以验证域 :: 无法连接到 external_ip:443 以进行 TLS-SNI-01 质询

在这个错误之后,我阅读了手册页,在那里我发现了这个:

--tls-sni-01-port TLS_SNI_01_PORT 执行 tls-sni-01 质询的端口号。测试模式下的 Boulder 默认为 5001。(默认值:443)

然后我尝试了以下方法来纠正这个错误:

certbot --apache --tls-sni-01-port 14831 -d <sub>.<domain>.<ext>
Run Code Online (Sandbox Code Playgroud)

添加 tls-sni-01-port 后,我​​得到了同样的错误。

是否可以使用不同的端口安装证书,或者我做错了什么?

ssl-certificate apache-2.4 lets-encrypt certbot

17
推荐指数
2
解决办法
5万
查看次数

使用 certbot 和使用 DNS 质询更新域

我使用独立方法为多个域创建了多个 SSL 证书。我只对证书感兴趣,没有服务器集成。

他们现在正在更新。所以,我跑了:

certbot -d example.com --manual --preferred-challenges dns certonly
Run Code Online (Sandbox Code Playgroud)

并遵循每个域的说明(为每个域添加所需的 DNS 条目)。这样,我不必停止服务器并获得我的新证书。

我对这一切的(模糊)理解是,目前没有使用 DNS 质询自动更新证书的方法。或者您可能无法为“手动”方法自动更新证书?

无论如何,我写了这个脚本:

#!/bin/bash

for i in renewal/*;do
  n=${i:8:-5};
  echo $n;
  # echo "\n" | certbot --text --agree-tos -d $n --manual --preferred-challenges dns --expand --renew-by-default  --manual-public-ip-logging-ok certonly;
done
Run Code Online (Sandbox Code Playgroud)

此时,在renewal目录中所有域都有:

验证器 = 手册

和:

pref_challs = dns-01
Run Code Online (Sandbox Code Playgroud)

问题:

  • 现在......当我运行“certbotrenew”时,它会在不使用我的脚本的情况下自动更新所有这些吗?

  • 如何开始使用 DNS 质询实际创建新证书?

lets-encrypt certbot

14
推荐指数
1
解决办法
5万
查看次数

为什么我的 Let's Encrypt 证书包含对 Cloudflare 的引用?

我拥有一个使用 Let's Encrypt 证书的网站。它不在 Cloudflare 后面,而是托管在 OVH,我接受来自它的直接流量。

现在,我设置了一个 apache2 Web 服务器并使用 certbot 自动生成证书。这里的问题是,当我在 Firefox 上查看证书信息时,我可以在页面底部看到它包含对“Cloudflare Nimbus2023”的引用,尽管我没有使用他们的服务。

下面所附的图片是它所显示的...... 图片在这里(由于某种原因,它不允许我附上图片)

谁能向我解释一下这是什么?Cloudflare 在这里访问什么?

cloudflare ovh lets-encrypt apache2 certbot

14
推荐指数
1
解决办法
3930
查看次数

Let's Encrypt SSL Certificate File Not Found 错误,但仍然有效

我正在运行Let's Encrypt 的SSL 证书。我已经在运行 Apache 的 Ubuntu 机器上安装了它们。设置工作正常,我可以启动网站,看到绿色挂锁,甚至在 SSL Labs 上获得了 A+。

问题是,当我执行apachectl configtest 时,服务器会返回一个找不到文件的错误:

SSLCertificateFile: file '/etc/letsencrypt/live/www.example.com/fullchain.pem' not exist or is empty.
Run Code Online (Sandbox Code Playgroud)

sudo service apache2 restart工作得很好。

我在Let's Encrypt Community遇到了这个问题,但问题尚未解决。

sudo cat /etc/letsencrypt/live/www.example.com/fullchain.pem 有效,返回有效的证书详细信息。

sudo x509 -text -noout -in /etc/letsencrypt/live/www.example.com/fullchain.pem
Run Code Online (Sandbox Code Playgroud)

不起作用并返回以下错误:

Error opening Certificate /etc/letsencrypt/live/www.example.com/fullchain.pem
139774254929568:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('/etc/letsencrypt/live/www.example.com/fullchain.pem.','r')
139774254929568:error:2007402:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
ubable to load certificate
Run Code Online (Sandbox Code Playgroud)

关于为什么我在apachectl configtestopenssl上遇到错误的任何想法?

谢谢你们!

ssl ssl-certificate apache-2.4 lets-encrypt

13
推荐指数
2
解决办法
1万
查看次数

如何使用letsencrypt设置coturn

给出这个设置:一个 Nginx 正在提供一个 .well-known 文件夹,监听服务器上的端口 80/443,以将 chellange 交换为 Letsencrypt。证书创建正确,可以在提到的 Nginx 中使用。

尝试通过 coturn 使用证书时:

listening-port=3478
tls-listening-port=5349
alt-listening-port=3479
alt-tls-listening-port=5350
…
cert=/path/to/fullchain.pem
pkey=/path/to/privkey.pem
Run Code Online (Sandbox Code Playgroud)

现在尝试启动 coturn 时,它似乎没有找到/无法从日志加载证书:

WARNING: cannot start TLS and DTLS listeners because private key file is not set properly
WARNING: cannot find private key file: /path/to/privkey.pem
WARNING: cannot start TLS and DTLS listeners because certificate file is not set properly
WARNING: cannot find certificate file: /path/to/fullchain.pem
Run Code Online (Sandbox Code Playgroud)

现在我想知道使用 letencrypt SSL 链设置 coturn 的正确方法是什么。

lets-encrypt

13
推荐指数
1
解决办法
6497
查看次数

让我们加密:仅从证书中删除一个主机名

我有以下证书:

# certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Found the following certs:
 Certificate Name: domain.example
  Domains: domain.example imap.domain.example mail.domain.example pop.domain.example smtp.domain.example www.domain.example
  Expiry Date: 2019-09-09 03:34:20+00:00 (VALID: 62 days)
  Certificate Path: /etc/letsencrypt/live/domain.example/fullchain.pem
  Private Key Path: /etc/letsencrypt/live/domain.example/privkey.pem
Run Code Online (Sandbox Code Playgroud)

现在我想做的是从证书中删除domain.example和,因为 Web 服务器已移动到另一个实例。www.domain.example事实上,DNS 条目已更改意味着,如果domain.examplewww.domain.example仍然是证书的一部分,则续订过程将会失败,因为 DNS 条目现在指向另一个 IP。

如何从 Let's Encrypt 证书中删除某些主机名,而不删除证书并创建新证书?

ssl ssl-certificate lets-encrypt

10
推荐指数
2
解决办法
1万
查看次数

Google Chrome 认为 A+ 评级仍然不安全

我在DigitalOcean上配置我的服务器,虽然我从 ssllabs 获得了 A+ 评级,

https://www.ssllabs.com/ssltest/analyze.html?d=zandu.biz

当我连接到我的网站https://www.zandu.bizhttps://zandu.biz 时,我在 Chrome 中收到不安全通知。

我该如何解决这个问题?

ssl apache-2.4 lets-encrypt

10
推荐指数
1
解决办法
5421
查看次数

包含两个通配符的 SSL 证书是否有效(尤其是在 Let's Encrypt 上)?

我想在(将)由 Let's Encrypt: 签名的 SSL 证书中包含两个通配符*.*.thost3.de。该证书是否会与匹配该规则的任何主机名(例如example.example.thost3.dehello.world.thost3.de)相匹配,并且 Let's Encrypt 是否可以接受他们签署的证书中存在此类通配符?

ssl-certificate wildcard-subdomain lets-encrypt

10
推荐指数
1
解决办法
1557
查看次数

使用 Certbot 添加 SSL 证书时如何指定 80 以外的端口?

我有一台运行 2 个不同 Web 服务器(Apache 和 Nginx)的服务器。Apache 服务器负责处理定向到 Wordpress 站点的所有流量,而 Nginx 服务器则为我的 Python API 和 React Web App 提供服务。

由于与 Apache 的端口冲突,我必须将 API 设置为在端口 88 上运行,将 React 应用程序设置为在端口 90 上运行。我用这种方式进行了测试,结果成功了。所有请求都会转发到 443,所以我认为不安全端口是什么并不重要。

当我最终运行命令来添加证书时:

sudo certbot --nginx -d a.domain.com
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误。经过进一步检查,我发现它试图在端口 80 而不是 88 上打开域。我做了一些研究并找到了规则--http-01-port并将其设置为 88,但它再次给了我同样的错误:

sudo certbot --nginx --http-01-port 88 -d a.domain.com
Run Code Online (Sandbox Code Playgroud)

经过多次尝试后,我担心 certbot 可能很快就会因为怀疑垃圾邮件而阻止我几个小时或几天,而我已经没有可能的解决方案了。

以前有人处理过这个吗?你是怎么解决这个问题的?

port lets-encrypt certbot

9
推荐指数
1
解决办法
5万
查看次数