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

首頁 > 開發 > JS > 正文

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

2024-05-06 16:50:26
字體:
來源:轉載
供稿:網友

正在嘗試改用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("http://yun.vevb.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("http://yun.vevb.com").on("response", console.log)

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尤溪县| 宁陵县| 镇康县| 新宾| 拜泉县| 崇信县| 德江县| 原平市| 静海县| 民权县| 平果县| 临朐县| 乡城县| 宣汉县| 离岛区| 海原县| 青铜峡市| 汉中市| 威信县| 正定县| 湛江市| 海南省| 元江| 恩平市| 玛曲县| 沐川县| 怀柔区| 邹平县| 汽车| 黄梅县| 桃园市| 阳高县| 利辛县| 绍兴县| 沛县| 河北省| 固阳县| 湘乡市| 泸州市| 翁源县| 时尚|