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

ERR_SSL_PROTOCOL_ERROR после установки сертификата SSL

После обновления истекающего SSL-сертификата я получаю ошибку ERR_SSL_PROTOCOL_ERROR при просмотре в Chrome. После нескольких часов борьбы я нашел резервную копию и заменил все мои файлы сертификатов и файлы conf на их прежнее состояние, и все еще получаю ошибку. (Мой старый сертификат должен быть действителен еще несколько дней)

Мои журналы ошибок содержат множество записей, включая Invalid method in request \x16\x03\x01. Поиск в Google привел меня к сообщениям, описывающим, как проверить, является ли вывод на 443 HTML. Я провел сеанс telnet и могу подтвердить, что простой текст html отправляется обратно через порт 443.

Запуск a2enmod ssl дает мне «Модуль ssl уже включен». Это все сообщения, которые я нашел в поисках этого результата журнала, чтобы проверить.

Есть ли что-нибудь еще, чтобы убедиться, что SSL работает должным образом?

ОБНОВИТЬ

Бег netstat -lnt Я получил...

Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN  

Мне очень сложно сказать, что происходит на 80-м порту моего сайта. Мой домен находится в списке предварительной загрузки HSTS, поэтому я не могу даже попробовать порт 80.

БОЛЬШЕ ВАЖНОГО ОБНОВЛЕНИЯ

Пять миллионов восьмых случайных вещей, которые я в итоге попробовал, сработали, но я понятия не имею, почему.

Все, что я сделал, это изменилось <VirtualHost [my ip address]:443> к <VirtualHost *:443>

Может ли кто-нибудь объяснить, почему это исправило? Версия с моим IP-адресом была именно такой, какой она была до того, как я начал вносить изменения прошлой ночью. Восстановил файл из резервной копии. Я читал в нескольких местах, что NameVirtualHost и VirtualHost может быть полезно. Но я никогда не добавлял и не удалял ничего, что включало эти команды.

Я провел сеанс telnet и могу подтвердить, что простой текст html отправляется обратно через порт 443.

Похоже, у вас нет сервера с поддержкой SSL, который прослушивает порт 443. Чтобы получить действительный HTML-код обратно с твой сайт через порт 443 вам необходимо установить SSL-соединение, а telnet этого не делает. Для проверки SSL-соединения используйте

openssl s_client -connect example.com:443

Обратите внимание, что некоторые правильно настроенные серверы могут отправлять обратно html в соединение без https на порт 443, сообщая только об этом, но я уверен, что заметил бы это, например.

<html>
<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<center>The plain HTTP request was sent to HTTPS port</center>
<hr><center>nginx</center>
</body>
</html>

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

sudo apachectl configtest

Как видно из вывода netstat, httpd не запущен.

Обновлено с учетом ответа в комментариях:

Хорошо, это похоже на прогресс. Ты пробовала @istheEnglishWayпредложение, используя openssl s_client?