Назад | Перейти на главную страницу

Настроить Apache с помощью Lets Encrypt SSL Certificates приводит к «SSL_ERROR_RX_RECORD_TOO_LONG»

Я запускаю Apache 2.4.25 на сервере Raspian (Raspberry Pi).

Я хотел настроить 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 вообще ничего не сообщают мне на вкладках консоли в своих инспекторах ... ни одного сообщения, которое больше не сообщало бы мне о том, что я делаю неправильно.

Если я проверю файл error.log apache, все, что я вижу:

[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 (его локальный адрес, когда я нахожусь в той же локальной сети, что и он.)

Я буду рад поделиться дополнительными журналами или подробностями конфигурации, если я уже недостаточно поделился.

Что-то на вашем сервере настроено неправильно, и я думаю, что этого нет в показанной вами частичной конфигурации сервера. Попытка связаться с вашим сервером показывает, что он принимает простые HTTP-запросы на порт 443, то есть порт, на котором он должен ожидать только трафик TLS. Поэтому я думаю, что у вас есть какой-то другой VirtualHost или какая-то конфигурация по умолчанию на порту 443, для которой не включен SSL или не настроены сертификаты. Но вы не можете смешивать простой HTTP и HTTPS на одном IP и одном порте.

Смотрите также Конфигурация SSL-сертификата сервера Debian возвращает err_ssl_protocol_error для вероятно аналогичной проблемы.