Let's Encrypt宣布他们有:
开启对 ACME DNS 挑战的支持
如何./letsencrypt-auto使用 DNS 质询域验证生成新证书?
编辑
我的意思是:如何http/https通过使用新宣布的功能 (2015-01-20) 来避免端口绑定,该功能可让您通过在目标域的 DNS 区域中添加特定 TXT 记录来证明域所有权?
这是在 Apache2 中设置cron以更新 Let's Encrypt 证书的正确方法吗?我使用 Ubuntu 16.04。
@monthly letsencrypt renew && service apache2 reload
Run Code Online (Sandbox Code Playgroud) 介绍
我有一个开发服务器(目前运行 Ubuntu 14.04 LTS),我已经使用了一段时间来在不同端口上托管各种开发工具。因为端口很难记住,所以我决定将端口 80 用于我的所有服务,并根据主机名在内部进行端口转发。
而不是写 domain.com:5432,我可以简单地通过 sub.domain.com 访问它
例如,使用端口 7547 并在 sub.domain.com 上运行的应用程序 X 具有以下 nginx 配置:
upstream sub {
server 127.0.0.1:7547;
}
server {
listen 80;
server_name sub.domain.com www.sub.domain.com;
access_log /var/log/nginx/sub.log combined;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:7547;
proxy_set_header Authorization "";
}
}
Run Code Online (Sandbox Code Playgroud)
问题
鉴于我选择的当前配置结构,是否可以使用 letencrypt 并在 https 下运行不同的服务?
我已经成功地使用 LE 创建了我的证书,没有错误,我还设法将我的流量从端口 80 重定向到端口 443。但是当我重新加载我的 nginx 服务器时,我无法访问我的网站。Ngnix 错误日志显示这一行:
4 no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking, client: 192.168.0.104, server: 0.0.0.0:443
Run Code Online (Sandbox Code Playgroud)
我认为这意味着它找不到我然后导航到证书路径的证书,它们都在那里,可能是什么问题?这是我的 Ngnix 配置的样子:
server {
listen 80;
server_name pumaportal.com www.pumaportal.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name pumaportal.com www.pumaportal.com;
add_header Strict-Transport-Security "max-age=31536000";
ssl_certificate /etc/letsencrypt/live/pumaportal.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/pumaportal.com/privkey.pem;
ssl_stapling on;
ssl_stapling_verify on;
access_log /var/log/nginx/sub.log combined;
location /.well-known {
alias /[MY PATH]/.well-known;
}
location / {
proxy_pass http://localhost:2000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; …Run Code Online (Sandbox Code Playgroud) 我有一个 Nginx 服务器,并禁用了隐藏文件 nginx_vhost.conf
## Disable .htaccess and other hidden files
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
Run Code Online (Sandbox Code Playgroud)
但是 LetsEncrypt 需要访问该 .well-known目录。
如何允许.well-known目录并拒绝其他隐藏文件?
如果我尝试访问具有 certbot 颁发的 debian 9 证书的 HTTPS 服务器,则会收到以下错误:
# curl -v https://hu.dbpedia.org/
* Trying 195.111.2.82...
* TCP_NODELAY set
* Connected to hu.dbpedia.org (195.111.2.82) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11): …Run Code Online (Sandbox Code Playgroud) 我们开始使用 let's encrypt 时用作管理员电子邮件的电子邮件地址需要修改(一名前员工使用他的个人电子邮件地址作为管理员电子邮件,他不再在公司工作)。需要采取哪些步骤来进行修改(我们可以让前员工确认这一点)。我们需要删除他的个人电子邮件地址并将其替换为新的电子邮件地址。这将用于密钥恢复操作。无论哪种情况,我都希望删除前员工的个人电子邮件地址。我需要采取哪些步骤来完成此操作(如果我对流程的理解不正确,请指出正确的方向)。提前致谢。
我正在尝试从我的 nginx 网络服务器上的自签名证书转移到 Let's Encrypt 证书。
目前,我将所有请求重定向http/80到https/443,它使用我不久前创建的自签名证书。
现在 - 据我所知,Let's Encrypt 向端口 80 发出请求(因为我正在使用 的webroot选项certbot)。这些请求被重定向,导致证书生成失败。
我尝试使用以下服务器块来实现这一点,监听端口 80:
server {
listen 80;
server_name sub.domain.tld;
server_tokens off;
location /.well-known {
root /var/www/letsencrypt;
}
location / {
return 301 https://$host$request_uri;
}
}
Run Code Online (Sandbox Code Playgroud)
但是无论如何/.well-known都将请求重定向到https/443。
我如何可以重定向所有的请求来自http/80于https/443,除了要求/.well-known/?
我刚开始使用 Let's Encrypt。http-01-challenge 很简单:
奇迹般有效。但是他们如何使用不安全的 http 连接确保我确实是 example.com 的所有者?
我的数据中心(或我的 ISP)中的某些管理员不能只请求证书并拦截 http 请求,让我们 Enrypt 发送以检查服务器的身份吗?
我只是想知道。我们使用了很多 SSL 证书。如今,我们几乎只使用letsencrypt(谢谢!)。这些证书的底线是,证书上域名的所有权证明来自操纵这些域下的 DNS 记录或网站的权力。DNS 证明来自向 DNS 添加一些密钥(由letsencrypt 提供)作为 TXT 记录。
那么,如果足以证明能够更改域的 DNS 记录,为什么不使用带有 DNS 指纹的自签名证书呢?
我会说这与基于 DNS 的 letencrypt(和其他 CA)过程完全相同的信任度:
这将使创建不受第三方干扰的可信自签名证书成为可能,与任何基本 SSL 证书的信任级别相同。只要您可以访问 DNS,您的证书就是有效的。甚至可以添加一些 DNSSEC 之类的加密,从 CA 和 SOA 记录中生成散列,以确保信任在 DNS 记录中的更改时消失。
以前有没有考虑过这个问题?
杰尔默
domain-name-system ssl certificate-authority self-signed-certificate lets-encrypt
lets-encrypt ×10
nginx ×4
https ×2
ssl ×2
cron ×1
debian ×1
http ×1
jira ×1
redirect ×1
virtualhost ×1