亚洲va中文字幕无码毛片,亚洲成a人片77777kkkk,五十路丰满中年熟女中出,无码人妻精品一区二区,天堂在线中文

幫助與文檔

當(dāng)前位置: 主頁(yè) > HTTP代理IP > 正文

nodejs中request庫(kù)使用HTTPS代理的方法

時(shí)間:2024/5/8 11:29:47   來源:米安網(wǎng)絡(luò)   作者:云主機(jī)配置專家   點(diǎn)擊:244次

正在嘗試改用NodeJS編寫爬蟲,http請(qǐng)求庫(kù)選擇了 request ,用起來還是挺簡(jiǎn)單的,F(xiàn)在有個(gè)需求,需要用Fiddler抓包我發(fā)出去的請(qǐng)求,以便和瀏覽器發(fā)出去的包進(jìn)行對(duì)比。因?yàn)樾枰饷蹾TTPS報(bào)文,需要讓node要么忽略證書安全,要么信任Fiddler的CA證書。網(wǎng)上找了一圈,總結(jié)如下:

方法一:設(shè)置環(huán)境變量

設(shè)置環(huán)境變量NODE_TLS_REJECT_UNAUTHORIZED=0.即"不拒絕未認(rèn)證的證書"。但是直接修改系統(tǒng)環(huán)境變量比較危險(xiǎn),因?yàn)闀?huì)影響到所有nodejs的程序;比較穩(wěn)妥的辦法是腳本中調(diào)用process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0; 這樣僅對(duì)本進(jìn)程生效。

方法二:每請(qǐng)求單獨(dú)設(shè)置忽略證書安全

上述方法還是有一定風(fēng)險(xiǎn),因?yàn)楫?dāng)前nodejs進(jìn)程都受此全局設(shè)置影響,可以在request的options中添加rejectUnauthorized: false選項(xiàng)來針對(duì)單個(gè)請(qǐng)求忽略證書檢查,當(dāng)然也可以用request.defaults直接設(shè)置默認(rèn)選項(xiàng)。

const request = require("request").defaults({

proxy: "http://123.123.123.123:88888",

rejectUnauthorized: false,

})

request.get("https://www.baidu.com").on("response", console.log)

方法三:使用Fiddler的CA證書

這個(gè)方法是最穩(wěn)妥的,不會(huì)讓你的子系統(tǒng)產(chǎn)生任何溢出影響。

首先在Fiddler內(nèi)把其根證書導(dǎo)出到桌面:Tools -> Options -> HTTPS -> Actions -> Export Root Certificate to Desktop

導(dǎo)出的文件是個(gè).cer證書,經(jīng)測(cè)試nodejs不直接支持,需要用openssl轉(zhuǎn)換成PEM格式(我的openssl是cygwin裝的)

openssl x509 -inform DER -in FiddlerRoot.cer -outform PEM -out fiddler.pem

把轉(zhuǎn)換出來的fiddler.pem放到你的程序能訪問的位置

使用ca選項(xiàng)來指定CA證書

const request = require("request").defaults({

proxy: "http://123.123.123.123:88888",

ca: require("fs").readFileSync("path/to/fiddler.pem", {encoding: "utf-8"}),

})

request.get("https://www.baidu.com").on("response", console.log)

另外:request當(dāng)然也支持自簽名證書,不過我暫時(shí)沒這方面需求,就沒繼續(xù)摸索了

版權(quán)保護(hù): 本文「nodejs中request庫(kù)使用HTTPS代理的方法」由 云主機(jī)配置專家 原創(chuàng),轉(zhuǎn)載請(qǐng)保留鏈接: http://www.iqcg.cn/docs/proxyip/1595.html

聯(lián)系客服

0312-5535754

微信公眾號(hào)