标签: lets-encrypt

升级到 AKS 1.20.7 后,证书管理器停止续订 Let'S Encrypt 证书

我们的 AKS 集群配置为通过 Ingress Cert-Manager 注释自动续订 Let's Encrypt 证书,在我们升级到 AKS 1.20.7 之前,该功能一直运行良好。然后它停止工作,证书开始过期而没有更新 - 我仔细检查了 K8S 和 CertManager API 的所有更改并审查了所有 YAML,但我没有看到任何明显错误。将不胜感激任何指点。

\n

我的理解是,只要我将“cert-manager.io/cluster-issuer:letsencrypt-prod-p9v2”添加到我的入口中 - 整个更新应该自动发生 - 但这并没有发生。

\n
> kubectl cert-manager version\nutil.Version{GitVersion:"v1.4.0", GitCommit:"5e2a6883c1202739902ac94b5f4884152b810925", GitTreeState:"clean", GoVersion:"go1.16.2", Compiler:"gc", Platform:"linux/amd64"}\n\nAKS version: 1.20.7\n\ncat shipit-ingress-p9v2.yaml\n\napiVersion: networking.k8s.io/v1\nkind: Ingress\nmetadata:\n  annotations:\n    certmanager.k8s.io/cluster-issuer: letsencrypt-prod-p9v2\n    kubernetes.io/ingress.class: nginx\n    nginx.ingress.kubernetes.io/proxy-body-size: 15m\n    nginx.ingress.kubernetes.io/rewrite-target: /\n    nginx.org/client-max-body-size: 15m\n  generation: 4\n  name: shipit-ingress-p9v2\n  namespace: supplier\n  resourceVersion: "147087245"\n  uid: 6751dbff-83b1-48a1-a467-e75cc843ee79\nspec:\n  rules:\n  - host: xxx.westeurope.cloudapp.azure.com\n    http:\n      paths:\n      - backend:\n          service:\n            name: planet9v2\n            port:\n              number: 8080\n        path: /\n        pathType: ImplementationSpecific\n …
Run Code Online (Sandbox Code Playgroud)

kubernetes lets-encrypt azure-aks cert-manager

4
推荐指数
1
解决办法
4061
查看次数

LetsEncrypt 证书看似不在 PHPMailer、TLS、Openssl、file_get_contents 中时无效/过期,2021 年 9 月 30 日

从 2021 年 10 月 1 日起,我遇到了 PHPMailer 突然说我的证书已过期并拒绝使用 TLS 加密正确连接到端口 587 的问题。

将 ssl 标志更改为 not verify_peer 和 not verify_peer_name 将临时修复电子邮件问题。

$mail->SMTPOptions = array (
    'ssl' => array(
        'verify_peer'  => false,
        'verify_peer_name'  => false,
        'allow_self_signed' => true
        
    ));
Run Code Online (Sandbox Code Playgroud)

但这并不是一个理想的解决方案。

如果我通过端口 80 和 Web 访问同一服务器,则证书没有任何问题。

如果我使用 OpenSSL 命令行连接,它会显示证书已于 2021 年 9 月 30 日过期。

这个问题也出现在php命令file_get_contents下。

注意:这个问题是 PHPMailer 和电子邮件特定的,并提供了有关 PHPMailer 的良好信息,不应将其关闭。除了原因和修复类似之外,它与 docker 或与其相关的其他问题无关。

php openssl ssl-certificate phpmailer lets-encrypt

4
推荐指数
1
解决办法
3571
查看次数

certbot 的试运行和暂存选项之间的差异

每当我使用 certbot 进行测试时,我都担心会超出速率限制,从而导致我的帐户受到限制。所以我同时使用--dry-run--staging选项。

这在许多其他问题和教程中都得到了体现——而且由于它有效,我从不担心它。

但我确信它们之间有区别......它是什么?

lets-encrypt certbot

4
推荐指数
1
解决办法
7696
查看次数

如何使用nginx安装letsencrypt证书?

我已经使用letsencrypt为ubuntu上的最新nginx安装了SSL证书.设置很好,除了以下情况外,效果很好:

在此输入图像描述

我不太了解SSL以了解发生了什么,但我怀疑:我已经为Apache安装了SSL证书了一段时间,刚刚转移到Nginx,因为它支持http/2.由于nginx插件不稳定但我必须自己安装证书,这就是我所做的:

在我的nginx config(/etc/nginx/conf/default.conf)中,我添加了:

server {
    listen       80;
    server_name  [domain];
    return 301   https://$host$request_uri;
}

server {
    listen       443 http2;
    listen       [::]:443 http2;
    server_name  [domain];

    ssl on;
    ssl_certificate /etc/letsencrypt/live/[domain]/cert.pem;
    ssl_certificate_key /etc/letsencrypt/live/[domain]/privkey.pem;
}
Run Code Online (Sandbox Code Playgroud)

是否有可能以某种方式打破链条?这里的正确方法是什么?

多谢你们

ssl nginx lets-encrypt

3
推荐指数
1
解决办法
468
查看次数

让我们在nginx上用mongod加密ssl更新的cron jobs

根据本指南,我已经在数字海洋上启动并运行了解析服务器.配置mongo db进行迁移时,执行以下命令:

sudo cat /etc/letsencrypt/archive/domain_name/{fullchain1.pem,privkey1.pem} | sudo tee /etc/ssl/mongo.pem
Run Code Online (Sandbox Code Playgroud)

之后教程说:

续订Let's Encrypt证书后,您将不得不重复上述命令.如果您配置Let的加密证书的自动续订,请记住包括此操作.

为了做到这一点,我在我的let的加密cronjobs中添加了一个cronjob,如下所示:

30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
33 2 * * 1 cat /etc/letsencrypt/archive/DOMAIN/{fullchain1.pem,privkey1.pem} | tee /etc/ssl/mongo.pem
35 2 * * 1 /etc/init.d/nginx reload
Run Code Online (Sandbox Code Playgroud)

但是,在星期一重新启动服务器后,mongod将无法启动,因为它无法找到/读取/etc/ssl/mongo.pem.

如何正确设置?我是否需要在另一个cronjob中chown/chmod该文件?

谢谢你的帮助!

cron ssl nginx mongodb lets-encrypt

3
推荐指数
1
解决办法
1269
查看次数

让我们将证书从一台服务器复制到另一台服务器,如何自动续订?

我刚刚将SSL证书(通过加密certbot生成的SSL证书)从一台服务器(A)复制到了另一台(B)。因此,我在新服务器中创建了一个自定义目录,假设/home/my-certificate/,然后将fullchain.pemand privkey.pem从(A)复制到(B)。一切正常,服务器处于活动状态,证书正常。现在,我想在新服务器(B)上启用自动更新。我怎样才能做到这一点?

ssl https lets-encrypt

3
推荐指数
1
解决办法
2692
查看次数

NGINX SSL 证书权限 SSL 错误:0200100D:system

在 NGINX 服务器中出现以下错误,使用 LetsEncrypts 免费 SSL 证书。

2016/06/23 19:53:13 [warn] 5013#0:“user”指令只有在主进程以超级用户权限运行时才有意义,在 /etc/nginx/nginx.conf:1 中被忽略

2016/06/23 19:53:13 [emerg] 5013#0:BIO_new_file("/etc/letsencrypt/live/abc/fullchain.pem") 失败(SSL:错误:0200100D:系统库:fopen:权限被拒绝: fopen('/etc/letsencrypt/live/abc/fullchain.pem','r') error:2006D002:BIOroutines:BIO_new_file:system lib)

ssl nginx lets-encrypt

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

javax.net.ssl.SSLException:证书与任何主题备用名称都不匹配

我最近向我的服务器添加了LetsEncrypt证书,并且我的java小程序在使用TLS连接时遇到问题。

我的小程序使用Apache HttpClient。

我的Web服务器是Apache 2,4,我将一些虚拟主机设置为我的主域(foo.com-不是我的真实域名)的子域。

当我在暂存子域上运行小程序(例如,它从https://staging.foo.com运行)时,出现以下错误:

javax.net.ssl.SSLException: Certificate for <staging.foo.com> doesn't match any of the subject alternative names: [developer.foo.com]
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:165)
at org.apache.http.conn.ssl.BrowserCompatHostnameVerifier.verify(BrowserCompatHostnameVerifier.java:61)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:141)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:114)
at org.apache.http.conn.ssl.SSLSocketFactory.verifyHostname(SSLSocketFactory.java:580)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:554)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:412)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
...(cut)
at javax.swing.SwingWorker$1.call(SwingWorker.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at javax.swing.SwingWorker.run(SwingWorker.java:334)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

我不知道是怎么回事。

首先,我不知道Java如何知道developer.foo.bar是我的虚拟主机之一(尽管按字母顺序,这是第一个启用SSL的虚拟主机)。

我查看了staging.foo.com的证书详细信息,“主题备用名称”字段下列出的唯一名称是staging.foo.com。

那么从哪里获得developer.foo.com呢?

以及如何解决此问题?

我在OS X El Capitan 10.11.6上使用Firefox和以下Java插件版本信息:

Java Plug-in 11.102.2.14 x86_64
Using JRE version 1.8.0_102-b14 …
Run Code Online (Sandbox Code Playgroud)

java ssl applet lets-encrypt

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

letsencrypt certbot超时错误

尝试运行命令时,我得到了这个奇怪的letsencrypt错误

$ certbot certonly --standalone --email example@gmail.com --agree-tos -n -d trumporate.com,www.trumporate.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Obtaining a new certificate
Performing the following challenges:
tls-sni-01 challenge for trumporate.com
tls-sni-01 challenge for www.trumporate.com
Waiting for verification...
Cleaning up challenges
Failed authorization procedure. trumporate.com (tls-sni-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Timeout, www.trumporate.com (tls-sni-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Timeout

IMPORTANT NOTES:
 - …
Run Code Online (Sandbox Code Playgroud)

ubuntu nginx amazon-ec2 ssl-certificate lets-encrypt

3
推荐指数
1
解决办法
7526
查看次数

NodeJs + Nginx ..上游过早关闭连接,同时从上游读取响应头

我的网站在端口80(http)上运行,我正在使用nginx没有任何问题.下面是我在nginx中使用的默认文件

server {
    listen 80;
    server_name www.example.com;
    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我打算使用https并下载Lets加密证书.目前我无法访问该网站.我收到了以下错误.

*[错误] 754#754:1上游过早关闭连接,同时从上游读取响应头,客户端:xxx.xx.xxx.xxx,server:example.com,请求:"GET /favicon.ico HTTP/2.0",上游:"h ttp://127.0.0.1:3000/favicon.ico",主持人:"www.exapmple.com",推荐人:" https://www.example.com/ "

以下是我的nginx默认文件

# HTTP — redirect all traffic to HTTPS
server {
    listen 80;
    listen [::]:80 default_server ipv6only=on;
    return 301 https://$host$request_uri;
}

server {
    listen 443 default_server ssl;
    listen [::]:443 ssl http2;
    server_name example.com www.example.com;

    # certs sent to the client in SERVER HELLO are …
Run Code Online (Sandbox Code Playgroud)

ssl nginx node.js lets-encrypt

3
推荐指数
1
解决办法
4384
查看次数