检查证书是否为通配符证书。

15
我们有一个网站,想要检查安装的证书是通配符证书还是仅绑定到特定URL。有没有简单的方法可以进行检查?
6个回答

22

浏览到您服务器上的安全页面,例如:https://yoursite.com

点击URL栏中的小锁并查看证书。在Chrome中,您可以单击连接选项卡,然后单击证书信息

检查通用名称(CN)是否在您的域名前面包含一个*号。

例如:https://www.google.com

*.google.com cert


5
这个答案有点不准确,或者说不完整。通配符证书的“通用名称”不需要以星号开头(例如,可以简单地列为“example.com”)。在这种情况下,应该在“指纹”下方显示一个名为“扩展”的标头,其中包含一个名为证书主题备用名称的项目,包括通配符“*.example.com”值的域值。 - Will

10

可以通过检查SSL主题中的通用名称来实现此操作。您可以在*NIX客户端上使用bash命令openssl

例如,google.com和www.google.com使用两个不同的SSL证书。第一个是通配符,第二个是特定于域名的。

$ echo | openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -subject | grep -o "CN=.*" | cut -c 4-
*.google.com
$ echo | openssl s_client -connect www.google.com:443 2>/dev/null | openssl x509 -noout -subject | grep -o "CN=.*" | cut -c 4-
www.google.com

不再在Mac上工作了。它显示为invalid2.invalid - Houman
不再在Mac上工作。它显示“invalid2.invalid”。 - undefined

4

您可以在证书颁发机构处查看该证书-- 您应该能够看到它是颁发给*.domain.com还是www.domain.com。例如:Verisign


有没有想法,GoDaddy是否有类似的搜索功能? - jwegner
1
如果是 "*.domain.com",那么就是通配符;如果是 "www.domain.com" 或者 "pay.domain.com",那么就是特定域名! - Sumit Murari

2

与其他用于Web目的的在线工具类似,我发现这个方便的工具很简单,只需将您的主机名替换为您的https站点URL,它就会解释您遇到的问题以及哪些解决方案可以使您受益...

https://www.sslshopper.com/ssl-checker.html#hostname={siteurl}


1
它简单易懂且精确。谢谢@justnajm! - Dung

0

此外,您可以使用免费的在线工具,例如https://www.ssllabs.com/ssltest。除了域名信息外,它们还会告诉您有关证书的其他重要细节。


0

使用命令行openssl客户端,可以在所有类UNIX系统上按如下方式进行检查:

SERVERNAME=google.com; echo | openssl s_client -showcerts -connect $SERVERNAME:443 -servername $SERVERNAME 2>/dev/null| grep subject | grep -o "CN=.*"

这是对上述史蒂夫·罗宾斯答案的改进。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接