最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)上找了一圈,總結(jié)如下:

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

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

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

  • 上述方法還是有一定風險,因為當前nodejs進程都受此全局設(shè)置影響
  • 可以在request的options中添加rejectUnauthorized: false選項來針對單個請求忽略證書檢查
  • 當然也可以用request.defaults直接設(shè)置默認選項
 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)產(chǎn)生任何溢出影響
  • 首先在Fiddler內(nèi)把其根證書導(dǎo)出到桌面:Tools -> Options -> HTTPS -> Actions -> Export Root Certificate to Desktop
  • 導(dǎo)出的文件是個.cer證書,經(jīng)測試nodejs不直接支持,需要用openssl轉(zhuǎn)換成PEM格式(我的openssl是cygwin裝的)
  • openssl x509 -inform DER -in FiddlerRoot.cer -outform PEM -out fiddler.pem
  • 把轉(zhuǎn)換出來的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ù)摸索了

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

相關(guān)文章

  • 在nodeJs中如何修改json文件中的數(shù)據(jù)

    在nodeJs中如何修改json文件中的數(shù)據(jù)

    這篇文章主要介紹了在nodeJs中如何修改json文件中的數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • nodejs?express實現(xiàn)中間件

    nodejs?express實現(xiàn)中間件

    這篇文章主要為大家介紹了nodejs?express實現(xiàn)中間件實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Node.js靜態(tài)服務(wù)器的實現(xiàn)方法

    Node.js靜態(tài)服務(wù)器的實現(xiàn)方法

    這篇文章主要介紹了Node.js靜態(tài)服務(wù)器的實現(xiàn)方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Nodejs 和 Electron ubuntu下快速安裝過程

    Nodejs 和 Electron ubuntu下快速安裝過程

    本文較為詳細的給大家介紹了Nodejs 和 Electron ubuntu下快速安裝過程,非常不錯,具有一定的參考借鑒價值,感興趣的朋友跟隨腳本之家小編一起學(xué)習吧
    2018-05-05
  • Node 創(chuàng)建第一個服務(wù)器應(yīng)用的操作方法

    Node 創(chuàng)建第一個服務(wù)器應(yīng)用的操作方法

    Node.js是一個基于Chrome V8引擎的JavaScript運行環(huán)境,可以用于構(gòu)建高性能的網(wǎng)絡(luò)應(yīng)用程序,它采用事件驅(qū)動、非阻塞I/O模型,使得程序可以以高效地方式處理并發(fā)請求,這篇文章主要介紹了Node 創(chuàng)建第一個服務(wù)器應(yīng)用,需要的朋友可以參考下
    2024-02-02
  • npm?install編譯時報"Cannot?read?properties?of?null?(reading?‘pickAlgorithm‘)"錯誤的解決辦法

    npm?install編譯時報"Cannot?read?properties?of?null?(r

    這篇文章主要給大家介紹了關(guān)于npm?install編譯時報“Cannot?read?properties?of?null?(reading?‘pickAlgorithm‘)“錯誤的解決辦法,文中將解決方法介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • node.js處理前端提交的GET請求

    node.js處理前端提交的GET請求

    這篇文章主要為大家詳細介紹了node.js處理前端提交的GET請求,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 詳解node nvm進行node多版本管理

    詳解node nvm進行node多版本管理

    這篇文章主要介紹了詳解node nvm進行node多版本管理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • nodejs使用socket5進行代理請求的實現(xiàn)

    nodejs使用socket5進行代理請求的實現(xiàn)

    這篇文章主要介紹了nodejs使用socket5進行代理請求的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-02-02
  • node.js 使用ejs模板引擎時后綴換成.html

    node.js 使用ejs模板引擎時后綴換成.html

    本文給大家分享一個nodejs的小技巧,將ejs模板引擎的模板后綴改成.html的使用方法,非常的簡單實用,這里推薦給大家。
    2015-04-04

最新評論

师宗县| 灵璧县| 祁门县| 原阳县| 江山市| 额敏县| 通化县| 东方市| 满洲里市| 梅州市| 枣阳市| 海宁市| 秦皇岛市| 固阳县| 友谊县| 西乌珠穆沁旗| 民权县| 玛曲县| 钦州市| 长垣县| 龙江县| 浮梁县| 古丈县| 泾源县| 曲松县| 夏邑县| 清苑县| 乐清市| 淮滨县| 武城县| 彭山县| 永德县| 海阳市| 石景山区| 正定县| 绥中县| 安塞县| 元朗区| 满洲里市| 邢台市| 喜德县|