标签: lets-encrypt

重复使用 LetsEncrypt DNS 质询

使用 LetsEncrypt 时,必须每 90 天更新一次证书。每次续订证书时,都必须再次证明证书中包含的域的所有权。

可以通过添加_acme-challengeDNS 记录来做到这一点。是否可以在第一次用于验证时设置此 DNS 记录,并在后续验证中重复使用它,这样就不必在每次需要更新证书时设置新的 DNS 记录?

lets-encrypt

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

如何授予对 SVN 服务器 (Apache 2.2) 上“/.well-known”目录的访问权限

我不知道如何禁用.well-known目录的身份验证。

当我删除 SVN 特定指令(DAV、SVNPath、AuthzSVNAccessFile)时,事情会按预期运行。

<VirtualHost *:443>
  ServerName www.example.com
  DocumentRoot "C:/www.example.com"
  ServerAdmin admin@example.com

  SSLEngine On
  SSLCertificateFile "C:/Apache2/conf/ssl/www.example.com.crt"
  SSLCertificateKeyFile "C:/Apache2/conf/ssl/www.example.com.key"

  <Location />
    DAV svn
    SVNPath "C:/svnrepo"
    SSLRequireSSL 

    AuthName "www.example.com"
    AuthType Basic
    AuthUserFile "conf/svn/svn-users.txt"
    AuthGroupFile "conf/svn/svn-groups.txt"
    AuthzSVNAccessFile "conf/svn/svn-access.txt"

    Require valid-user
  </Location> 

  <Location "/.well-known">    
    Satisfy Any
    Allow from all
    Require all granted
    # Apache 2.4 only
    #AuthType None
  </Location>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

编辑:如果我没有重叠的路径,它也会起作用。例如使用/svn/.well-known。不幸的是,这不是我现在可以轻易改变的事情。

mod-dav-svn apache-2.2 lets-encrypt

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

让我们加密:为什么 DNS 质询是静态的?

据我了解,LetsEncrypt DNS 验证的工作原理是在 DNS 中设置静态 TXT 记录(基本上只是一个随机数),然后由 LetsEncrypt 服务器检查。

当我第一次听说它时,我非常兴奋并期待更复杂的东西:公钥存储在我的域的 DNS 中。然后,为了进行验证,我创建一条签名消息,并且 LetsEncrypt 服务器检查签名是否有效。由于 DNS 中的公钥和私钥是我拥有的,这证明了我控制该域。

发现它不能以这种方式工作有点令人失望:它需要手动交互,甚至需要更新新的 TXT 记录。

不使用签名方法是否存在技术原因?如果没有,LetsEncrypt没有实现的原因是什么?

domain-name-system verification digital-signatures lets-encrypt

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

nginx 作为具有多个域和主机的反向代理

这个问题可能已经被问过好几次了,但是考虑到我能找到的所有结果和我所知甚少,我有点迷失了。我使用的是 Fedora 29。

我尝试用 nginx 做什么:

  • 使用一个让我们加密多个域名的 ssl 证书
  • 将每个域映射到特定的内部主机(配置文件中的 DNS 或 IP,我不介意,无论什么都可以)
  • 所有主机都已在内部使用 ssl(没有可用的 http - 多个侦听端口)
  • 如果您从外部使用 http,我希望重定向到 https

样本 :

我怎样才能做到这一点?让我们加密自动配置我的 nginx 配置,但这似乎有点太多了。


非常感谢您的回答,我觉得我得到了一些进步,即使暂时没有工作。我在这里发布了我的完整配置文件,因为我现在遇到了“502 Bad Gateway”错误。IP 与反向代理不在同一子网中,但完全可访问,没有防火墙或路由问题。

知道我可以在哪里继续前进吗?在原始配置中,还有一个包含密码和协议的 certbot conf 文件。也许我需要重新包含它?

另外:我尝试访问的内部服务器具有使用我自己的 AD CS 签名的证书,但反向代理上尚未安装根证书。也许我应该 ?

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log …
Run Code Online (Sandbox Code Playgroud)

ssl nginx fedora reverse-proxy lets-encrypt

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

nginx 找不到 /etc/letsencrypt/options-ssl-ngin.conf 文件

我正在尝试使用 linux 盒子(运行 ubuntu 18.04)和 nginx、gunincorn、letsencrypt 和 docker 来提供 python-django web 应用程序。在学习了许多在线教程之后,我按照本教程http://pawamoy.github.io/2018/02/01/docker-compose-django-postgres-nginx 成功通过端口 80 通过 http 提供了应用程序服务。 html

然而,我现在真的很难通过端口 443 通过 https 进行部署。我想也许我不理解基本的 docker 概念。我运行时遇到的错误sudo docker-compose up如下。

NGINX 错误

nginx_1 | nginx: [emerg] open() "/etc/letsencrypt/options-ssl-nginx.conf" failed (2: No such file or directory) in /etc/nginx/conf.d/local_ssl.conf:28

我相信这是因为我没有链接 docker-compose.yml 文件中的 options-ssl-nginx.conf 文件,也许是通过卷?我不知道这是否正确。我的 docker-compose.yml 文件和 nginx.conf 文件的相关部分如下:

docker-compose.yml

version: '3'

services:

  # database containers
  database1:
    ...

  # web container
  djangoapp:
    ...

  # reverse proxy container (nginx)
  nginx:
    image: …
Run Code Online (Sandbox Code Playgroud)

nginx django docker lets-encrypt docker-compose

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

嵌套通配符子域的 LetsEncrypt 证书

我已为我的域生成 Lets Encrypt通配符证书*.domain.com

我认为该证书对于任何嵌套子域都有效*.*.domain.com,例如it.*.domain.comfr.*.domain.com。但浏览器给我错误,该通配符证书是为 颁发的domain.com,而不是为*.domain.com。我尝试*.*.domain.com使用 CertBot 颁发新证书,但出现错误(不允许使用多个通配符)。

是否可以实现此目的,或者我是否必须为每个第一级子域手动颁发通配符证书?

wildcard subdomain lets-encrypt

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

如果域是公共的,是否可以为私有子域生成 LetsEncrypt 证书?

我有一个在私有子域上运行的服务器,server.internal.example.com

example.com是公开的但internal.example.com不是。

我已使用 CertBot 生成证书,*.example.com但如果我尝试扩展此证书以包含*.internal.example.comDNS 质询,则会失败,因为 LetsEncrypt 无法访问此域。我尝试过运行两者:

sudo certbot certonly --manual --preferred-challenges=dns -d *.example.com -d *.internal.example.com
sudo certbot certonly --manual --preferred-challenges=dns -d *.example.com -d server.internal.example.com
Run Code Online (Sandbox Code Playgroud)

但这都要求我进行 LetsEncrypt 无法看到的 DNS 记录更改。有没有办法解决?

ssl-certificate lets-encrypt

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

certbot 真的会更新我的证书吗?

看了下/etc/cron.d/certbot,我觉得不会!该文件包含以下行:

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew

而且,除非我读错了,否则只有当有一个名为/usr/bin/certbot(有)的可读可执行文件并且没有一个名为/run/systemd/system(但有,即使它是空的)目录时才会发生更新。

那么我是对的,这个certbot -q renew钻头永远不会运行吗?是否还有其他地方也会触发更新?(我认为可能有一些东西,/run/systemd/system因为正在检查,但正如我所说,没有。出于好奇,为什么这个小脚本会检查 不存在/run/systemd/system?)

这是在 Ubuntu 18.04 上运行最新版本certbot(v1.18.0,昨天使用官方说明安装的)。

顺便说一句,我已经跑过:

test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot renew --dry-run

作为 root 在命令行上运行,它会立即退出,退出状态为 1。

cron ssl-certificate lets-encrypt certbot ubuntu-18.04

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

如何禁用 Certbot Let's Encrypt 证书中包含的“主题备用名称”?

使用 Certbot 在 nginx Web 服务器上安装 R3 Let's Encrypt 证书会导致 nginx 配置中的所有其他域都包含在证书的“主题备用名称”下。这对于我的用例来说是不可取的。

我在这里阅读了手册页,并在这里这里阅读了其他一些 Stack Exchange 帖子。

关于替代名称的使用,手册页说(我不完全理解):

-d DOMAIN, --domains DOMAIN, --domain DOMAIN 要应用的域名。对于多个域,您可以使用多个 -d 标志或输入逗号分隔的域列表作为参数。提供的第一个域将是证书的主题 CN,所有域将是证书上的主题备用名称。第一个域还将在某些软件用户界面中使用,并用作证书和相关材料的文件路径,除非另有指定或您已经拥有同名的证书。如果发生名称冲突,它将在文件路径名后附加一个数字(如 0001)。(默认:询问)

使用 Certbot 安装 Let's Encrypt 证书时,如何完全指定或省略主题备用名称?如果 Certbot 不能,在仍然使用 R3 Let's Encrypt 证书的同时是否有不同的方法?

ssl-certificate lets-encrypt certbot

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

将我的 LetsEncrypt 证书从一台服务器移动到另一台服务器有哪些选择?

我有一个通过 Digital Ocean 运行的 ubuntu 服务器,它有一个我通过 LetsEncrypt 获得的 SSH 证书。

我正在尝试切换到更便宜的服务,我需要将证书移动到我的新服务器。我怎样才能做到这一点?

看起来我可以撤销当前 DO 服务器上的证书。然后我可以在我的新服务器上创建一个新服务器而没有任何问题吗?

lets-encrypt

4
推荐指数
3
解决办法
7684
查看次数