Apache(2.4,版本 .20 和 .23)向我的错误日志发送以下警告:
[Tue Oct 04 09:17:02.438371 2016] [ssl:warn] [pid 55157:tid 140100469708544] AH01909: <host>:<port>:0 server certificate does NOT include an ID which matches the server name
然而,当我去https://主机名:端口/... 使用 Google Chrome,我得到了绿色锁,单击它并查看服务器信息提供了有关我的服务器的所有正确信息。
这是 Apache 错误吗?是我理解错了吗?
##
## SSL Virtual Host Context
##
<VirtualHost _default_:<port>>
DocumentRoot "<the path>"
ServerName <host>:<port>
我应该更换“默认“使用我的主机名?
openssl x509 -in [证书文件] -noout -subject
-->
主题=.../OU=PlatinumSSL/CN=[主机]
因此,我在 conf 文件中正确定义了服务器名称,并且证书中正确列出了主机名。
答案1
这只是一个警告。
定义指令 ServerName 来指定您正在服务的 URL 是合乎逻辑的,当您配置证书时,httpd 会将 ServerName 中的名称与您正在使用的证书中的 CN 进行匹配。
这不会阻止 httpd 运行,因为这不是一个致命错误或其他什么,但它只是警告您,因为客户端会抱怨。
关于 VirtualHost 指令,不要在其中定义名称,名称应该在 ServerName 中定义,正如我上面提到的。
简而言之:确保证书中的 ServerName 和 CN 或 SAN 匹配。
您可以使用此命令检查证书中的 CN:
openssl x509 -in /path/to/cert.crt -noout -subject
此外,如果您的证书是通配符,那么明智的做法是在您的虚拟主机中定义这些指令:
Servername example.com
ServerAlias *.example.com