我最近在运行Apache 2的Amazon EC2 Ubuntu 12.04(32位)服务器上安装了SSL证书。
当我尝试通过https访问我的网站时,它无法加载。当我执行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 / path / file SSLCertificateKeyFile / path / file SSLCertificateChainFile / path / file
我将安全组配置为允许来自端口443的入站请求(TCP源:0.0.0.0/0)
当我用php执行以下测试时
if (!extension_loaded('openssl'))
{
echo "not loaded";
}
else
{
echo "loaded" ;
}
我得到“加载”。
有什么想法吗?
答案 0 :(得分:24)
在httpd-ssl.conf中,你有吗? 听443
如果没有,请尝试添加,然后重新启动apache。
答案 1 :(得分:11)
首先检查是否启用了mod_ssl。如果没有,请通过运行a2enmod ssl启用它。然后检查Apache是否正在侦听端口443上的https。然后检查防火墙是否没有阻塞端口443.
答案 2 :(得分:5)
在httpd.conf中,默认情况下禁用以下内容:
# Secure (SSL/TLS) connections
# Include conf/extra/httpd-ssl.conf
只需从Include中删除#并重新启动Apache。
答案 3 :(得分:3)
如果您可以在本地连接(例如,如同mti建议的telnet localhost 443
),请检查防火墙是否配置正确。
在我的情况下,ufw
阻止了所有内容,因此我不得不ufw allow 443
将基础问题修复为相同的症状。
答案 4 :(得分: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条目为我解决了问题。
答案 5 :(得分:0)
如果未设置SSL密钥(或由gremlins莫名其妙地注释掉了SSL密钥),则Apache 2.2 SSL将无提示地失败。日志中没有错误,也不会监听443。http:80站点将正常工作。
答案 6 :(得分:0)
对我来说,这是愚蠢的Chrome缓存。 Ctrl + Shift + Del
清除缓存,重新启动Chrome,SSL现在可以正常使用。
答案 7 :(得分:0)
如果其他人找到了这个并且正在使用Amazon Lightsail(像我一样),则必须使用其Web UI显式打开端口443。
在发现:/
之前,我花了数小时来查看服务器配置文件答案 8 :(得分:0)
首先,检查端口“ 80”和“ 443”上的进程sudo netstat -peanut | grep ':80'
和*sudo netstat -peanut | grep ':443'*
。如果443没有进程,那么这将有所帮助:
编辑Apache配置文件以提供证书效果很好。
使用命令sudo certbot --apache
你很好
答案 9 :(得分:-5)
有时 iptables -F 有效。我在亚马逊上打开了入境端口443,但该网站仍未在我的浏览器中打开。
登录到该网站,提供了iptables -F,并立即访问该网站。