2013-07-16 71 views
14

我最近运行的Apache 2SSL但HTTPS不工作

当我尝试通过HTTPS访问我的网站我的Amazon EC2上的Ubuntu 12.04(32位)服务器上安装SSL证书,它不会加载。当我执行nmap扫描时,我发现端口443未打开。

我试图打开我的IP表中的端口443无济于事。 iptables -L yeilds

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

下面是如何安装的SSL

我修改/etc/init.d/apache2.conf包括ssl.conf中,并修改ssl.conf中,包括我的证书文件的必要 路径,即

了SSLCertificateFile /路径/文件 了SSLCertificateKeyFile /路径/文件 SSLCertificateChainFile /路径/文件

我配置我的安全格罗最多允许来自端口443的入站请求(TCP源:0.0.0.0/0)

当我用PHP

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

执行下面的测试,我得到 “装”。

任何想法?

+1

当您尝试从端口443打开从远程计算机到您的服务器的telnet连接时会发生什么情况?它连接吗?如果是这样,那么你可以排除防火墙或路由问题,或者iptables的问题。如果你的apache日志显示任何有趣的东西,我也会很好奇。 – mti2935

+0

telnet到443返回“连接被拒绝”。当我尝试访问https://mydomain.net – rocketas

+1

时,没有任何内容被添加到apache日志中。如果你在端口443上从主机本身尝试一个环回连接,那么怎么办?换句话说,telnet localhost 443.是否连接?我试图隔离这是否是apache问题或网络/防火墙问题。 – mti2935

回答

17

在的httpd-ssl.conf中,你有 听443

如果没有,尝试补充说,并重新启动Apache的。

+1

我没有。当我使用apache2.conf(ubuntu的东西?)来加载一个外部ssl.conf时,我没有任何地方有这个指令。直接将其添加到我的apache conf并重新配置虚拟主机指令/ mod_ssl.so包括已解决的问题。谢谢 – rocketas

+0

这也适用于我,只有我必须在apache 2.4中修改“ports.conf” – CodeMouse92

+0

该文件是'ports.conf' – Bakhshi

3

如果您可以在本地连接(例如按照mti的建议与telnet localhost 443),请检查防火墙是否配置正确。

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

+1

谢谢,这个想法帮助我们解决了我们的问题。对我们来说,这是公司的防火墙,所以人们也应该考虑这一点。 – AlexMA

-5

有时一个iptables -F的作品。我在亚马逊打开了端口443,但该网站仍未在我的浏览器中打开。

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

+4

iptables -F将删除您的所有防火墙规则。不是一个好主意。 http://ipset.netfilter.org/iptables.man.html – Travis

4

在httpd.conf下面的默认情况下禁用:

# Secure (SSL/TLS) connections 
# Include conf/extra/httpd-ssl.conf  

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

+0

由于这个,我现在可能会在工作时间离开。谢谢。 – haakym

6

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

+1

这是我的防火墙... –

0

我刚刚遇到一个情况,那里有一个进程监听端口443,防火墙完全打开,SELinux被禁用,并且我的仍然无法telnet到端口443.甚至没有从本地主机。我一直得到:

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

原来iptables的NAT表有一些规则,将流量重定向未来在端口443到不同的端口(8443)。没有什么是侦听端口8443.

# iptables --table nat --list 
Chain PREROUTING (policy ACCEPT) 
target  prot opt source    destination   
REDIRECT tcp -- anywhere    anywhere   tcp dpt:https redir ports 8443 

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