OpenLiteSpeed多虚拟主机SSL配置异常:虚拟主机级SSL不生效
OpenLiteSpeed 多虚拟主机SNI SSL配置失效解决办法
先给你捋几个实际配置中容易踩的关键排查点:
1. 必须开启监听端口的SNI开关
这是最容易忽略的核心步骤:
- 进入OpenLiteSpeed控制台,找到Listeners里的443端口监听,切换到SSL标签页
- 一定要勾选Enable SNI,仅将
Secure设为Yes不足以触发虚拟主机级证书生效,SNI才是多证书分流的关键开关 - 同时清空监听级的Certificate和Private Key字段!只要监听级留存证书,服务器会优先使用该证书,直接忽略虚拟主机的SNI配置
2. 核对虚拟主机的SSL配置细节
逐个检查每个虚拟主机的SSL设置:
- Domain Name必须和证书绑定的域名完全一致,避免拼写错误(比如
test.com和test1.com要严格区分) - 证书文件路径要填写绝对路径,例如
/usr/local/lsws/conf/certs/test.com.crt,同时确保nobody用户拥有读取权限:chmod 644 /usr/local/lsws/conf/certs/*.crt /usr/local/lsws/conf/certs/*.key chown nobody:nogroup /usr/local/lsws/conf/certs/*.crt /usr/local/lsws/conf/certs/*.key - 如果有中间证书,务必填写到Chain Certificate File字段,缺失中间证书会导致浏览器直接判定证书无效
3. 确认监听与虚拟主机的绑定关系
回到监听的Virtual Host Mappings标签页:
- 确保两个虚拟主机都已绑定到443端口的监听
- 每个映射的Domain字段要和对应虚拟主机的域名完全匹配,避免冲突
4. 强制重启服务,避免优雅重启的缓存残留
控制台的"Graceful Restart"有时会残留旧配置,直接用命令行强制重启:
/usr/local/lsws/bin/lswsctrl restart
重启后查看日志排查报错:
tail -f /usr/local/lsws/logs/error.log
如果日志出现"permission denied"或"certificate not found",针对性调整文件权限或路径即可
5. 用openssl测试SNI是否生效
分别测试两个域名的证书返回情况:
openssl s_client -connect 你的服务器IP:443 -servername test.com openssl s_client -connect 你的服务器IP:443 -servername demo.com
查看返回证书信息中的Subject字段,确认是否对应各自域名,快速验证SNI功能是否正常工作
6. 排除网络层面的干扰
- 检查服务器防火墙(ufw/firewalld)是否放行443端口,避免端口被拦截
- 如果使用CDN或反向代理,需确保其支持SNI,且未强制指定固定证书
内容的提问来源于stack exchange,提问作者Sina
相关产品推荐
相关产品推荐

