Вы пытались ввести домен: 8443 в свой браузер?
Каждый браузер по умолчанию использует порт 80 для HTTP-страниц и порт 443 для HTTPS-страниц. Если вы хотите явно указать порт, вы должны добавить порт к URL-адресу, используя двоеточие
У меня есть веб-сервер, работающий на Raspberry Pi. Я использую stunnel на порту 443, поэтому я работаю над переносом своего веб-сервера на порт 8443. Я использую Let's Encrypt (Certbot) для своих SSL-сертификатов, и ранее они работали отлично.
Я узнал, как получить сертификаты с использованием DNS-запроса, поэтому наличие порта 443 для проверки подлинности больше не требуется. Я считаю, что все мои файлы конфигурации настроены правильно, но я вставлю их ниже.
Apache работает, и с ним ничто не должно конфликтовать, но всякий раз, когда я пытаюсь получить доступ к своему сайту через HTTPS, Chrome говорит, что сайт неожиданно закрывает соединение, а Edge говорит, что он использует устаревшие или небезопасные настройки TLS.
Я пытался понять это для себя, но на данный момент я понятия не имею, что делать.
Ports.conf
# If you just change the port or add more ports here, you will likely also' # have to change the VirtualHost statement in' # /etc/apache2/sites-enabled/000-default.conf' Listen 80 #<IfModule ssl_module>' # Listen 8443' #</IfModule>' #<IfModule mod_gnutls.c>' # Listen 8443' #</IfModule>' # vim: syntax=apache ts=4 sw=4 sts=4 sr noet' <IfModule mod_ssl.c> Listen 8443 </Ifmodule>
Пример HTTPS VHost Config
<IfModule mod_ssl.c> <VirtualHost *:8443> ServerName mysite.tld ServerAdmin myemail@provider.com DocumentRoot /var/www/html ErrorLog $/error.log CustomLog $/access.log combined SSLCertificateFile /etc/letsencrypt/live/mysite.tld/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/mysite.tld/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf </VirtualHost> </IfModule>
Пример HTTP-конфигурации
<VirtualHost *:80> ServerName mysite.tld ServerAdmin myemail@provider.com DocumentRoot /var/www/html ErrorLog $/error.log CustomLog $/access.log combined Redirect permanent / https://mysite.tld/ RewriteEngine on RewriteCond % =mysite.tld RewriteRule ^ https:// [END,QSA,R=permanent] </VirtualHost>
Я уже задавал этот вопрос о сбое сервера, и был перенаправлен сюда. Ответы, которые я получил, начали указывать мне правильное направление, но я все еще не знаю, что я могу сделать, чтобы это исправить. Лучший ответ был
Если вы просто посетите http: //mysite.tld, он перенаправит вас на порт 443 (https), где ничего не прослушивается. Это объясняет вашу ошибку.
Кто-нибудь может понять это? Спасибо!
Вы пытались ввести домен: 8443 в свой браузер?
Каждый браузер по умолчанию использует порт 80 для HTTP-страниц и порт 443 для HTTPS-страниц. Если вы хотите явно указать порт, вы должны добавить порт к URL-адресу, используя двоеточие
Вы указали, что Apache должен прослушивать порт 8443 только в том случае, если mod_ssl
он загружен (т. Е. Этот Apache имеет возможность использовать SSL / TLS), но в ваших фрагментах конфигурации, похоже, ничто не говорит Apache о том, чтобы фактически использовать SSL / TLS на порту 8443.
Вы делаете это, добавляя SSLEngine on
в <VirtualHost>
блок, который должен использовать SSL / TLS:
<VirtualHost *:8443> SSLEngine on ServerName mysite.tld # etc...
Когда вы перенаправляете браузер на URL-адрес HTTPS без явного указания номера порта, браузер пытается подключиться к порту HTTPS по умолчанию, который равен 443. Точно так же, как порт 80 используется по умолчанию для простого HTTP.
Вам нужно будет изменить перенаправление, указав номер порта:
RewriteRule ^ https://:8443 [END,QSA,R=permanent]