欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2019年04月30日 09:34:03   作者:rockswang  
這篇文章主要介紹了nodejs中request庫使用HTTPS代理的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

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

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

網(wǎng)上找了一圈,總結如下:

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

  • 設置環(huán)境變量NODE_TLS_REJECT_UNAUTHORIZED=0
  • 即"不拒絕未認證的證書"
  • 但是直接修改系統(tǒng)環(huán)境變量比較危險,因為會影響到所有nodejs的程序;比較穩(wěn)妥的辦法是腳本中調用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證書

  • 這個方法是最穩(wěn)妥的,不會讓你的子系統(tǒng)產生任何溢出影響
  • 首先在Fiddler內把其根證書導出到桌面:Tools -> Options -> HTTPS -> Actions -> Export Root Certificate to Desktop
  • 導出的文件是個.cer證書,經(jīng)測試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當然也支持自簽名證書,不過我暫時沒這方面需求,就沒繼續(xù)摸索了

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

相關文章

  • Nodejs + Websocket 指定發(fā)送及群聊的實現(xiàn)

    Nodejs + Websocket 指定發(fā)送及群聊的實現(xiàn)

    這篇文章主要介紹了Nodejs + Websocket 指定發(fā)送及群聊的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • Node.js異步I/O學習筆記

    Node.js異步I/O學習筆記

    這篇文章主要介紹了Node.js異步I/O學習筆記,本文詳細講解了異步I/O的基本概念、Node的異步I/O、非I/O的異步API、事件驅動與高性能服務器等內容,需要的朋友可以參考下
    2014-11-11
  • Node+Express搭建HTTPS服務的實現(xiàn)

    Node+Express搭建HTTPS服務的實現(xiàn)

    最近開發(fā)需要搭建一個https的服務,正好最近在用nodejs和express,本文章主要介紹了Node+Express搭建HTTPS服務的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • node.js中ws模塊創(chuàng)建服務端與客戶端實例代碼

    node.js中ws模塊創(chuàng)建服務端與客戶端實例代碼

    在Node.js中提供了http模塊與https模塊,專用于創(chuàng)建HTTP服務器、HTTP客戶端,以及HTTPS服務器及HTTPS客戶端,同時實現(xiàn)這些服務器端與客戶端之中所需進行的處理,下面這篇文章主要給大家介紹了關于node.js中ws模塊創(chuàng)建服務端與客戶端的相關資料,需要的朋友可以參考下
    2023-05-05
  • 簡單了解小程序+node梳理登陸流程

    簡單了解小程序+node梳理登陸流程

    這篇文章主要介紹了簡單了解小程序+node梳理登陸流程,以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考下
    2019-06-06
  • node.js+postman實現(xiàn)模擬HTTP服務器與客戶端交互

    node.js+postman實現(xiàn)模擬HTTP服務器與客戶端交互

    本文主要介紹了node.js+postman實現(xiàn)模擬HTTP服務器與客戶端交互,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Nodejs基于LRU算法實現(xiàn)的緩存處理操作示例

    Nodejs基于LRU算法實現(xiàn)的緩存處理操作示例

    這篇文章主要介紹了Nodejs基于LRU算法實現(xiàn)的緩存處理操作,結合具體實例形式分析了LRU算法的原理、功能以及nodejs使用LRU算法實現(xiàn)緩存處理操作的相關實現(xiàn)技巧,需要的朋友可以參考下
    2017-03-03
  • Yapi安裝部署詳細圖文教程

    Yapi安裝部署詳細圖文教程

    YApi 是一個可本地部署的、打通前后端及QA的、可視化的接口管理平臺,下面這篇文章主要給大家介紹了關于Yapi安裝部署的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • Node的事件處理和readline模塊詳解

    Node的事件處理和readline模塊詳解

    這篇文章主要為大家詳細介紹了Node的事件處理和readline模塊,使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 淺談node中的exports與module.exports的關系

    淺談node中的exports與module.exports的關系

    本篇文章主要介紹了淺談node中的exports與module.exports的關系,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08

最新評論