我最近在运行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
我得到“装”。
有任何想法吗?
在httpd-ssl.conf中,你有Listen 443吗?
如果没有,请尝试添加,然后重新启动apache。
首先检查是否启用了mod_ssl。如果没有,请通过运行a2enmod ssl启用它。然后检查Apache是否正在侦听端口443上的https。然后检查防火墙是否阻止端口443。
在httpd.conf中,默认情况下禁用以下内容:
if (!extension_loaded('openssl'))
{
echo "not loaded";
}
else
{
echo "loaded" ;
}
只需从Include中删除#并重新启动Apache。
如果您可以在本地连接(例如,如qti建议的那样使用# Secure (SSL/TLS) connections
# Include conf/extra/httpd-ssl.conf
),请检查防火墙是否配置正确。
在我的情况下,telnet localhost 443
阻止了一切,所以我不得不ufw
修复了潜在的问题相同的症状。
我刚遇到一个进程侦听端口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条目为我解决了问题。
如果没有设置SSL密钥(或者由gremlins莫名其妙地注释掉),Apache 2.2 SSL将无声地失败。日志中没有错误,它将不会收听443. http:80站点将起作用。
对我来说,这是愚蠢的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现在正常工作。
如果其他人发现这个并且正在使用Amazon Lightsail(像我一样),则必须使用他们的Web UI显式打开端口443。
在我发现之前,我花了几个小时倾注我的服务器配置文件:/
有时iptables -F有效。我在亚马逊上打开了入境端口443,但该网站仍未在我的浏览器中打开。
登录到该站点,给了一个iptables -F,并立即访问该站点。