为什么我的自签名通配符证书不起作用?

为什么我的自签名通配符证书不起作用?

我已经在我的开发机器(IIS 7.5 - Windows 7)上成功创建并使用了自签名证书。

为此,我生成了一个具有通用名称 (CN) = 的自签名证书,app.localhost并将其导入到受信任的根证书颁发机构商店。然后我将相同的证书导入 IIS,并使用主机名 = 将其绑定到我的站点app.localhost

这很有效。

现在我正在开发一个在 下运行的 API api.localhost。这也需要 SSL。因此,我像以前一样创建了一个新的自签名证书,只是我指定了 CN = *.localhost。新证书已添加到受信任的根证书颁发机构存储并像以前一样导入到 IIS。两个站点 ( app.localhost& api.localhost) 都已成功绑定到通配符证书。

这不起作用。

Chrome 抱怨:

您尝试访问 api.localhost,但实际上您访问的是一个标识为 *.localhost 的服务器。

IE 也提出了类似的抱怨。

如何制作可用的自签名通配符证书?

答案1

正如 David Schwartz 所说,这不适用于顶级域名。但是它适用于任何低于顶级域名的域名。

在我的 c:\windows\system32\drivers\etc\hosts 文件中我添加了

127.0.0.1 mysitename.localhost.dev

这里 .dev 是顶层,所以我可以向 *.localhost.dev 发出通配符

我还没有用 IIS 做过这个,但是使用 apache 并指定

<VirtualHost *:80>
    DocumentRoot C:/xampp/htdocs/hookd/mysite/public
    ServerName mysitename.localhost.dev
</VirtualHost>

不幸的是,您必须在hosts每个站点的 apache 配置中设置一个新条目,但这比签署新证书要容易得多。

答案2

如果你仔细想想,就会发现典型的浏览器不允许顶级域名的通配符证书,原因就很明显了。

相关内容