ssl - 奇怪的 SSL 公用名不匹配
问题描述
今天我遇到了一个奇怪的cn不匹配的案例。我有两个域:
kpmg.talentsource.rs 和 www.kpmg.talentsource.rs
两者都有 prod.q.ssl.global.fastly.net 作为他们的 CNAME 他们有相同的 A 记录和证书。
尽管如此:
https://kpmg.talentsource.rs (OK)
https://www.kpmg.talentsource.rs (CN 不匹配)
https://www.ssllabs.com/ssltest/analyze.html?d=kpmg.talentsource.rs&s=151.101.65.62 https://www.ssllabs.com/ssltest/analyze.html?d=www.kpmg.talentsource .rs&s=151.101.65.62
注意:两者都没有在 CN 和 SAN 中的 kpmg.talentsource.rs
任何想法为什么会发生这种情况?
解决方案
该证书的主题备用名称为*.talentsource.rs
(以及许多其他不相关的名称)。
根据 X.509/TLS 规则,a*
只匹配一个级别/标签,可以这么说,它并没有越界。因此*.talentsource.rs
匹配kpmg.talentsource.rs
但NOT www.kpmg.talentsource.rs
的主机名,因此出现浏览器错误。
您需要在此证书中添加www.kpmg.talentsource.rs
或*.kpmg.talentsource.rs
作为 SAN(请注意,它也talentsource.rs
已在列表中)或www.kpmg.talentsource.rs
完全停止使用(重定向不会解决问题,因为您仍然需要先完成 TLS 握手才能获得 HTTPLocation:
标头,因此您仍然需要适当的证书)。
推荐阅读
- python-3.x - 关于如何做到这一点的任何想法,以便我不会收到错误 429:请求过多
- c# - 修改列表列表中的项目不会更新 UI
- python - 我在计算数据框中值之间的距离时遇到问题
- javascript - 如何在 Firebase 中提供自己的密钥
- python - 使用 Python 从响应标头中检索“set-cookie”键
- python - 如何更改散点图中数据点的透明度
- ssl - 计算引擎:出现 SSL 错误:例程:CONNECT_CR_SRVR_HELLO:错误的版本号
- r - R不会在数据框中读取CSV的数值
- amazon-web-services - api 网关找不到 lambda 别名
- postgresql - PostgreSQL 更新触发器:关系“新”不存在