我们有一个网站,想要检查安装的证书是通配符证书还是仅绑定到特定URL。有没有简单的方法可以进行检查?
浏览到您服务器上的安全页面,例如:https://yoursite.com
点击URL栏中的小锁并查看证书。在Chrome中,您可以单击连接
选项卡,然后单击证书信息
。
检查通用名称(CN)
是否在您的域名前面包含一个*号。
可以通过检查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
invalid2.invalid
。 - Houman您可以在证书颁发机构处查看该证书-- 您应该能够看到它是颁发给*.domain.com还是www.domain.com。例如:Verisign。
与其他用于Web目的的在线工具类似,我发现这个方便的工具很简单,只需将您的主机名替换为您的https站点URL,它就会解释您遇到的问题以及哪些解决方案可以使您受益...
https://www.sslshopper.com/ssl-checker.html#hostname={siteurl}
使用命令行openssl客户端,可以在所有类UNIX系统上按如下方式进行检查:
SERVERNAME=google.com; echo | openssl s_client -showcerts -connect $SERVERNAME:443 -servername $SERVERNAME 2>/dev/null| grep subject | grep -o "CN=.*"
这是对上述史蒂夫·罗宾斯答案的改进。