当我测试网站的 SSL 时,我收到来自https://www.ssllabs.com/ssltest/analyze.html?d=api.quotecrunchers.com的错误“链问题:顺序错误,额外证书” 。
我使用以下命令将 https 机制构建到 Spring Boot 应用程序中:
用于与 Let's Encrypt CA 通信的 acme4j 库。
用于将 Let's Encrypt 证书写入 java 密钥库的 Java 代码。
Java 代码使嵌入式 Tomcat 服务器通过 HTTP 从 Let's Encrypt 申请证书,然后在获得证书后重新使用 HTTPS。
我计划在整理完该代码后将其开源。
但目前,我仅使用 ssllabs.com 获得了 B 评级
请参阅https://www.ssllabs.com/ssltest/analyze.html?d=api.quotecrunchers.com
我的 https 有几个问题,但我关心的问题是“链问题:顺序错误,额外的证书”。
为什么我会得到这个,我应该做什么?
任何帮助是极大的赞赏!
当有人连接到您的站点时,以下是它发送的内容,如下所示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
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,第一个证书是重复的,这正是评级和错误消息的原因。
当您配置 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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7168 次 |
最近记录: |