2015-07-03 3 views
6

Я пытаюсь использовать прокси-сервер cntlm на своей машине Windows, чтобы поговорить с локальным веб-приложением IIS, использующим проверку подлинности Windows с PhantomJS. Для того, чтобы создать прокси-сервер, я делаю: cntlm -v -u [email protected] -p password -l 1456 localhost:80cntlm proxy с phantomjs

Мои приложения жизни на localhost/myapp

Чтобы проверить, является ли это или нет работы, я стараюсь, чтобы перейти к localhost:1456/myapp, но я всегда получаю вызов аутентификации и не разумным имя пользователя/комбинация паролей, похоже, работает. Любые мысли о том, почему эта настройка может работать не так, как ожидалось?

Когда я ударил проксируемую конечную точку в браузере, это выход из cntlm:

http://pastebin.com/xvvmfsGV

ответ

8

После борьбы с концепцией на некоторое время я, наконец, понял, как получить это настроить.

После установки cntlm, я побежал следующее из командной строки:

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

Это просит ввести пароль и выкладывает три хэш для использования в конфигурационном файле.

я вырезал вниз требуемую конфигурацию в cntlm.ini для:

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 

cntlm силы вашей, чтобы указать верхний уровень прокси, даже если вам не нужен или один, так что любое действительное число для этой опции Сделаю. Установка NoProxy - * гарантирует, что любой запрос никогда не будет передан указанному фиктивному прокси.

Запустите "c:\Program Files (x86)\Cntlm\cntlm.exe" -f в консоли, чтобы убедиться, что все работает. В противном случае начните и остановите его как услугу.

Для тестирования с phantomjs Я использовал следующий сценарий:

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> не может быть localhost, потому что phantomjs обходит прокси, когда хост localhost, поэтому использовать имя машины или IP-адрес вместо.

Для его использования: phantomjs --proxy=localhost:3133 test.js

Смежные вопросы