我有一个问题,我的子域不适用于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
我是否仅为localhost生成SSL时出错?或者我可以更改一些设置以使其工作吗?
证书必须与URL中的名称匹配。仅为localhost
颁发的证书与使用phpcode.localhost
作为域名的URL不匹配。客户端或服务器上的任何设置都不能绕过此要求。您需要为此域使用不同的证书,或者创建包含这两个名称的证书。
我让它工作编辑了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都很好用。