25

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

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

我试图在我的 ip 表中打开端口 443 无济于事。iptables -L产量

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"   ;
}

我得到“加载”。

有任何想法吗?

4

10 回答 10

26

In httpd-ssl.conf, do you have Listen 443

If not, try adding that, and restarting apache.

于 2013-07-16T17:45:57.227 回答
21

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

于 2016-08-28T15:16:41.270 回答
19

如果其他人发现此问题并使用 Amazon Lightsail(如我),您必须使用他们的 Web UI 显式打开端口 443。

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

于 2019-06-05T20:50:19.203 回答
7

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

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

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

于 2014-09-01T14:20:04.957 回答
5

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

就我而言,ufw它阻止了一切,所以我不得不ufw allow 443将潜在问题修复为相同的症状。

于 2013-11-19T01:54:03.207 回答
0

首先,检查端口“80”和“443”上的进程sudo netstat -peanut | grep ':80'以及*sudo netstat -peanut | grep ':443'*。如果 443 没有进程,那么这将有所帮助:编辑 Apache 配置文件以提供证书效果很好。使用命令sudo certbot --apache 你很好

于 2020-10-29T20:31:19.030 回答
0

我刚刚遇到了这样一种情况,即有一个进程正在监听端口 443,防火墙完全打开,SELinux 被禁用,我仍然无法 telnet 到端口 443。甚至从 localhost 也不行。我不断得到:

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 条目为我解决了这个问题。

于 2017-07-05T12:24:38.023 回答
0

如果 SSL 密钥没有设置(或者被 gremlins 莫名其妙地注释掉了),Apache 2.2 SSL 将静默失败。日志中不会出现错误,也不会监听 443。http:80 站点可以正常工作。

于 2018-12-04T16:44:32.980 回答
0

对我来说,这是愚蠢的 Chrome 缓存。Ctrl + Shift + Del清除缓存,重新启动 Chrome,SSL 现在可以正常工作。

于 2019-03-14T09:05:09.173 回答
-6

有时iptables -F有效。我在 Amazon 中为入站打开了端口 443,但仍然没有在我的浏览器中打开该站点。

登录到该站点,输入 iptables -F 并立即可以访问该站点。

于 2014-08-18T12:43:58.830 回答