![安装在子域中的单域 SSL 证书显示在另一个子域中](https://linux22.com/image/717621/%E5%AE%89%E8%A3%85%E5%9C%A8%E5%AD%90%E5%9F%9F%E4%B8%AD%E7%9A%84%E5%8D%95%E5%9F%9F%20SSL%20%E8%AF%81%E4%B9%A6%E6%98%BE%E7%A4%BA%E5%9C%A8%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%AD%90%E5%9F%9F%E4%B8%AD.png)
安装在子域中的单域 SSL 证书显示在另一个子域中
服务器信息:
Ubuntu 14.04 Apache2、Mysql、PHP7
控制面板 ISPConfig 3.1
所有域名使用单一 IP
我已经安装并运行:
域名.ltd
sub1.domain.ltd sub2.domain.ltd sub3.domain.ltd sub4.domain.ltd sub5.domain.ltd 等等
正如标题所述,我从 RapidSSL 购买了单个域名 sub1.domain.ltd 的单个 SSL 证书
但是当我检查sub2.domain.ltd
证书中的通用名称均与输入的名称 (sub1.domain.ltd) 不匹配。在 Web 浏览器中访问此站点时,您可能会收到错误。了解有关名称不匹配错误的更多信息。
是安装错误吗?如何安装?如何正确安装
或者每个子域名不能拥有自己的独立 SSL 证书或 IP 地址
答案1
当您拥有一台具有多个 SSL/TLS 主机名的服务器时,只有几种方法可以成功完成:
- 单个证书,其中所有主机名均列为主题备用名称(SAN - 证书扩展)
- 或多个证书,服务器和客户端均支持 SNI(服务器名称指示 - SSL/TLS 协议功能),并且每个证书与特定命名的虚拟主机相关联
- 或多个证书,每个证书都在其自己的服务或 Apache 虚拟主机上,每个都分配有单独的 IP 地址
最后一个选项是最兼容旧版本的,但显然难以实现,因为今天为单个服务器获取多个公共 IP 地址可能并不容易。
第二个选项可能是您计划使用的,但您的客户端或服务器缺少 SNI 支持,或者存在配置错误。
检查您的 Apache 错误日志。如果它显示:
You should not use name-based virtual hosts in conjunction with SSL!!
当您启动 Apache 时,则表明您的 Apache 版本不支持 SNI。如果 Apache 中存在 SNI 支持,则应该显示:
[warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366)
看Apache wiki 中的此页面更多细节。