本地主机子域上的 ssl 证书不起作用

Posted

技术标签:

【中文标题】本地主机子域上的 ssl 证书不起作用【英文标题】:ssl certificate on localhost subdomain not working 【发布时间】:2018-09-09 01:29:06 【问题描述】:

我的子域无法在 localhost 上使用 SSL。

我为我的 XAMPP 安装生成了我的 SSL 证书作为“localhost”。

我通常有两个文档根:

DocumentRoot C:\Files\phpCode
ServerName phpcode.localhost

&

DocumentRoot C:\server\xampp
ServerName localhost

如果我使用 https://localhost,我可以让 Chrome 在 SSL 中工作,但它不适用于子域虚拟主机 https://phpcode.localhost

我在为本地主机生成 SSL 时犯了错误吗?或者我可以更改一些设置以使其正常工作吗?

【问题讨论】:

【参考方案1】:

证书必须与 URL 中的名称匹配。仅为 localhost 颁发的证书不会匹配使用 phpcode.localhost 作为域名的 URL。客户端或服务器上的任何设置都无法绕过此要求。您需要为此域使用不同的证书,或者创建一个包含两个名称的证书。

【讨论】:

【参考方案2】:

我让它工作编辑了 v3.ext 文件并将 altnames 放在两个主机上:

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = localhost
DNS.2 = phpcode.localhost

然后使用:

bin\openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365 -sha256 -extfile v3.ext

Chrome 和 Edge 一切正常。

【讨论】:

从哪里获得 v3.ext 文件?

以上是关于本地主机子域上的 ssl 证书不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如果 cookie 设置为同一域上的所有子域,则删​​除 cookie 不起作用

根域上的WordPress站点工作但子文件夹中的codeigniter不起作用

SSL证书不起作用(AWS Route 53)

PHP OpenSSL 扩展不起作用

htaccess 规则在本地主机上不起作用

推送通知在沙盒模式下不起作用