我在VMWare上全新安装了Linux CentOS。端口80和443在我的路由器中打开。为了限制可能的问题,我暂时禁用了SELinux,并且停止了iptables服务。
我已按照有关使用CentOS设置SSL安全的Web服务器的文章中的说明进行操作:https://wiki.centos.org/HowTos/Https。
以下是我对默认ssl.conf文件所做的唯一更改:
更改服务器名称以列出我的服务器名称
修改后的SSLCertificateFile与我的.crt文件的名称
修改后的SSLCertificateKeyFile与我的.key文件的名称
。
<VirtualHost _default_:443>
ServerName www.example.com
SSLCertificateFile /etc/pki/tls/certs/example.crt
SSLCertificateKeyFile /etc/pki/tls/private/example.key
</VirtualHost>
使用局域网中的任何计算机,我都可以从HTTPD Web服务器获取HTTP(80)和HTTPS(443)网页。在不同网络上使用计算机时,我可以获得HTTP(80)页面。但是,HTTPS(443)页会产生“错误404,找不到请求的资源”。
使用其他网络中的计算机获取HTTP(80)页面,我在此日志中看到连接:
/ var / log / httpd / access_log
使用不同网络中的计算机请求HTTPS(443)页面时,这些日志不包含任何新事件:
/ var / log / httpd / access_log
/ var / log / httpd / error_log
/ var / log / httpd / ssl_request_log
/ var / log / httpd / ssl_access_log
客户端上的Wireshark捕获不显示任何相关的HTTP(80),HTTPS(443)或SSL数据包。
由于请求HTTPS(443)网页时日志未显示事件,并且Wireshark也未捕获数据包,因此我不确定下一步该去哪里诊断该问题。如果有任何提示或建议来诊断问题,我将不胜感激。
最佳答案
我能够解决这个问题。本文中的说明提供了修复程序:https://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-httpd-secure-server.html。
最初,我的ssl.conf文件的域名中没有www或.com,如下所示:
<VirtualHost _default_:443>
ServerName www.example.com
SSLCertificateFile /etc/pki/tls/certs/example.crt
SSLCertificateKeyFile /etc/pki/tls/private/example.key
</VirtualHost>
我在CentOS文档中注意到使用了www和.com。我创建了一个新的证书和私钥,然后更新了ssl.conf文件。
<VirtualHost _default_:443>
ServerName www.example.com
SSLCertificateFile /etc/pki/tls/certs/www.example.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/www.example.com.key
</VirtualHost>
现在,在远程网络上请求网页时,不再出现错误404。这告诉我,证书,私钥和ssl.conf文件的格式有特定要求。
关于apache - CentOS HTTPD SSL 404错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36050140/