Недавно я получил электронное письмо от LetsEncrypt, в котором говорилось, что срок действия сертификата моего веб-сайта истекает — я настроил веб-сайт на использование только HTTPS. До сих пор сертификаты автоматически обновлялись без проблем. Я обновил библиотеки OpenSSL на своей Ubuntu 18.04, чтобы использовать последнюю версию TLS 1.3. Все, казалось, работало нормально, но при доступе к моему веб-сайту с помощью веб-браузера Firefox, работающего в Windows 7, отображалось следующее сообщение:
SSL_ERROR_RX_RECORD_TOO_LONG
и файл Apache «access.log» на сервере имеет следующее при доступе к сайту: -
"\x16\x03\x01\x02" 400 499 "-" "-"
Это похоже на рукопожатие TLS, а 400 может быть плохим запросом.
Что-то где-то настроено не так. Как узнать, в чем проблема?
РЕДАКТИРОВАТЬ
Оглядевшись в поисках решения, я обнаружил, что если я наберу: -
dfsoftware.ddns.net
в адресную строку браузера я получаю сообщение об ошибке (в Firefox SSL_ERROR...), но если я наберу: -
http://dfsoftware.ddns.net:443
страница загружается правильно. Таким образом, похоже, что у apache возникают проблемы с обработкой безопасного соединения на порту 443, и он принимает только ванильные запросы на этом порту. Файлы конфигурации выглядят нормально (я могу загрузить их, если вам нужно посмотреть), так что же происходит?
РЕДАКТИРОВАТЬ 2
Вот файлы конфигурации apache, которые я считаю актуальными, если нужны другие, спрашивайте.
apache2.conf: -
Имя сервера dfsoftware.ddns.net
Каталог времени выполнения по умолчанию ${APACHE_RUN_DIR}
Pid-файл ${APACHE_PID_FILE}
Таймаут 300
KeepAlive включен
MaxKeepAliveRequests 100
KeepAliveTimeout 5
Пользователь ${APACHE_RUN_USER}
Группа ${APACHE_RUN_GROUP}
HostnameLookups Off
Журнал ошибок ${APACHE_LOG_DIR}/error.log
Предупреждение LogLevel
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Включить порты.conf
<Каталог />
Параметры
Аллововеррайд
Требовать все отказано
</Каталог>
<Каталог /usr/share>
Аллововеррайд
Требовать все предоставленные
</Каталог>
<Каталог /var/www/>
Индексы опционов FollowSymLinks
Аллововеррайд
Требовать все предоставленные
</Каталог>
Имя файла доступа .htaccess
<Соответствие файлов "^\.ht">
Требовать все отказано
</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\"" в сочетании
LogFormat "%h %l %u %t \"%r\" %>s %O" общий
LogFormat "%{Referer}i -> %U" реферер
Агент LogFormat "%{User-agent}i"
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
<Соответствие файлов \.php$>
Приложение SetHandler/x-httpd-php
</FilesMatch>
порты.конф:-
Слушай 80
<IfModule ssl_module>
Слушай 443
</ЕслиМодуль>
<IfModule mod_gnutls.c>
Слушай 443
</ЕслиМодуль>
доступные сайты/dfsoftare.ddns.net.conf:-
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName dfsoftware.ddns.net
ServerAlias www.dfsoftware.ddns.net
DocumentRoot /WebSites/Websites
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /WebSites/Websites/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
RewriteEngine on
RewriteCond %{SERVER_NAME} =dfsoftware.ddns.net [OR]
RewriteCond %{SERVER_NAME} =www.dfsoftware.ddns.net
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
доступные сайты/dfsoftare.ddns.net-le-ssl.conf:-
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName dfsoftware.ddns.net
ServerAlias www.dfsoftware.ddns.net
DocumentRoot /WebSites/Websites
SSLEngine on
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /WebSites/Websites/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
SSLEngine on
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/dfsoftware.ddns.net- 0001/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/dfsoftware.ddns.net-0001/privkey.pem
</VirtualHost>
</IfModule>