Я запускаю 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 для вероятно аналогичной проблемы.