From d54a8fcc2d3b5e4009ee073f14dae5de46f6660b Mon Sep 17 00:00:00 2001 From: grendervill Date: Sat, 19 Sep 2026 20:54:49 +0300 Subject: [PATCH] =?UTF-8?q?fix(smoke):=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=BA=D0=B0=20TURN/TLS=20=D0=BF=D0=BE=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B7=D1=83=D0=BB=D1=8C=D1=82=D0=B0=D1=82=D1=83=20=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=B8=D1=84=D0=B8=D0=BA=D0=B0=D1=86=D0=B8=D0=B8,=20?= =?UTF-8?q?=D0=B0=20=D0=BD=D0=B5=20=D0=BF=D0=BE=20=D1=80=D0=B0=D0=B7=D0=B1?= =?UTF-8?q?=D0=BE=D1=80=D1=83=20CN?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/smoke.sh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/deploy/smoke.sh b/deploy/smoke.sh index 51ccdfe..ca8a497 100755 --- a/deploy/smoke.sh +++ b/deploy/smoke.sh @@ -131,13 +131,15 @@ else turn_domain="$(grep -A3 '^turn:' "${GLCHAT_ETC_DIR}/livekit/livekit.yaml" 2>/dev/null | awk '/domain:/ {print $2; exit}')" if [ -n "$turn_domain" ] && command -v openssl >/dev/null 2>&1; then - cert_cn="$(echo | timeout 8 openssl s_client -connect "${APP_BIND}:${TURN_TLS_PORT}" \ - -servername "$turn_domain" 2>/dev/null | - openssl x509 -noout -subject 2>/dev/null | sed 's/.*CN *= *//')" - if [ "$cert_cn" = "$turn_domain" ]; then - pass "TURN/TLS отдаёт сертификат для ${turn_domain}" + handshake="$(echo | timeout 10 openssl s_client -connect "${APP_BIND}:${TURN_TLS_PORT}" \ + -servername "$turn_domain" 2>&1 || true)" + if printf '%s' "$handshake" | grep -q 'Verify return code: 0 (ok)'; then + pass "TURN/TLS: сертификат ${turn_domain} принят (verify ok)" + elif printf '%s' "$handshake" | grep -q 'BEGIN CERTIFICATE'; then + # Сертификат есть, но самоподписанный/недоверенный: для тестов это допустимо. + skip "TURN/TLS: сертификат не проходит проверку доверия (${turn_domain})" else - fail "TURN/TLS: сертификат не для ${turn_domain} (CN=${cert_cn:-нет})" + fail "TURN/TLS: TLS-хендшейк на ${APP_BIND}:${TURN_TLS_PORT} не прошёл" fi fi fi