标签: lets-encrypt

如何使用 Let's Encrypt (letsencrypt.org) 作为免费的 SSL 证书提供商?

我有几个站点使用 StartSSL 免费证书(CJSHayward.comJobhuntTracker.com)运行,Firefox 拒绝 StartSSL 并显示一个错误页面,说我的服务器没有正确配置 (IIRC) 由于证书链。我寻求帮助并确认我的 VirtualHost(应要求提供)用于证书链,并且我正确安装了中间证书。这些网站在 Chrome、Safari、Edge 或 Opera 中显示时没有我所知道的错误。

经过一番搜索,让我们加密吧!看起来像一个有吸引力的产品,不久我就拥有了(AFAICT)/etc/apache2/sites-enabled 下每个域的私钥和证书,当然减去任何不再是我的域。我想我会做一次试运行,并与现在仅在 HTTP 下可用的站点建立 HTTPS 连接:JSH.name。我移动了“让我们加密吧!” 证书和私钥到我的 SSL 目录并添加:

<VirtualHost *:443>
        ServerAdmin cjshayward@pobox.com
        DocumentRoot /home/jonathan/stornge
        SSLEngine On
        SSLCertificateFile /etc/apache2/ssl/0000_csr-letsencrypt.pem
        SSLCertificateKeyFile /etc/apache2/ssl/0000_key-letsencrypt.pem
        ServerName jsh.name
        ServerAlias www.jsh.name
        LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
        CustomLog /home/jonathan/logs/stornge.com combined
        <Directory /home/jonathan/stornge/>
            Options ExecCGI Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
        </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

Then I rebooted to …

ssl debian apache-2.4 lets-encrypt

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

如何解决 Windows Server 上 LetsEncrypt 证书链的问题?

我一直在使用 LetsEncrypt 在 Windows 2012 R2 服务器上为我的站点生成证书。它工作得很好,直到最近我更新了证书。

LetsEncrypt 最近进行了更改,他们将名称为“Let's Encrypt Authority X1”的中间证书替换为名称为“Let's Encrypt Authority X3”的中间证书。问题是,更新证书的授权密钥保持不变。

https://community.letsencrypt.org/t/upcoming-intermediate-changes/

因此,当我通过服务器证书续订时,它们现在是“X3”授权的问题,但是由于密钥相同,Windows 证书存储似乎使用它找到的第一个结果(按字母顺序?)构建证书链,结果是是旧的“X1”证书。

这就是问题出现的地方。对于某些客户端/浏览器(如 Chrome),这很好,他们只查看中间证书的密钥。但是,其他客户端更严格,也检查名称,然后失败(X1而不是X3)。

我解决这个问题的第一步是删除 X1 中间证书,并确保我的所有服务器证书都更新为由 X3 颁发。现在事情看起来是正确的,至少在 Windows 的证书存储中(链正确显示了 Root Authority -> X3 -> server cert)。

我现在遇到的问题,似乎无法弄清楚,是为什么客户端继续显示错误的证书链 (X1)。我可以看到,该中间证书甚至不再存在于我的服务器上。

我已经尝试过通常的重启服务器,也偶然发现了这个类似的帖子,尝试了几次那里的步骤但没有任何运气 -

https://serverfault.com/a/706278/182874

任何线索我可能会错过什么?IIS 缓存证书链似乎存在一些问题,因为我尝试在多个客户端/机器上进行连接并且都遇到相同的问题。只是不知道如何清除这个“证书链缓存”,或者它是否存在。

ssl ssl-certificate windows-server-2012-r2 iis-8.5 lets-encrypt

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

LetsEncrypt 证书更新失败

我试图更新我的服务器的证书。现在的已经1个月前过期了,但是我到现在都没去处理。

我尝试使用该letsencrypt-auto renew命令但失败了:

注意:我更改了域/用户/服务器名称。

user@vps:~/letsencrypt# ./letsencrypt-auto renew
Updating letsencrypt and virtual environment dependencies.......
Running with virtualenv: sudo /home/user/.local/share/letsencrypt/bin/letsencrypt renew
Processing /etc/letsencrypt/renewal/www.example.com.conf
2016-04-02 07:07:00,862:WARNING:letsencrypt.cli:Attempting to renew cert from /etc/letsencrypt/renewal/www.example.com.conf produced an unexpected error: You've asked to renew/replace a seemingly valid certificate with a test certificate (domains: www.example.com, example.com). We will not do that unless you use the --break-my-certs flag!. Skipping.

All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/live/www.example.com/fullchain.pem (failure)
1 renew failure(s), 0 parse failure(s) …
Run Code Online (Sandbox Code Playgroud)

ssl-certificate renew lets-encrypt

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

gitlab SSL 配置/证书验证失败

我有自己的 gitlab 服务器,现在使用 letencrypt SSL 证书进行保护。

现在,我想通过 packagist 发布一些包。但是当我在 packagist 中输入 git repository url 时,我收到以下错误消息(urls 已更改):

Uncaught Exception: [RuntimeException] Failed to execute git clone --mirror 'https://url.de/gituser/repository.git' '/home/composer/.composer/cache/vcs/https---url.de-gituser-repository' Cloning into bare repository '/home/composer/.composer/cache/vcs/https---url.de-gituser-repository'... fatal: unable to access 'https://url.de/gituser/repository.git': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none 
Run Code Online (Sandbox Code Playgroud)

每个浏览器都接受该证书。但不是作曲家/包装师。

任何想法为什么?

ssl ssl-certificate lets-encrypt composer

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

让我们加密 certbot - 向证书添加一个新域

我已经安装了 certbot,它为我托管的几个域创建了一个证书,并且正在运行 - 我得到了一个涵盖所有域的证书。现在我想向证书添加一个新域。我看到域根列在其中/etc/letsencrypt/renewal/domain.com.conf,我将相关条目添加到域中(在该[[webroot_map]]部分下)。然后我跑了

certbot-auto renew --force-renew

其中更新了证书(在浏览器中验证了证书颁发日期),但证书中未列出新添加的域。

我需要在哪里添加域才能将其添加到证书中?

https lets-encrypt

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

让我们为新服务器加密 SSL 证书

我的域 example.com 当前指向具有 alphassl 证书的服务器。我想将此域指向我的新服务器(通过更改名称服务器)而没有任何 https 超时。所以我想之前在新服务器上为example.com安装let's encrypt ssl证书。这可能吗?如何?

ssl lets-encrypt

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

当文件存在时,如何有条件地设置 SSLCertificateFile?

我正在使用 Let's Encrypt ( certonly) 为 Apache 服务器上托管的多个网站生成 SSL 证书。这些证书的文件位置在创建之前就已确定,因此我提前将它们的路径写入我的虚拟主机配置中。站点运行后,我将使用certbot获取证书文件,然后重新加载 Apache 配置。

我还有一个使用有效文件定义的全局 SSL 证书,因此每个 SSL 虚拟主机肯定都有一个证书。

我遇到的问题是 Apache 不会在没有所有证书文件的情况下运行,尽管有全局后备。我试图有条件地配置 Let's Encrypt 证书,仅当文件存在时使用IF,但 Apache 说SSLCertificateFile not allowed here.

SSLCertificateFile仅当新证书文件存在时,我如何才能覆盖全局?我正在尝试执行所有这些操作,而无需在生成证书之前和之后修改配置。

这是我尝试过的:

<If "-f '/etc/letsencrypt/live/domain/fullchain.pem'">
  SSLCertificateFile /etc/letsencrypt/live/domain/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/domain/privkey.pem
</If>
Run Code Online (Sandbox Code Playgroud)

??SSLCertificateFile not allowed here

ssl apache-2.4 lets-encrypt

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

NGINX 将除letsencrypt 之外的所有内容重定向到 https

我有一个简单的配置,将除了letsencrypt 请求之外的所有内容重定向到 https,然后我的虚拟主机在 https 上..

目前我所有的请求都被重定向到 https,然后是 404 用于 letencrypt:

这是我的配置...

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name _;
        location ^~ /.well-known/acme-challenge/ {
            allow all;
            default_type text/plain;
            return 200 "$1.abcd-efgh";
        }

        location / {
            return 301 https://$host$request_uri;
        }
}

server {
    listen 443 ssl;
    server_name plex.my_domain.com;

    ssl_session_timeout 30m;
    ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
    ssl_certificate      /root/.acme.sh/plex.my_domain.com/fullchain.cer;
    ssl_certificate_key  /root/.acme.sh/plex.my_domain.com/plex.my_domain.com.key;
    ssl_session_cache shared:SSL:10m;


    add_header X-Xss-Protection "1; mode=block" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Strict-Transport-Security "max-age=2592000; includeSubdomains" always;
    add_header X-Frame-Options "SAMEORIGIN" always; …
Run Code Online (Sandbox Code Playgroud)

nginx redirect lets-encrypt

5
推荐指数
3
解决办法
9856
查看次数

验证返回码:21(无法验证第一个证书)让我们使用 crontab 问题将 Apache 加密到 Nginx

我做了这个https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-14-04


然后使用以下 *** 从 apache 切换到 nginx https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-14-04

***一切都很好。但现在 facebook 调试器给了我:Curl 错误:SSL_CACERT SSL 证书问题:无法获得本地颁发者证书

***问题:我如何从您的证书颁发机构重新下载所有证书并在我的情况下制作一个新的捆绑包?

Alexs-MacBook-Air:~ alex$ openssl s_client -connect goeasysmile.com:443
CONNECTED(00000003)
depth=0 /CN=goeasysmile.com
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /CN=goeasysmile.com
verify error:num=27:certificate not trusted
verify return:1
depth=0 /CN=goeasysmile.com
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
 0 s:/CN=goeasysmile.com
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFFjCCA/6gAwIBAgISBPstpF9NiACN8vtDkMYUsZ/fMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNzA5MjExMTIwMDBaFw0x
NzEyMjAxMTIwMDBaMBoxGDAWBgNVBAMTD2dvZWFzeXNtaWxlLmNvbTCCASIwDQYJ
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKxogeMt8i4wigwQX8idtb4NsBsjY8Aa
huTiGBi+99WVFUU8v6yAIQew+Q2Csd0cxF3Iq6I4pajEzqb/tTYXXVGLL7isdwRG
pRbhcrkF4Urxk3BhdP6f/7QCMkp4/H3knvKBa+cugZXQ3lz/73uVQ6F+bC7ZEp2U
mSkMGS1NT5bPiPML8KOLhOpIT0rj03e3T2PA8oy+TheI8pZ4E+LVnS4qzbas6PN/
ijgfG/ev/C62zmlwz+Dfe8UbiZ0sAmOQ/Q7/a2iaxZBiX+ZTMHGtv4cEd+2p8knn
ZQ+ZM/pmzYyU8o+NlykN2/joY7FlRMDEBJdnstf42OSQGtFWI1CCjv0CAwEAAaOC
AiQwggIgMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB
BQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUFJk9G1tyeWd/7eHnbYuKRLMn …
Run Code Online (Sandbox Code Playgroud)

ssl nginx ssl-certificate apache-2.2 lets-encrypt

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

子域 _acme-challenge 是否受到保护?

我正在研究 Let's Encrypt 的 DNS-01 挑战;我有一个关于子域过程的问题 [1]。

比方说,网站example.com 提供免费的子域;是什么阻止我通过声明 _acme-challenge.example.com 子域来处理 DNS-01 挑战来请求 *.example.com 的 Let's Encrypt 通配符证书?

ACME 协议(或其他任何协议)中是否有任何内容阻止我这样做?

[1] = https://letsencrypt.org/docs/challenge-types/#dns-01-challenge

domain-name-system subdomain certificate-authority lets-encrypt

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