SSL_ERROR_RX_RECORD_TOO_LONG 在配置 apache SSL 时

问题描述 投票:0回答:2

我在 Debian 11 上创建了一个运行 Apache 2.4.52 的服务器(它随安装一起提供),我将这个服务器与 Wordpress、Nextcloud 和 Webmin 一起用于我的工作,作为一个组合。

我设置了一个自签名的 SSL 证书来增加它的安全性,因为我打算在互联网和 Nextcloud 上向我的客户宣传该网站,但我无法让 SSL 工作,我在很多地方都看过并且许多设置,但我无法从内部和外部网络访问它。

浏览器显示如下错误:

火狐:SSL_ERROR_RX_RECORD_TOO_LONG

Chrome: ERR_SSL_PROTOCOL_ERROR

我设置自动将 http 转发到 https,它工作正常,如果我在没有证书的情况下访问链接,它会重定向到安全链接,但它总是会出现此错误。

我的 Apache 在端口 3 上工作,因为不幸的是我不能使用默认的 80,我不知道这是否与它有关,因为我一直在一些地方阅读它与此不太相关案例(端口在路由器上打开,都是 3 到 443)。

有人可以帮我吗?欣赏!

注意:我的站点在没有 SSL 的情况下正常工作,无论是在 LAN 还是 WAN 上,我什至想过在没有证书的情况下使用它,只是防火墙,但我不知道这对于公共站点是否安全,我的目标不是获取信息,只为展示内容。

抱歉外行的词汇,我是这方面的初学者,谢谢。

按照我的配置文件:

Apache2.conf

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 All
    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

ServerName 127.0.0.1

端口.conf

Listen 3

<IfModule ssl_module>
    Listen 443
</IfModule>

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

000-default.conf

<VirtualHost _default_:*>
    
    Redirect "/" "https:// my external ip"
    ServerAdmin [email protected]

    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ServerName 127.0.0.1

</VirtualHost>

default-ssl.conf

<IfModule mod_ssl.c>

    <VirtualHost *:443>
        ServerAdmin [email protected]

        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLEngine on

        SSLCertificateFile  /etc/ssl/certs/apache-selfsigned.crt
        SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

        <FilesMatch "\.(cgi|shtml|phtml|php)$">

            SSLOptions +StdEnvVars
        </FilesMatch>

        <Directory /usr/lib/cgi-bin>

            SSLOptions +StdEnvVars
        </Directory>

    </VirtualHost>
</IfModule>

ssl-params.conf

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
# Disable preloading HSTS for now.  You can use the commented out header line that includes
# the "preload" directive if you understand the implications.
# Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11
SSLSessionTickets Off
apache ssl openssl ssl-certificate
2个回答
0
投票

终于可以用https访问网站了!我更改了000-default.conf文件。

我将

<VirtualHost _default_:*>
更改为
<VirtualHost _default_:3>
并输入 default-ssl.conf 中的 ssl 设置,它可以使用证书访问端口 3。

现在我正试图找到一种方法来验证自签名证书,以便它不会显示不安全的消息,但这很困难。我会在这里创建一个新问题,看看是否有其他人知道任何方式!

非常感谢您的提示,它们非常有帮助!! :D


0
投票

我在尝试修复某些网站的 403 访问问题后遇到了这个错误。在我的例子中,我在服务器和本地机器上使用 Ubuntu 22.04。 Debian 可能不同。

在此之前使用标准的 Apache 默认 index.html 页面一直运行良好。对于我之前从 Certbot 获得的证书,它运行良好,很容易提供 https 访问权限。

当我上传一个真实网站的文件并将它们复制到 /var/www/html/mysite.com 目录时出现了问题。不管给 webfiles 什么权限,它都不会显示。

我删除了 mysite.com 文件夹并尝试在 apache2/sites-available 中重建所有相关的配置文件。

在此之后我有 SSL_ERROR_RX_RECORD_TOO_LONG 。 只有在重新安装现有的 Certbot 证书后,我才摆脱它。

所以现在我又回到了那个讨厌的 403 访问错误。 . . 我修复了使 /var/www/html/mysite.com 归我的用户帐户所有,并在 www-data 组中,权限为 750.

© www.soinside.com 2019 - 2024. All rights reserved.