如何在XAMPP中启用虚拟主机及解决Yii2高级项目配置时的SSL证书不匹配错误
解决XAMPP虚拟主机配置中的SSL警告问题
嘿,看起来你遇到的这个SSL警告其实和你配置的8081端口HTTP虚拟主机没啥关系——问题出在Apache默认的SSL配置上!
先给你拆解下错误信息AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name:这是Apache默认加载的SSL模块在找443端口的默认虚拟主机时,发现证书里的域名是example.com,和实际要匹配的服务器名不对应,所以抛出警告。哪怕你现在用的是8081的HTTP服务,只要SSL模块开启了,Apache就会加载这个默认配置。
下面是具体的解决步骤:
方法一:暂时禁用SSL模块(如果不需要HTTPS的话)
如果你当前不需要用HTTPS服务,直接把SSL模块关掉就行:
- 打开XAMPP控制面板,点击Apache的
Config按钮,选择Apache (httpd.conf) - 找到这一行:
LoadModule ssl_module modules/mod_ssl.so - 在前面加个
#注释掉它,变成#LoadModule ssl_module modules/mod_ssl.so - 保存文件,重启Apache,警告应该就消失了
方法二:修正SSL配置(如果需要保留HTTPS功能)
如果你之后要用到4433端口的HTTPS服务,就得修改默认的SSL虚拟主机配置:
- 同样在XAMPP控制面板,点击Apache的
Config,选择Apache (httpd-ssl.conf) - 找到默认的
<VirtualHost _default_:443>块,把端口改成你的SSL端口4433,变成<VirtualHost _default_:4433> - 在这个虚拟主机块里,找到
ServerName www.example.com:443,改成你自己的域名+端口,比如ServerName winnersprimary.ac.tz:4433 - 如果你用的是自签证书,要确保证书文件里的Common Name(CN)和你设置的
ServerName一致(可以重新生成对应域名的自签证书) - 保存文件,重启Apache
额外的小建议
另外检查下你配置里的细节:
- 你的
httpd-vhosts.conf里路径用了单引号,建议改成双引号或者直接去掉引号,同时把反斜杠换成正斜杠(Apache对正斜杠更友好),比如:DocumentRoot "c:/xampp/htdocs/winnersprimary/frontend/web" <Directory "c:/xampp/htdocs/winnersprimary/frontend/web/"> - 确认Windows的hosts文件(
C:\Windows\System32\drivers\etc\hosts)已经添加了这两行:
保存hosts文件后(需要管理员权限),虚拟主机才能正常访问。127.0.0.1 winnersprimary.ac.tz 127.0.0.1 admin.winnersprimary.ac.tz
内容的提问来源于stack exchange,提问作者Roman




