更新 LetsEncrypt 证书会导致基于 Apache 的网站停止运行

更新 LetsEncrypt 证书会导致基于 Apache 的网站停止运行

我最近收到一封来自 LetsEncrypt 的电子邮件,告诉我我的网站证书即将过期 - 我将网站配置为仅使用 HTTPS。到目前为止,证书一直在自动更新,没有任何问题。我将 Ubuntu 18.04 上的 OpenSSL 库升级为使用最新的 TLS 版本 1.3。一切似乎都运行正常,但使用在 Windows 7 上运行的 Firefox Web 浏览器访问我的网站时显示以下消息:-

SSL_ERROR_RX_RECORD_TOO_LONG

当访问该网站时,服务器上 Apache 的“access.log”文件包含以下内容:-

“\x16\x03\x01\x02” 400 499 “-” “-”

这看起来像是一次 TLS 握手,而 400 可能是一个错误请求。

某些地方的配置不正确。我该如何找出问题所在?

编辑

寻找解决方案后,我发现如果我输入:-

dfsoftware.ddns.net

在我的浏览器地址栏中,我收到一个错误(在 Firefox 上,SSL_ERROR...)但如果我输入:-

http://dfsoftware.ddns.net:443

页面加载正确。因此,Apache 似乎在处理端口 443 上的安全连接时遇到了麻烦,并且只接受该端口上的普通请求。配置文件看起来没问题(如果您需要查看,我可以上传它们),那么发生了什么?

编辑2

以下是我认为相关的 apache 配置文件,如果需要其他文件,请询问。

apache2.conf:-

ServerName dfsoftware.ddns.net
DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

AccessFileName .htaccess

<FilesMatch "^\.ht">
    Require all denied
</FilesMatch>

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

端口.conf:-

    Listen 80

<IfModule ssl_module>
    Listen 443
</IfModule>

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

站点可用/dfsoftare.ddns.net.conf:-

    <VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName dfsoftware.ddns.net
    ServerAlias www.dfsoftware.ddns.net
    DocumentRoot /WebSites/Websites
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    <Directory /WebSites/Websites/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Require all granted
    </Directory>
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =dfsoftware.ddns.net [OR]
    RewriteCond %{SERVER_NAME} =www.dfsoftware.ddns.net
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

站点可用/dfsoftare.ddns.net-le-ssl.conf:-

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName dfsoftware.ddns.net
    ServerAlias www.dfsoftware.ddns.net
    DocumentRoot /WebSites/Websites
    SSLEngine on
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    <Directory /WebSites/Websites/>
    Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Require all granted
    </Directory>
    SSLEngine on
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/dfsoftware.ddns.net-    0001/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/dfsoftware.ddns.net-0001/privkey.pem
</VirtualHost>
</IfModule>

相关内容