Рейтинг:2

nginx слушает ipv6, но сайты почему-то не загружаются

флаг in

Я пытаюсь заставить ipv6 работать на nginx (nginx/1.19.6) для SSL. В конфигурации моего домена у меня есть:

сервер {
    слушать 93.93.135.169:443 http2;
    слушать [::]:443 http2;
    имя_сервера backups.myserver.com;
   ....
}

..а затем для стандартного порта;

сервер {
    слушать 93.93.135.169:80;
    слушать [::]:80;
    имя_сервера backups.myserver.com ;
    ...
}

Netstat показывает, что nginx прослушивает порты 443 и 80:

 netstat -tulpn | grep нгинкс
TCP 0 0 93.93.135.169:80 0.0.0.0:* ПРОСЛУШИВАТЬ 1168/nginx: мастер
TCP 0 0 127.0.0.1:8084 0.0.0.0:* ПРОСЛУШИВАТЬ 1168/nginx: мастер
TCP 0 0 93.93.135.169:443 0.0.0.0:* ПРОСЛУШИВАТЬ 1168/nginx: мастер
TCP 0 0 0.0.0.0:9183 0.0.0.0:* ПРОСЛУШИВАТЬ 5247/nginx: мастер
tcp6 0 0 :::80 :::* ПРОСЛУШИВАТЬ 1168/nginx: мастер
tcp6 0 0 :::443 :::* ПРОСЛУШИВАТЬ 1168/nginx: мастер

Я могу найти сервер найти на ipv4 и ipv6:

root@admin3:~# ping -4 backups.myserver.com
PING backups.myserver.com (93.93.135.169) 56 (84) байт данных.
64 байта из backups.myserver.com (93.93.135.169): icmp_seq=1 ttl=60 time=1,58 мс
^Х^С
--- Статистика пинга backups.myserver.com ---
1 пакет передан, 1 получен, 0% потери пакетов, время 0 мс
rtt min/avg/max/mdev = 1,575/1,575/1,575/0,000 мс
root@admin3:~# ping -6 backups.myserver.com
PING backups.myserver.com(2a00:1098:80:a0::1 (2a00:1098:80:a0::1)) 56 байт данных
64 байта из 2a00:1098:80:a0::1 (2a00:1098:80:a0::1): icmp_seq=1 ttl=61 время=1,55 мс
^X64 байта из 2a00:1098:80:a0::1 (2a00:1098:80:a0::1): icmp_seq=2 ttl=61 время=1,74 мс

На iptables, Я получил:

iptables --список -n | группа 443
ACCEPT TCP -- 0.0.0.0/0 0.0.0.0/0 многопортовые порты 80 443

iptables --список -n | группа 80
ACCEPT TCP -- 0.0.0.0/0 0.0.0.0/0 многопортовые порты 80 443

..и ip6tables:

ip6tables --список -n | группа 80
ПРИНЯТЬ состояние tcp ::/0 ::/0 NEW tcp dpt:80

ip6tables --список -n | группа 443
ПРИНЯТЬ состояние tcp ::/0 ::/0 NEW tcp dpt:443

Тем не менее, когда я тестирую сайт на https://ipv6-test.com/ с http, оно работает:

введите описание изображения здесь

Но как только я пробую SSL, я получаю:

введите описание изображения здесь

Запустив на него curl-тест с другого сервера, я получаю:

curl -v -6 https://backups.myserver.com
* Попытка 2a00:1098:80:a0::1:443...
* Установлен TCP_NODELAY
* Подключен к backups.myserver.com (2a00:1098:80:a0::1) порт 443 (#0)
* ALPN, предлагая h2
* ALPN, предлагающий http/1.1
* успешно установить места проверки сертификата:
* CA-файл: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), рукопожатие TLS, приветствие клиента (1):
* ошибка: 1408F10B: подпрограммы SSL: ssl3_get_record: неверный номер версии
* Закрытие соединения 0
curl: (35) ошибка: 1408F10B: подпрограммы SSL: ssl3_get_record: неверный номер версии

У меня заканчиваются другие вещи, чтобы попробовать. Какие-либо предложения?

Рейтинг:3
флаг cz

Вы забыли сообщить nginx, что эти порты прослушивания на порту 443 предназначены для TLS.

    слушать 93.93.135.169:443 http2;
    слушать [::]:443 http2;

Обратите внимание, что ssl пропал, отсутствует. Следует читать:

    слушать 93.93.135.169:443 ssl http2;
    слушать [::]:443 ssl http2;
Andrew Newby avatar
флаг in
OMG Я знал, что должен был что-то пропустить. Да! Спасибо, что принесли мне немного здравого смысла. Иногда нужно просто взглянуть на что-то свежим взглядом!

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

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