尝试在安装了 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 拒绝连接
几个问题:
我是不是误切换了文件 SSLCertificateFile SSLCertificateChainFile,因为我不知道哪个是哪个。此外,它还有注释语句 -----BEGIN CERTIFICATE----- 和 -----BEGIN CERTIFICATE-----
当我表演
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 并找出哪个配置文件已启用。