在Apache2上安装SSL但HTTPS无法正常工作

问题描述 投票:20回答:9

我最近在运行Apache 2的Amazon EC2 Ubuntu 12.04(32位)服务器上安装了SSL证书。

当我尝试通过https访问我的网站时,它不会加载。当我执行nmap扫描时,我看到端口443未打开。

我试图在我的iptables中打开端口443无济于事。 qazxsw poi收益率

iptables -L

这是我安装ssl的方法

我修改了/etc/init.d/apache2.conf以包含ssl.conf和修改后的ssl.conf以包含我的证书文件的必需路径,即

SSLCertificateFile / path / file SSLCertificateKeyFile / path / file SSLCertificateChainFile / path / file

我将安全组配置为允许来自端口443的入站请求(TCP源:0.0.0.0/0)

当我用PHP执行以下测试时

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https

我得到“装”。

有任何想法吗?

apache ssl amazon-ec2 firewall iptables
9个回答
24
投票

在httpd-ssl.conf中,你有Listen 443吗?

如果没有,请尝试添加,然后重新启动apache。


12
投票

首先检查是否启用了mod_ssl。如果没有,请通过运行a2enmod ssl启用它。然后检查Apache是​​否正在侦听端口443上的https。然后检查防火墙是否阻止端口443。


5
投票

在httpd.conf中,默认情况下禁用以下内容:

if (!extension_loaded('openssl')) 
{
  echo "not loaded";
}
else
{
  echo "loaded"   ;
}

只需从Include中删除#并重新启动Apache。


3
投票

如果您可以在本地连接(例如,如qti建议的那样使用# Secure (SSL/TLS) connections # Include conf/extra/httpd-ssl.conf ),请检查防火墙是否配置正确。

在我的情况下,telnet localhost 443阻止了一切,所以我不得不ufw修复了潜在的问题相同的症状。


0
投票

我刚遇到一个进程侦听端口443的情况,防火墙完全打开,SELinux被禁用,我仍然无法telnet到443端口。甚至没有从localhost。我一直得到:

ufw allow 443

事实证明,iptables NAT表有一些规则将端口443上的流量重定向到另一个端口(8443)。没有什么东西在端口8443上听。

telnet 127.0.0.1 443
telnet: connect to address 127.0.0.1: Connection refused`

删除相关的NAT条目为我解决了问题。


0
投票

如果没有设置SSL密钥(或者由gremlins莫名其妙地注释掉),Apache 2.2 SSL将无声地失败。日志中没有错误,它将不会收听443. http:80站点将起作用。


0
投票

对我来说,这是愚蠢的Chrome缓存。 # iptables --table nat --list Chain PREROUTING (policy ACCEPT) target prot opt source destination REDIRECT tcp -- anywhere anywhere tcp dpt:https redir ports 8443 清除缓存,重新启动Chrome,SSL现在正常工作。


0
投票

如果其他人发现这个并且正在使用Amazon Lightsail(像我一样),则必须使用他们的Web UI显式打开端口443。

在我发现之前,我花了几个小时倾注我的服务器配置文件:/


-5
投票

有时iptables -F有效。我在亚马逊上打开了入境端口443,但该网站仍未在我的浏览器中打开。

登录到该站点,给了一个iptables -F,并立即访问该站点。

© www.soinside.com 2019 - 2024. All rights reserved.