Apache2 未在 Ubuntu 上监听 SSL

Apache2 未在 Ubuntu 上监听 SSL

尝试在安装了 Apache 的 Ubuntu 服务器上配置 Apache2 上的 SSL

sudo apt install apache2

开启ufw防火墙

sudo ufw allow 'Apache'
ufw allow https

在 /root/cert 中安装 SSL 文件

 chmod 400 /root/cert/*
  chmod 500 /root/cert/

在 /etc/apache2/sites-available 中发现两个 conf 文件:domainname.conf 和 default-ssl.conf 不知道要修改哪一个,因此通过添加以下几行修改了 domainname.conf

 <VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /root/cert/ca-bundle.crt
        SSLCertificateKeyFile /root/cert/Private.key
        SSLCertificateChainFile /root/cert/certificate.crt
   </VirtualHost>

apachectl configtest
apachectl restart
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
systemctl enable apache2 --now 
netstat -ntlp |  grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      899/apache2  

netstat -ntlp |  grep 443

returns nothing

补充信息 - 网站 DNS 解析尚未发生,因为名称服务器正在更改。所以我正在检查 localhost。localhost:80 有效,localhost:443 无效,出现错误:localhost 拒绝连接

几个问题:

  1. 我是不是误切换了文件 SSLCertificateFile SSLCertificateChainFile,因为我不知道哪个是哪个。此外,它还有注释语句 -----BEGIN CERTIFICATE----- 和 -----BEGIN CERTIFICATE-----

  2. 当我表演

    apache2ctl configtest 显示 AH00558:apache2:无法可靠地确定服务器的完全限定域名,使用 127.0.0.1。全局设置“ServerName”指令以隐藏此消息语法 OK

这是一个问题吗?因为名称服务器仍然指向旧的提供商,而我正在切换到运行新网站的新提供商名称服务器。

有人可以帮忙吗?

答案1

如果 Apache 进程未监听端口 443,则说明Listen 443您的配置中缺少该指令。如果模块处于活动状态,则默认情况下应启用该指令ssl,因此请确保已加载该模块。

sudo a2enmod ssl

答案2

另外(查看其他答案)你应该更改配置中的文件。这:

SSLCertificateFile /root/cert/ca-bundle.crt
SSLCertificateKeyFile /root/cert/Private.key
SSLCertificateChainFile /root/cert/certificate.crt

应该

SSLCertificateFile /root/cert/certificate.crt
SSLCertificateKeyFile /root/cert/Private.key
SSLCertificateChainFile /root/cert/ca-bundle.crt

答案3

来自的配置/etc/apache2/sites-available不包含在 中apache2.conf,但来自 的配置/etc/apache2/sites-enabled。使用 创建符号链接

sudo a2ensite domainname

答案4

您的 domainname.conf 文件似乎未启用。

检查 /etc/apache2/sites-enabled 并找出哪个配置文件已启用。

相关内容