Рейтинг:0

Настройка SSL для пользовательского порта в nginx - letsencrypt

флаг in

Я пытаюсь включить SSL на пользовательском порту (не 443), запуск веб-страницы. Поискав вокруг, я не смог найти много информации, которая помогла бы.

На сервере неизменяемые порты, внешний: 26143, внутренний: 80.

Чтобы войти на сервер (без SSL), вы должны ввести example.com:26143, и система увидит это как подключение к порту 80.

Как мне настроить сертификат (позволяет зашифровать), чтобы включить SSL на этом порту?


Из тестирования кажется, что что бы я ни делал, он обращается к серверу только через порт 80, даже если я установил его на 26143.

вот конфигурация с поддержкой сайтов nginx:

сервер {
    слушать 80;
    слушать [::]:80;

    корень /корень/html;

    индекс index.php;
    имя сервера _;

    место расположения / {
        try_files $uri $uri/ =404;
    }

    расположение ~ \.php$ {
        включить фрагменты/fastcgi-php.conf;
    
        # С php-fpm (или другими сокетами unix):
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    местоположение ~ /\.ht {
        отрицать все;
    }

    расположение /.известный {
        корень /var/www/ssl/example.com/;
    }
}

Команды, которые я пробовал:

certbot --nginx -d example.com:26143
certbot certonly --standalone --preferred-challanges http -d example.com:26143
certbot certonly --standalone --preferred-challenges http -d example.com
certbot certonly --standalone --preferred-challenges http --http-01-port 26143 -d example.com
certbot certonly --nginx --preferred-challenges http --http-01-порт 26143 -d example.com
certbot certonly --noninteractive --agree-tos --cert-name slickstack -d example.com -m [email protected] --webroot -w /root/html
certbot certonly --noninteractive --agree-tos --cert-name slickstack -d example.com:26143 -m [email protected] --webroot -w /root/html
certbot certonly --noninteractive --agree-tos --cert-name slickstack -d example.com --http-01-port 26143 -m [email protected] --webroot -w /root/html
certbot certonly --noninteractive --agree-tos --cert-name slickstack -d example.com --preferred-challenges http --http-01-port 26143 -m [email protected] --webroot -w /root/ HTML

Некоторая настройка назад и в-четвертых, самая распространенная ошибка, которую я получил, была следующей:

ВАЖНЫЕ ЗАМЕТКИ:
 - Сервер сообщил о следующих ошибках:

   Домен: example.com
   Тип: несанкционированный
   Подробности: Неверный ответ от
   https://example.com/.well-known/acme-challenge/ho73up1dR3KU4V37awccOw2T5xsSILWUM365ZnwVEN4
   [159.81.xxx.xxx]: "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML
   2.0//RU\">\n<html><head>\n<title>404 Не
   Найдено</title>\n</head><body>\n<h1>Не найдено</h1>\n<p"

   Чтобы исправить эти ошибки, убедитесь, что ваше доменное имя
   введены правильно, и записи DNS A/AAAA для этого домена
   содержат правильный IP-адрес.

404 это Нет в моей системе это с example.com:80, а не с example.com:26143. Кроме того, у меня нет доступа к изменению записей DNS.


По моему опыту, Lets Encrypt и SSL немного сбивают с толку, и вместе с ограничениями скорости я не могу устранить неполадки достаточно, чтобы понять.

Я знаю, что это должно быть возможно, я просто не знаю, как и/или что я делаю неправильно.

Любая помощь будет оценена

digijay avatar
флаг mx
Кажется, происходит редирект, потому что вместо acme-challenge LE получает html-документ с сообщением 404. Кроме того, IIRC LE поддерживает только порты 80 и 443 (https://serverfault.com/a/805681).
флаг in
Порт 443 не имеет значения, только порт 80, так как там должен быть вызов acme.
Рейтинг:1
флаг in

Давайте зашифруем вызовы http-01, для обмена проверочными данными требуется порт 80. Сервер https никогда не используется. Порт 80 является жестким требованием. Если это не вариант, то единственным другим способом является DNS.

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

Аналогичный вопрос: https://community.letsencrypt.org/t/port-4434-вместо-443/61349

Typewar avatar
флаг in
Спасибо вам за разъяснение! В этом случае, для этой ситуации, я думаю, я могу использовать внешний прокси, подключенный к серверу, чтобы использовать порт 80. Но это, вероятно, будет работать только для имени хоста / домена прокси, а не для источника.
Typewar avatar
флаг in
При дальнейшем изучении проблемы кажется, что то, о чем я прошу, на данный момент невозможно. https://github.com/certbot/certbot/issues/2697
флаг in
Как я писал в ответе, вам нужно открыть порт 80 и добавить ответ на вызов на этом http-сервере. Какой порт вы используете после этого, не имеет значения.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.