国产探花免费观看_亚洲丰满少妇自慰呻吟_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當然也支持自簽名證書,不過我暫時沒這方面需求,就沒繼續摸索了

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

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

圖片精選

主站蜘蛛池模板: 辽阳市| 德清县| 瑞安市| 镶黄旗| 巴楚县| 衡山县| 安新县| 龙川县| 潜江市| 阳泉市| 沙湾县| 华蓥市| 嘉祥县| 塘沽区| 高要市| 紫云| 沾化县| 双柏县| 玛沁县| 娱乐| 黔南| 稻城县| 古蔺县| 贞丰县| 民县| 额敏县| 修武县| 莎车县| 红安县| 高淳县| 黄龙县| 靖江市| 阜城县| 孝感市| 察雅县| 富宁县| 北票市| 阳东县| 宁远县| 浮梁县| 隆尧县|