我有一个承载在IIS远程服务器上的网站,该网站具有两个使用同一SSL证书保护的“https”绑定。第一个绑定是https://example.local.com,第二个绑定是https://www.example.local.com。在我的本地电脑上,我已将该网站(1.1.1.1 example.local.com www.example.local.com
)添加到Hosts文件,并将证书添加到受信任的根证书颁发机构位置。
在创建证书时,我在powershell上运行了以下命令,
New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -DnsName "*.local.com","www.*.local.com" -FriendlyName "local_iis_cert" -NotAfter (Get-Date).AddYears(10) -KeyAlgorithm RSA -KeyLength 2048
问题是,当我加载没有'www'的网站时,结果是可以的:
但是当我用“www”加载站点时,结果是一个不安全的站点。
当我单击证书并查看详细信息时,我可以看到主题值为:
CN=*.local.com
“主题备用名称”下的值为:
DNS Name=*.local.com
DNS Name=www.*.local.com
我想对证书创建命令做一个简单的修改就可以解决这个问题,但我不确定。有什么想法吗?
1条答案
按热度按时间vuktfyat1#
正如您所猜测的,此问题是由证书引起的。如果您要保护 * local.example.com * 和 www.local.example.com,则需要颁发具有以下内容的证书:
遗憾的是,无法创建可保护www.* www.example.com的证书anything*.local.com,但如果您愿意,可以通过指定其他 .subdomain. local.com来包含多个子域。
RFC6125详细说明了以下内容:
如果客户端将引用标识符与DNS域名部分包含通配符“”的提供的标识符进行匹配,则适用以下规则:
1.客户端不应试图匹配所提供的标识符,其中通配符包括最左边标签以外的标签(例如,不匹配bar.. example.net)。
通配符必须*出现在DNS名称部分的最开始(最左侧)。