首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与CA颁发证书的不安全连接

与CA颁发证书的不安全连接
EN

Server Fault用户
提问于 2023-02-16 20:50:13
回答 2查看 78关注 0票数 0

我已经从来自思科C9300的CSR导入了一个web服务器证书。证书来自证书颁发机构,并在链的末尾显示正确的CA。CLI显示证书安装正确,没有问题。问题是当我去安全的网站(https://)的交换机,但它说连接是不安全的。我在浏览器中检查证书,它显示了我从CA获得的证书。为什么它显示不安全,即使证书是有效的?

当转到页面时,上面写着NET::ERR_CERT_COMMON_NAME_INVALID

更新1:感谢@Zac67 67,我正在检查Trustpoint信息。当我们访问网页的开关时,我们使用https://ipaddress。我可以创建以下内容:

代码语言:javascript
复制
subject-name C=US, ST=Pennsylvania, L=My-Town, O=My-Org, OU=My-Department, CN=SWITCHNAME.DOMAIN.NET

但是,当我执行subject-alt-name 192.168.1.10时,它会给出以下错误:

代码语言:javascript
复制
CRYPTO_PKI: Label cannot be made only of digits. Also, ip addresses are not permitted

试着把地址放进CN里,但也不起作用。还说证书无效。

更新2:我正在使用如何定位这里:来创建一个RSA密钥。使用该密钥,我将使用我的CA作为信任点。我将拇指指纹提供给我的Microsoft以获得WebServer证书。我从我的CA获得WebServer证书,并以相同的方式将它导入到交换机中。然后我去网页,它说网页是无效的。证书来自我的域的CA。我看不出它怎么会认为是无效的。

更新3:所以我正在看里克关于SAN的建议。我要指出,我们不使用OpenSSL,因为我们是不允许的。我们必须使用我们的网络CA。对于CN,我已经将CN设置为证书的IP地址。因为says有一个单独的命令,上面写着ip-address,它添加了地址,而在那里,我有一个名为subject-name-alternative的不同命令,我不能向该命令中添加IP地址,因为它是不允许的。所以我发现我可以做以下几件事:

CN可包括以下内容:

  • IP地址
  • 主机名
  • FQDN

SAN (主题名-可供选择)如下:

  • 主机名
  • FQDN

可以添加或不添加IP地址。

尝试了所有这些内容的混合,它仍然告诉我证书是无效的,错误是: NET::ERR_CERT_COMMON_NAME_INVALID。如果您查看“边缘”中的证书,如果我使用相同的指纹单独打开该证书,它将显示相同的证书。

那么,当使用Edge从IP地址访问它时,CN应该是什么?

在执行以下操作以使CSR添加IP地址行时,也要更新4。但是,当我查看证书时,它看起来不像是将IP地址添加到SAN中。实际上,证书根本没有SAN!看上去好像有什么东西在翻译中迷失了。

代码语言:javascript
复制
crypto pki trustpoint my-trustpoint
enrollment terminal pem 
subject-name C=US, ST=Pennsylvania, L=My-Town, O=My-Org, OU=My-Department, CN=My-Switch.my-network.com
subject-alt-name my-switch.my-network.com
serial-number none
ip-address 192.168.1.51
revocation-check none
rsakeypair my-4096rsa-key
end

知道为什么不把IP地址包括进SAN吗?

EN

回答 2

Server Fault用户

发布于 2023-02-17 06:07:50

要详细说明Ricky的注释: https://中使用的主机名必须匹配证书的主题名称(SN)或主题替代名称(SAN)。如果使用裸IP地址,则必须以SAN的形式出现。即使是最轻微的不匹配也会导致证书错误。

如果使用自己的CA,还要确保根CA证书存在于客户端的信任存储中。

票数 3
EN

Server Fault用户

发布于 2023-02-21 20:58:58

如果您使用的Cisco IOS版本不允许定义基于IP的主题替代名称(SAN),那么您应该通过openssl这样的不同工具创建CSR,以包含IP,然后使用CA对CSR进行签名。

使用openssl,您将使用一个openssl.cnf配置文件并附加一个包含SAN的部分(也可以通过CLI完成,但会变得更加复杂)。

要使用配置文件,[req]部分应该包含一个req_extensions参数,如下所示:

代码语言:javascript
复制
req_extensions = req_ext

您提供的值是后面一节的“上下文”,该部分定义了要使用的扩展。以req_ext作为值,配置的其余部分如下所示:

代码语言:javascript
复制
[ req_ext ]
subjectAltName = @alt_names 

[alt_names]
IP.1    = 192.168.1.10
  • 要确认生成的证书签名请求(CSR)包含可以使用的条目:
代码语言:javascript
复制
openssl req -noout -text -in switch.csr

检查X509v3 Subject Alternative Name部分。应该是IP:的条目,它包含生成CSR时在openssl.cnf中定义的所有内容。如果您期望证书安全的IP地址没有在CSR的SAN条目中列出--有些地方出错了--那么任何从CSR丢失的生成的证书都会观察到您提到的错误,因为它不能正确地保护IP。

如果您看到了预期的IP条目,那么将CSR传递给您的CA进行证书的签名和创建。

  • 要确认CA签名的证书包含带有最近openssl的条目,可以使用:
代码语言:javascript
复制
openssl x509 -noout -ext subjectAltName -in switch.pem
  • 要确认CA签名的证书包含具有较早版本的openssl (缺少扩展标志-ext)的条目,可以使用:
代码语言:javascript
复制
openssl x509 -noout -text -in switch.pem

使用上述任何一种方法,您都可以在安装之前检查已签名的证书。检查主题可选名称节值。如果这看起来是正确的,那么继续在您的开关中安装新的证书。

或者,您也可以通过浏览器对已经安装的证书进行SAN字段的调查。根据浏览器软件和版本的不同,信息的布局可能不同。

例如,这里是Chrome,它要求单击浏览器中的HTTPS/Lock (查看站点信息),单击连接是安全的,然后单击证书是有效的,当然,您的开关不会说有效,所以单击证书无效。

铬:证书详细信息

在Firefox查看证书时,还单击浏览器中的HTTPS/Lock,连接安全(当然是正确的),然后单击更多信息

火狐:查看证书

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1123438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档