国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

nodejs中request庫使用HTTPS代理的方法

2024-05-06 15:39:59
字體:
來源:轉載
供稿:網友

正在嘗試改用NodeJS編寫爬蟲,http請求庫選擇了 request ,用起來還是挺簡單的。

現在有個需求,需要用Fiddler抓包我發出去的請求,以便和瀏覽器發出去的包進行對比。

因為需要解密HTTPS報文,需要讓node要么忽略證書安全,要么信任Fiddler的CA證書。

網上找了一圈,總結如下:

方法一:設置環境變量

設置環境變量NODE_TLS_REJECT_UNAUTHORIZED=0 即"不拒絕未認證的證書" 但是直接修改系統環境變量比較危險,因為會影響到所有nodejs的程序;比較穩妥的辦法是腳本中調用process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0; 這樣僅對本進程生效

方法二:每請求單獨設置忽略證書安全

上述方法還是有一定風險,因為當前nodejs進程都受此全局設置影響 可以在request的options中添加rejectUnauthorized: false選項來針對單個請求忽略證書檢查 當然也可以用request.defaults直接設置默認選項
 const request = require("request").defaults({   proxy: "http://127.0.0.1:8888",   rejectUnauthorized: false, }) request.get("https://www.baidu.com").on("response", console.log)

方法三:使用Fiddler的CA證書

這個方法是最穩妥的,不會讓你的子系統產生任何溢出影響 首先在Fiddler內把其根證書導出到桌面:Tools -> Options -> HTTPS -> Actions -> Export Root Certificate to Desktop 導出的文件是個.cer證書,經測試nodejs不直接支持,需要用openssl轉換成PEM格式(我的openssl是cygwin裝的) openssl x509 -inform DER -in FiddlerRoot.cer -outform PEM -out fiddler.pem 把轉換出來的fiddler.pem放到你的程序能訪問的位置 使用ca選項來指定CA證書
 const request = require("request").defaults({   proxy: "http://127.0.0.1:8888",   ca: require("fs").readFileSync("path/to/fiddler.pem", {encoding: "utf-8"}), }) request.get("https://www.baidu.com").on("response", console.log)

另外:request當然也支持自簽名證書,不過我暫時沒這方面需求,就沒繼續摸索了

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 枣强县| 蛟河市| 浦江县| 高雄市| 察隅县| 丰原市| 盐池县| 饶阳县| 新巴尔虎右旗| 福贡县| 兴国县| 平邑县| 宜兰市| 南召县| 永济市| 阜康市| 沾化县| 西和县| 清流县| 石门县| 昌宁县| 水富县| 宜宾市| 台湾省| 鹤岗市| 枝江市| 深圳市| 息烽县| 汝南县| 两当县| 东兴市| 竹山县| 通化市| 荃湾区| 清涧县| 礼泉县| 定安县| 定安县| 礼泉县| 鄂州市| 宜兴市|