【问题标题】:SSL Labs: Incorrect Order, Extra CertsSSL Labs:错误的顺序,额外的证书
【发布时间】:2018-10-17 23:03:24
【问题描述】:

我在为我的网站测试 SSL 时收到来自https://www.ssllabs.com/ssltest/analyze.html?d=api.quotecrunchers.com 的错误“链问题:错误的顺序,额外的证书”

我已经使用以下方法将 https 机制构建到 spring boot 应用程序中:

  1. 用于与 Let's Encrypt CA 通信的 acme4j 库。

  2. 将 Let's Encrypt 证书写入 java 密钥库的 Java 代码。

  3. Java 代码使嵌入式 Tomcat 服务器通过 HTTP 向 Let's Encrypt 申请证书,然后在获得证书后使用 HTTPS 重新启动。

我计划在整理好这段代码后将其开源。

不过,目前,我使用 ssllabs.com 仅获得 B 级

https://www.ssllabs.com/ssltest/analyze.html?d=api.quotecrunchers.com

我的 https 存在几个问题,但我担心的问题是 “链问题:顺序错误,额外证书”

为什么我会得到这个,我应该怎么做?

非常感谢任何帮助!

【问题讨论】:

    标签: ssl lets-encrypt


    【解决方案1】:

    当一个人连接到您的网站时,openssl s_client 看到的是它发送的内容:

    Certificate chain
     0 s:/CN=api.quotecrunchers.com
       i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
     1 s:/CN=api.quotecrunchers.com
       i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
     2 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
       i:/O=Digital Signature Trust Co./CN=DST Root CA X3
    

    如您所见,第一个证书是重复的,这正是评级和错误消息的原因。

    当您配置 TLS 服务器时,您通常在一端指定最终(服务器)证书,即一个证书,它会出现在类似上面的跟踪中的 0 位置,然后您(可选,但非常经常)提供一个潜在的链式证书列表,称为“中间”,它将您的最终证书链接到某个根 (CA) 证书,CA 证书本身可能是链中的最后一个或被完全跳过。

    那应该是在1 的位置,然后在上面的跟踪中。

    但如您所见,在位置1,因此作为中间证书,我们再次找到您的最终证书。

    根据 TLS 标准,这不正确,因此您需要更改配置或包含中间证书的文件以从该位置删除您的最终证书,以便您最终设法获得:

    Certificate chain
     0 s:/CN=api.quotecrunchers.com
       i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
     1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
       i:/O=Digital Signature Trust Co./CN=DST Root CA X3
    

    【讨论】:

      猜你喜欢
      • 2013-10-21
      • 1970-01-01
      • 2018-12-18
      • 2018-08-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      相关资源
      最近更新 更多