自从过去三天以来,我一直面临一个奇怪的问题。 在这里发表我的问题之前,我做了所有需要做的事情。
我的httpd.conf如下所示:
NameVirtualHost *:443 Listen *:443 <VirtualHost server1.example.com:443> ServerName server1 #ServerName server1.example.com SSSLEngine on </VirtualHost>
在server1.example.com上应用SSL,但是在我们进入网站之后,只能在ServerName server1上工作,而不能在ServerName server1.example.com上工作。 我们没有任何configuration和networking文件中的server1。
所以,当我们这样做https://server1.example.com/xyz/ —它与ServerName server1一起使用,但不适用于ServerName server1.example.com。
问题在哪里? 我没有得到它。 / etc / hosts,/ etc / sysconfig / network,无处我们有server1; 即使在DNS也是如此。
请build议。
这是我们在错误日志中得到的:
[Thu Nov 24 11:40:14 2016] [警告] RSA服务器证书CommonName(CN) server1.example.com' does NOT match server name!? [Thu Nov 24 11:40:14 2016] [notice] Digest: generating secret for digest authentication ... [Thu Nov 24 11:40:14 2016] [notice] Digest: done [Thu Nov 24 11:40:14 2016] [notice] SSL FIPS mode disabled [Thu Nov 24 11:40:14 2016] [warn] RSA server certificate CommonName (CN) server1.example.com' does NOT match server name!? [Thu Nov 24 11:40:14 2016] [notice] Digest: generating secret for digest authentication ... [Thu Nov 24 11:40:14 2016] [notice] Digest: done [Thu Nov 24 11:40:14 2016] [notice] SSL FIPS mode disabled [Thu Nov 24 11:40:14 2016] [warn] RSA server certificate CommonName (CN) server1.example.com'与服务器名称不匹配! [Thu Nov 24 11:40:14 2016] [notice] Apache / 2.2.3(Red Hat)configuration – 恢复正常运行[Thu Nov 24 11:49:47 2016] [notice]抓到SIGTERM,closures[Thu Nov 24 11月24日11:49:47 2016] [notice] suEXEC机制启用(包装:/ usr / sbin / suexec)[Thu Nov 24 11:49:47 2016] [notice] SSL FIPS mode disabled [Thu Nov 24 11:49 :RSA服务器证书是一个CA证书(BasicConstraints:CA == TRUE!?)[Thu Nov 24 11:49:47 2016] [警告] RSA服务器证书CommonName(CN) server1' does NOT match server name!? [Thu Nov 24 11:49:47 2016] [notice] Digest: generating secret for digest authentication ... [Thu Nov 24 11:49:47 2016] [notice] Digest: done [Thu Nov 24 11:49:47 2016] [notice] SSL FIPS mode disabled [Thu Nov 24 11:49:47 2016] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?) [Thu Nov 24 11:49:47 2016] [warn] RSA server certificate CommonName (CN) server1' does NOT match server name!? [Thu Nov 24 11:49:47 2016] [notice] Digest: generating secret for digest authentication ... [Thu Nov 24 11:49:47 2016] [notice] Digest: done [Thu Nov 24 11:49:47 2016] [notice] SSL FIPS mode disabled [Thu Nov 24 11:49:47 2016] [warn] RSA server certificate is a CA certificate (BasicConstraints: CA == TRUE !?) [Thu Nov 24 11:49:47 2016] [warn] RSA server certificate CommonName (CN) server1'与服务器名称不匹配! [Thu Nov 24 11:49:47 2016] [notice] Apache / 2.2.3(Red Hat)configuration – 恢复正常运行[Thu Nov 24 11:55:19 2016] [notice]抓到SIGTERM,closures[Thu Nov 24 11月24日11:55:20 2016] [notice] suEXEC启用机制(包装:/ usr / sbin / suexec)[Thu Nov 24 11:55:20 2016] [notice] SSL FIPS mode disabled [Thu Nov 24 11:55 :20 2016] [警告] RSA服务器证书CommonName(CN) server1.example.com' does NOT match server name!? [Thu Nov 24 11:55:20 2016] [notice] Digest: generating secret for digest authentication ... [Thu Nov 24 11:55:20 2016] [notice] Digest: done [Thu Nov 24 11:55:20 2016] [notice] SSL FIPS mode disabled [Thu Nov 24 11:55:20 2016] [warn] RSA server certificate CommonName (CN) server1.example.com' does NOT match server name!? [Thu Nov 24 11:55:20 2016] [notice] Digest: generating secret for digest authentication ... [Thu Nov 24 11:55:20 2016] [notice] Digest: done [Thu Nov 24 11:55:20 2016] [notice] SSL FIPS mode disabled [Thu Nov 24 11:55:20 2016] [warn] RSA server certificate CommonName (CN) server1.example.com'与服务器名称不匹配! [Thu Nov 24 11:55:20 2016] [notice] Apache / 2.2.3(Red Hat)configuration – 恢复正常运行
尝试
<VirtualHost *:443> ServerName server1.example.com ServerAlias server1 SSLEngine on </VirtualHost>
您希望VirtualHost语句中的通配符closures基于IP的虚拟主机映射。 http://httpd.apache.org/docs/2.4/vhosts/name-based.html
注意固定线( SSLEngine而不是SSSLEngine )。
ServerName server1.example.com ServerAlias server1
尝试将您的configuration更改为:
NameVirtualHost *:443 Listen *:443 <VirtualHost *:443> ServerName server1.example.com ServerAlias server1 SSSLEngine on </VirtualHost>
我倾向于避免在VirtualHost指令中使用主机名。 如果DNS或任何方面的主机名查找过程中断,无论是在您的服务器上,或在您的服务器指向/使用的DNS服务器,Apache无法确定server1.example.com初始启动时解决什么,它将不加载虚拟主机configuration。
其次, ServerName是出现在错误页面(404未find,500内部错误等)和您的网站的“主名称”的string,所以我倾向于使用ServerName的全限定主机名。 如果我需要通过更多的名称访问站点,我使用ServerAlias指令(可以有多行ServerAlias或每个ServerAlias行给出多个名称)添加这些(一个或多个)。
但是由于这是SSL,我高度怀疑你会发现通过server1访问时会发生证书不匹配,但是如果忽略浏览器安全警告,这应该仍然有效。