使用 Lets Encrypt SSL 證書配置 Apache 導致“SSL_ERROR_RX_RECORD_TOO_LONG”
我在 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.pem
和README
. 可能值得注意(但我不這麼認為) - 我只能查看此文件夾sudo
- 我的普通帳戶無法查看它。無論如何,我符號連結到
mods-available/ssl.load
apache 的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以解決可能類似的問題。