У меня есть веб-сервер, работающий на 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 ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/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 ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
Redirect permanent / https://mysite.tld/
RewriteEngine on
RewriteCond %{SERVER_NAME} =mysite.tld
RewriteRule ^ https://{SERVER_NAME}{REQUEST_URI} [END,QSA,R=permanent]
</VirtualHost>

Я уже задавал этот вопрос о сбое сервера, и был перенаправлен сюда. Ответы, которые я получил, начали указывать мне правильное направление, но я все еще не знаю, что я могу сделать, чтобы это исправить. Лучший ответ был

Если вы просто посетите http://mysite.tld, он перенаправит вас на порт 443 (https), где ничего не прослушивается. Это объясняет вашу ошибку.

Кто-нибудь может понять это? Спасибо!

2 ответа2

0

Вы пытались ввести домен:8443 в свой браузер?

Каждый браузер по умолчанию использует порт 80 для HTTP-страниц и порт 443 для HTTPS-страниц. Если вы хотите явно указать порт, вы должны добавить порт к URL-адресу, используя двоеточие

0

Вы указали, что 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://{SERVER_NAME}:8443{REQUEST_URI} [END,QSA,R=permanent]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .