Ssl

使用 Lets Encrypt SSL 證書配置 Apache 導致“SSL_ERROR_RX_RECORD_TOO_LONG”

  • June 8, 2018

我在 Raspian (Raspberry Pi) 伺服器上執行 Apache 2.4.25。

我想為伺服器設置 SSL 證書,所以我執行了以下命令來獲取certbot

sudo apt-get update
sudo apt-get install python-certbot-apache

然後我這樣跑certbot

sudo certbot certonly --standalone -d marksfam.com -d www.marksfam.com

那告訴我它已將我的證書放入文件夾/etc/letsencrypt/live/marksfam.com中。我檢查並確認它已經創建了文件fullchain.pem,並privkey.pem在其中創建了cert.pem,chain.pemREADME. 可能值得注意(但我不這麼認為) - 我只能查看此文件夾sudo- 我的普通帳戶無法查看它。

無論如何,我符號連結到mods-available/ssl.loadapache 的mods-enabled目錄和.sites-available/default-ssl.conf``sites-enabled

在裡面default-ssl.conf我有這個:

<IfModule mod_ssl.c>
    <VirtualHost marksfam.com:443>
        ServerName www.marksfam.com
        ServerAdmin webmaster@local
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        SSLEngine on
        SSLCertificateFile    /etc/letsencrypt/live/marksfam.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/marksfam.com/privkey.pem
   </VirtualHost>
</IfModule>

然後我重新啟動伺服器sudo service apache2 restart

訪問http://marksfam.com>工作正常。訪問<https://marksfam.com不會。在 Firefox 中,我收到以下消息:

連接到 www.marksfam.com 時出錯。SSL 收到超過最大允許長度的記錄。錯誤程式碼:SSL_ERROR_RX_RECORD_TOO_LONG

在 Chrome 中,我收到以下消息:

此站點無法提供安全連接 www.marksfam.com 發送了無效響應。嘗試執行 Windows 網路診斷程序。ERR_SSL_PROTOCOL_ERROR

Chrome 和 Firefox 都沒有在他們的檢查員的控制台選項卡下告訴我任何事情……沒有消息提示我更多關於我做錯了什麼。

如果我檢查 apache 的 error.log 文件,我看到的只是:

[mpm_event:notice] AH00491: caught SIGTERM, shutting down
[ssl:warn] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
[mpm_event:notice] AH00489: Apache/2.4.25 (Raspian) OpenSSL/1.0.21 mod_wsgi/4.5.11 Python/2.7 confiured -- resuming normal operations
[core:notice] AH00094: Command line: '/usr/sbin/apache2'

知道我做錯了什麼嗎?似乎沒有提供有用的錯誤消息。埠 80 和 443 都轉發到已啟動並正在執行的伺服器,如果您想嘗試在 markfam.com 上自己訪問它們。無論我嘗試訪問https://marksfam.com>還是<https://www.marksfam.com>還是<https://192.168.0.2(它的本地地址,當我在同一個本地網路上時),我都會收到相同的錯誤消息作為它。)

如果我還沒有分享足夠多的日誌或配置詳細資訊,我很樂意分享。

您的伺服器中的某些內容未正確配置,我認為這不在您顯示的部分伺服器配置中。嘗試訪問您的伺服器表明它正在埠 443 上接受純 HTTP 請求,即它應該只期望 TLS 流量的埠。因此,我認為您在埠 443 上有一些其他虛擬主機或一些預設配置,這些配置未啟用 SSL 或未配置證書。但是你不能在同一個 IP 和埠上混合使用普通的 HTTP 和 HTTPS。

另請參閱Debian 伺服器 SSL 證書配置返回 err_ssl_protocol_error以解決可能類似的問題。

引用自:https://serverfault.com/questions/915721