Имею Битрикс сайт, который крутится на ubuntu в docker контейнерах
стек nginx + php-fpm + percona mysql + memcached + elastic search
сеть также не простая. Сервер находится во внутреннем NAT пространстве и все запросы из внешки проксируются на сервер с docker контейнерами
https сертификат повесил на nginx proxy - все ок
этот же сертификат повесил на nginx docker контейнер - все ок
из локалки NAT https работает и из внешки тоже https работает
SSL сертификат новый от lets encrypt
на двух машинах (№1 проксирование, №2 машина с докер контейнерами) также корневые сертификаты тоже обновлены (ошибка с 29 сентября 2021 года)
машины также новые и свежо развернутые ubuntu 20.x
Но, проблема при прохождении проверки работы сайта, а если точнее, то "Работа с сокетами"
а если еще точнее быть то код
fsockopen('ssl://mydomain.com', 443, $err, $text, 5)
возвращает false.
Как с внешних ip так и из NAT сети тоже.
Если убрать префикс ssl:// и оставить только домен, то, без проблем возвращает source id #NUMBER
в /etc/hosts на обеих машинах прописаны внутренние ip сайтов
на машинах все порты открыты 80 и 443
nginx конф
location / {
proxy_ignore_client_abort on;
proxy_pass https://mydomain.ru:443;
proxy_redirect https://mydomain.ru:443 /;
proxy_read_timeout 300;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header HTTPS YES;
proxy_set_header Authorization "";
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
$http_upgrade и $connection_upgrade описаны и заданы в nginx.conf
из контейнера php при curl по
https://mydomain.ru выводилась ошибка
curl: (60) server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
More details here: http://curl.haxx.se/docs/sslcerts.html
но, я цепочку создал и добавил в корневой сертификат, ошибка пропала, но, именно при fsockopen это не помогло
если в /etc/hosts в машине с докер контейнерами,
на домен ставлю ip 127.0.0.1 то, при fsockopen возвращает код ошибки 111 (connection refused) и false
если ставлю ip внутренней сети машины, то, возвращает код ошибки 0 и false
если ставлю ip внешний, то, возвращает код ошибки 110 (timed out) и false
на машинах есть выход в интернет
я в замешательстве и без понятия как решить это