Proxy i skrypt PAC
Na jednej maszynie o proxy decyduje kilka miejsc naraz, a różne programy słuchają różnych.
Gdzie zapada decyzja o proxy
Warstwa proxy, L2, czyta każde miejsce, które może wskazać proxy, i pokazuje je obok siebie:
- zmienne środowiskowe -
HTTPS_PROXY,HTTP_PROXY,ALL_PROXYiNO_PROXY, każda w obu pisowniach, którymi kierują się narzędzia wiersza poleceń i większość środowisk, - ustawienia internetowe Windows - którymi kierują się Edge, Chrome i programy .NET, razem z adresem skryptu PAC,
- ustawienia WinHTTP - którymi kierują się usługi Windows, osobne od powyższych i często od nich różne.
Gdy się nie zgadzają, raport mówi, który program kieruje się którym, więc przeglądarka, która się łączy, i usługa, która nie, przestają być zagadką.
Skrypt PAC
Skrypt automatycznej konfiguracji proxy to mały program w JavaScripcie, który adres po adresie decyduje, którego proxy użyć. Wiele firm puszcza jeden host obok proxy, przez które idzie cała reszta, a jedynym sposobem, żeby wiedzieć, co skrypt robi z twoim adresem, jest jego uruchomienie.
certdoctor pobiera skrypt wskazany przez maszynę i uruchamia go w piaskownicy, żeby zobaczyć, dokąd kieruje ten adres. Odpowiedź jest podawana dla samego skryptu, a nie dla ustawienia, które go wskazało, więc dwa ustawienia wskazujące dwa niezgodne skrypty są pokazane oba.
Skrypt, który nie odpowiada niczym użytecznym, jest raportowany jako UNKNOWN, nigdy jako połączenie bezpośrednie: zgadywanie „bez proxy” kazałoby ci szukać w złym miejscu.
Skrypt PAC, którego maszyna nie wskazuje
--pac-url pyta o skrypt po jego adresie, niezależnie od tego, czy cokolwiek na maszynie go wskazuje. Na Linuksie, gdzie nie ma systemowego ustawienia PAC, to jest sposób, żeby zapytać:
certdoctor https://api.example.com/ --pac-url http://wpad.example.com/proxy.pac
Czy proxy chce poświadczeń
Gdy proxy ma zastosowanie, certdoctor pyta je, czy przyjmie połączenie bez poświadczeń. Proxy, które odpowiada 407 Proxy Authentication Required, jest wskazane razem z metodami uwierzytelniania, które oferuje. Co z tym zrobić, mówi strona 407 Proxy Authentication Required.
Hasła w adresach proxy
Adres proxy może zawierać nazwę użytkownika i hasło, jak w http://user:secret@proxy:8080. Hasło jest odcinane w miejscu, w którym adres jest czytany, więc nigdy nie trafia do raportu ani do dziennika, z --redact i bez.