我有以下配置:
<VirtualHost 1.2.3.4:443>
ServerName mydomain.com
ServerAlias www.mydomain.com
...
</VirtualHost>
我想www.mydomain.com
成为主域,但我还希望用户能够只输入mydomain.com
,然后我将他们重定向到www
。因此证书名称是www.mydomain.com
。但是,我在启动 Apache 时不断收到此警告:
AH01909:mydomain.com:443:0 服务器证书不包含与服务器名称匹配的 ID
一切都运行良好,而且我在 ssllabs.com 上也获得了 A 级评价。但这个警告仍然困扰着我,我想知道我是否可能遗漏了什么?
显然,证书的 CN 与服务器名称不匹配,但它仍然与别名匹配。
这是“不好的做法”吗?还是有其他方法可以解决这个问题而不会产生此警告?我是否应该关心它?归根结底,这只是一个警告,表明发生了一些事情可能是错误的,但事实并非如此。或者这会导致客户端出现问题?
到目前为止,一切都运行良好,用户也没有抱怨,所以我想一切都运行正常。
答案1
一般来说警告“服务器证书不包含与服务器名称匹配的 ID”是警告(不是致命错误)向系统管理员指出,他们很可能犯了一个配置错误,表明设置了错误的 TLS 服务器证书,或者至少 Apache httpd 无法将 ServerName 与证书中的通用名称或任何 subjectAlternateName 匹配。
在您的情况下,只需切换 ServerName 和 ServerAlias 指令即可消除启动错误。
<VirtualHost 1.2.3.4:443>
ServerName www.example.com
ServerAlias example.com
但是,如果 www.example.com 证书上的“主题备用名称”条目未包含 example.com 的实际证书,则您可能需要获取该证书。