我在我的 apache 上运行多个虚拟主机,并且我想要一个虚拟主机来提供 ssl 服务器。
我已经关注给我的指示我从那里购买了证书。
每当我使用 https 访问我的网站时,Firefox 都会显示“无法连接错误”。
我的 ssl.conf 包含在 httpd.conf 中,如下所示:
NameVirtualHost xxx.xxx.xxx.xxx:443
<VirtualHost xxx.xxx.xxx.xxx:443>
DocumentRoot "/var/www/html/path/to/dir"
ServerName *.xxx.xxx.com
ServerAlias *.xxx.xxx.com
Alias /path "/var/www/html/development/path/to/somewhere/else"
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/ssl/crt/STAR_xxx_xxx_com.crt
SSLCertificateKeyFile /etc/ssl/crt/private.key
SSLCACertificateFile /etc/httpd/conf/STAR_xxx_xxx_com.ca-bundle
<Directory "/var/www/html/path/to/dir">
Order Deny,Allow
Allow from all
Options -Indexes
AllowOverride All
</Directory>
</VirtualHost>
我还能做什么来解决这个问题?
编辑其他一些想法:
- 我读到我的 apache 必须以某种方式使用 SSL 进行编译。这是一个问题吗?
- 在某些配置中,Listen 443 被包含在标签中。这也是一个问题吗?
当我执行 lsof -I :443 时,我得到了一个
命令 PID 用户 FD 类型 设备大小 节点名称
httpd 8872 root 5u IPv6 78180368 TCP *:https (LISTEN)
httpd 8874 apache 5u IPv6 78180368 TCP *:https (LISTEN)
httpd 8875 apache 5u IPv6 78180368 TCP *:https (LISTEN)
httpd 8876 apache 5u IPv6 78180368 TCP *:https (LISTEN)
httpd 8877 apache 5u IPv6 78180368 TCP *:https (LISTEN)
httpd 8878 apache 5u IPv6 78180368 TCP *:https (LISTEN)
httpd 8879 apache 5u IPv6 78180368 TCP *:https (LISTEN)
httpd 8880 apache 5u IPv6 78180368 TCP *:https (LISTEN)
httpd 8881 apache 5u IPv6 78180368 TCP *:https (LISTEN)
httpd 8893 apache 5u IPv6 78180368 TCP *:https (LISTEN)
httpd 8894 apache 5u IPv6 78180368 TCP *:https (LISTEN)
httpd 8895 apache 5u IPv6 78180368 TCP *:https (LISTEN)
httpd 9067 apache 5u IPv6 78180368 TCP *:https (LISTEN)
我想这可能不是我所期望的,因为我只想要一个虚拟主机来监听 443。或者这是正确的?
答案1
你的 中有类似这样的台词吗httpd.conf
?
Listen 443
答案2
您是否尝试过为 http 和 https 创建两个不同的标签?此外,您是否指向您的证书?您的位置将与下面的我的不同。
<VirtualHost *:80>
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /var/cert/domain.net.crt
SSLCertificateKeyFile /var/cert/domain.key.nopass
SSLCertificateChainFile /var/cert/gd_bundle_domain.crt
</VirtualHost>
答案3
您的防火墙可能关闭了 443 端口。在 Linux 上,您可以通过运行以下命令列出规则iptables -L
答案4
通过重新启动 iptables 可以解决这个问题
service iptables stop
service iptables start