mirror of
https://github.com/andrey271192/keenetic_ssh-web.git
synced 2026-09-20 14:42:01 +00:00
auth: HTTPS с self-signed сертификатами + расширенный дефолт ROUTER_HOST
- urllib теперь идёт на HTTPS с unverified context (Keenetic админка обычно с самоподписанным сертификатом) - .env по умолчанию содержит и HTTP, и HTTPS, и :81 для LAN-IP, плюс my.keenetic.net и loopback — пробуется всё подряд
This commit is contained in:
11
auth.py
11
auth.py
@@ -14,6 +14,7 @@ import http.cookiejar
|
||||
import json
|
||||
import logging
|
||||
import secrets
|
||||
import ssl
|
||||
import threading
|
||||
import time
|
||||
import urllib.error
|
||||
@@ -21,6 +22,11 @@ import urllib.request
|
||||
|
||||
log = logging.getLogger("kssh.auth")
|
||||
|
||||
# У Keenetic админка на HTTPS обычно с самоподписанным сертификатом — отключаем проверку.
|
||||
_SSL_CTX = ssl.create_default_context()
|
||||
_SSL_CTX.check_hostname = False
|
||||
_SSL_CTX.verify_mode = ssl.CERT_NONE
|
||||
|
||||
|
||||
def _normalize_host(host: str) -> str:
|
||||
h = (host or "").strip().rstrip("/")
|
||||
@@ -41,7 +47,10 @@ def keenetic_validate(host: str, login: str, password: str, timeout: float = 5.0
|
||||
if not base or not login or password is None:
|
||||
return False
|
||||
cj = http.cookiejar.CookieJar()
|
||||
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
|
||||
opener = urllib.request.build_opener(
|
||||
urllib.request.HTTPCookieProcessor(cj),
|
||||
urllib.request.HTTPSHandler(context=_SSL_CTX),
|
||||
)
|
||||
realm = ""
|
||||
challenge = ""
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user