feat: verify proxy domain after deployment
This commit is contained in:
+15
-5
@@ -202,6 +202,9 @@ if ! docker network inspect "$edge_network" >/dev/null 2>&1; then
|
||||
docker network create "$edge_network" >/dev/null
|
||||
fi
|
||||
|
||||
domain_check_token="$(od -An -N16 -tx1 /dev/urandom | tr -d '[:space:]')"
|
||||
[[ "$domain_check_token" =~ ^[0-9a-f]{32}$ ]] || fail "не удалось создать маркер проверки домена"
|
||||
|
||||
environment_file="$repository/.env"
|
||||
temporary_environment="$(mktemp "$repository/.env.new.XXXXXX")"
|
||||
trap 'rm -f "$temporary_environment"' EXIT
|
||||
@@ -209,6 +212,7 @@ cat >"$temporary_environment" <<ENV
|
||||
TPROXY_HOSTNAME=$domain_value
|
||||
MTPROXY_PUBLIC_IP=$public_ip
|
||||
NPM_NETWORK_NAME=$edge_network
|
||||
DOMAIN_CHECK_TOKEN=$domain_check_token
|
||||
MTPROXY_WORKERS=1
|
||||
MTPROXY_MAX_CONNECTIONS=4096
|
||||
ENV
|
||||
@@ -250,13 +254,19 @@ fi
|
||||
client_secret="$(docker exec tg-web-proxy sh -c 'tr -d "\\r\\n" < /data/client-secret')"
|
||||
[[ "$client_secret" =~ ^[0-9a-f]{32}$ ]] || fail "не удалось прочитать клиентский секрет"
|
||||
|
||||
printf '\n[6/6] Жду выпуска HTTPS-сертификата'
|
||||
printf '\n[6/6] Проверяю домен и жду выпуска HTTPS-сертификата'
|
||||
https_ready=false
|
||||
domain_check_url="https://$domain_value/.well-known/telegram-web-proxy-check"
|
||||
for _ in $(seq 1 60); do
|
||||
if curl --fail --silent --show-error \
|
||||
domain_check_response="$(curl --fail --silent --show-error \
|
||||
--connect-timeout 5 --max-time 15 \
|
||||
--proto '=https' --tlsv1.2 \
|
||||
"https://$domain_value/" >/dev/null 2>&1; then
|
||||
"$domain_check_url" 2>/dev/null || true)"
|
||||
if [[ "$domain_check_response" == "$domain_check_token" ]] &&
|
||||
curl --fail --silent --show-error \
|
||||
--connect-timeout 5 --max-time 15 \
|
||||
--proto '=https' --tlsv1.2 \
|
||||
"https://$domain_value/" >/dev/null 2>&1; then
|
||||
https_ready=true
|
||||
break
|
||||
fi
|
||||
@@ -268,7 +278,7 @@ printf '\n'
|
||||
if [[ "$https_ready" != true ]]; then
|
||||
docker logs --tail 100 tg-web-proxy-caddy >&2 || true
|
||||
cat >&2 <<ERROR
|
||||
Ошибка: HTTPS не стал доступен.
|
||||
Ошибка: домен не подтвердил подключение к этому прокси по HTTPS.
|
||||
|
||||
Проверьте, что DNS-запись A указывает на этот VPS и что у провайдера сервера
|
||||
разрешены входящие TCP-порты 80 и 443. После исправления снова запустите:
|
||||
@@ -279,7 +289,7 @@ fi
|
||||
|
||||
cat <<RESULT
|
||||
|
||||
Готово: Telegram WEB proxy работает через HTTPS.
|
||||
Готово: домен ведёт на этот VPS, HTTPS и Telegram WEB proxy работают.
|
||||
|
||||
Параметры для Telegram:
|
||||
Тип: WEB
|
||||
|
||||
Reference in New Issue
Block a user