2015-07-03 37 views
6

Próbuję użyć proxy cntlm na moim komputerze z systemem Windows, aby porozmawiać z lokalną aplikacją internetową na IIS, która używa uwierzytelniania systemu Windows od PhantomJS. Aby utworzyć serwer proxy, robię: cntlm -v -u [email protected] -p password -l 1456 localhost:80proxy cntlm z phantomjs

Moje życie aplikacji na localhost/myapp

aby sprawdzić, czy to działa, staram się przeglądać localhost:1456/myapp ale zawsze pojawia się wyzwanie auth i żaden rozsądny nazwa_użytkownika/kombinacja hasła wydaje się działać. Wszelkie przemyślenia na temat tego, dlaczego ta konfiguracja może nie działać zgodnie z oczekiwaniami?

Kiedy uderzył końcowy proxy w przeglądarce, to wyjście z cntlm:

http://pastebin.com/xvvmfsGV

Odpowiedz

8

Po zmaga się z koncepcją na chwilę I w końcu zorientowali się, jak uzyskać to skonfigurować.

Po zainstalowaniu cntlm, wpadłem następujące z wiersza poleceń:

"c:\Program Files (x86)\Cntlm\cntlm.exe" -u <user_name> -d <domain_name> -H 

Ten pyta o hasło i wypluwa trzy skrótów do wykorzystania w pliku konfiguracyjnym.

I stopniała wymaganą konfigurację w cntlm.ini do:

Username <user_name> 
Domain  <domain_name> 

PassLM   <LM_hash> 
PassNT   <NT_hash> 
PassNTLMv2  <NTLMv2_hash> 

Proxy  192.168.7.1:80 #random proxy 
NoProxy * 

Listen  3133 # unused port 

sił cntlm swojej określić proxy najwyższego poziomu, nawet jeśli nie potrzebujesz lub masz, więc dowolny prawidłowy numer dla tej opcji zrobi. Ustawienie NoProxy na * zapewnia, że ​​żadne żądanie nie zostanie przekazane do podanego fałszywego serwera proxy.

Uruchom "c:\Program Files (x86)\Cntlm\cntlm.exe" -f w konsoli, aby sprawdzić, czy wszystko działa. W przeciwnym razie uruchom i zatrzymaj jako usługę.

Aby przetestować z phantomjs Użyłem poniższy skrypt:

var page = require('webpage').create(); 

page.open('http://<machine_name>/myapp', function(status) { 
    console.log("Status: " + status); 
    if(status === "success") { 
    page.render('example.png'); 
    } 
    phantom.exit(); 
}); 

<machine_name> nie może być localhost ponieważ phantomjs omija proxy gdy gospodarz jest localhost, więc używać nazwy urządzenia lub adres IP.

Aby go uruchomić: phantomjs --proxy=localhost:3133 test.js