我正在尝试在我的 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 的解决方案,
我对 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 在默认接口上运行。