2015-07-03 16 views
6

Tôi đang cố gắng sử dụng proxy cntlm trên máy tính của mình để nói chuyện với một ứng dụng web cục bộ trên IIS sử dụng Xác thực Windows từ PhantomJS. Để tạo ra các proxy, tôi đang làm: cntlm -v -u [email protected] -p password -l 1456 localhost:80cntlm proxy với phantomjs

cuộc sống Ứng dụng của tôi tại localhost/myapp

Để kiểm tra có hay không làm việc này, tôi cố gắng để duyệt đến localhost:1456/myapp nhưng tôi luôn nhận được một thách thức auth và không hỏi username hợp lý/kết hợp mật khẩu dường như hoạt động. Bất kỳ suy nghĩ nào về lý do thiết lập này có thể không hoạt động như mong đợi?

Khi tôi nhấn endpoint proxy trong trình duyệt, đây là sản phẩm từ cntlm:

http://pastebin.com/xvvmfsGV

Trả lời

8

Sau khi vật lộn với khái niệm cho một thời gian cuối cùng tôi đã tìm ra cách để có được điều này thiết lập.

Sau khi cài đặt cntlm, tôi chạy sau đây từ một dấu nhắc lệnh:

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

này yêu cầu mật khẩu của bạn và spits ra ba băm để sử dụng trong các tập tin cấu hình.

tôi đã chọn ra cấu hình yêu cầu trong cntlm.ini tới:

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 lực của bạn để xác định một proxy cấp cao nhất ngay cả khi bạn không cần một hoặc có một, vì vậy bất kỳ số hợp lệ cho tùy chọn đó sẽ làm. Đặt NoProxy thành * đảm bảo rằng mọi yêu cầu không bao giờ được chuyển tới proxy không có thật được chỉ định.

Chạy "c:\Program Files (x86)\Cntlm\cntlm.exe" -f trong bảng điều khiển để xác minh rằng mọi thứ đang hoạt động. Nếu không, hãy bắt đầu và dừng nó như một dịch vụ.

Để kiểm tra với phantomjs tôi đã sử dụng các kịch bản sau đây:

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> không thể localhost vì phantomjs bỏ qua proxy khi chủ nhà là localhost, vì vậy sử dụng tên máy tính của bạn hoặc địa chỉ ip thay thế.

Để chạy: phantomjs --proxy=localhost:3133 test.js