Ubuntu / Apache2:我无法打开端口 443

Ubuntu / Apache2:我无法打开端口 443

我正在尝试在我的 Ubuntu 14 服务器上安装 SSL 证书(使用 apache 2)。由于某种原因,端口 443 似乎已关闭

我安装并启用了 ssl

/etc/apache2/ports.conf如下:

Listen 80

#<IfModule ssl_module>
#       Listen 443
#</IfModule>

<IfModule mod_ssl.c>
    Listen 443
    NameVirtualHost 11.11.11.11:443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

root@server01:/home/admin# netstat -ntlp | grep LISTEN
tcp        0      0 127.0.0.1:10024         0.0.0.0:*               LISTEN      1317/amavisd-new (m
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      1184/mysqld     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1116/sshd       
tcp6       0      0 :::80                   :::*                    LISTEN      2037/apache2    
tcp6       0      0 :::22                   :::*                    LISTEN      1116/sshd       
tcp6       0      0 :::443                  :::*                    LISTEN      2037/apache2 

联邦水务局

root@server01:/home/admin# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22                         ALLOW IN    Anywhere
22/tcp                     ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
21/tcp                     ALLOW IN    Anywhere
443/tcp                    ALLOW IN    Anywhere
22 (v6)                    ALLOW IN    Anywhere (v6)
22/tcp (v6)                ALLOW IN    Anywhere (v6)
80/tcp (v6)                ALLOW IN    Anywhere (v6)
21/tcp (v6)                ALLOW IN    Anywhere (v6)
443/tcp (v6)               ALLOW IN    Anywhere (v6)

我是否遗漏了什么?任何帮助都将不胜感激。

编辑 这是我的示例.net-ssl.conf

<VirtualHost *:443>

        ServerName exemple.net
        ServerAlias www.exemple.net
        DocumentRoot /var/www/exemple.net/
        CustomLog /var/log/apache2/secure_access.log combined

        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/exemple.net.crt
        SSLCertificateKeyFile /etc/ssl/private/exemple.net.key
        SSLCertificateChainFile /etc/ssl/certs/GandiXXXSSLCA.pem
        # SSLVerifyClient None

  </VirtualHost>

答案1

从 NameVirtualHost 92.243.16.14:443 中删除 IP 地址(实际上您已将所有 VirtualHosts 绑定在该 IP 地址上),以便在所有网络接口(IP)上监听端口 443:

名称虚拟主机 *:443

然后,您可以通过将 VirtualHost 绑定到特定的 IP 地址来区分域,如下所示:VirtualHost 1.2.3.4:443 VirtualHost 1.2.3.5:443 等等...

要在服务器上使用 VirtualHost 和 ServerName 语句创建任意数量的 SSL Vhost 以区分域,您可以使用以下步骤进行更详细的配置http://www.bytelinux.com/create-self-signed-certificates-enable-apache-ssl-ubuntu-14-10/

我并不是说在接口上绑定是错误的,但是如果该 IP 地址发生变化,那么您将无法再访问您的域,也无法在本地访问 SSL(127.0.0.1)。

答案2

MadHatter 的解决方案,

https://serverfault.com/questions/666696/ubuntu-apache2-cannot-open-port-443/666713?noredirect=1#comment814308_666713

我对 ufw 了解不多,但在这种情况下,我认为它对 INPUT 流量完全无效,因为实施它的规则是在全面 DROP(INPUT 链中的第五条规则)之后。从 INPUT 链中后面规则的数据包计数可以看出,没有任何数据包能够到达任何应该将流量发送到 ufw 链的规则(我推测这些规则旨在实施 ufw 策略)。

如果你

iptables -I INPUT 5 -p tcp --dport 443 -j ACCEPT

这应该会打开您的 HTTPS 端口。让它在重启后保持不变,我将把它留给您,因为它依赖于实现。

答案3

Apache 正在运行并且端口 443 也打开,这里您需要使用 ifconfig 命令检查 IP 92.243.16.14 是否配置。因为 443 在默认接口上运行。

相关内容