正在嘗試改用NodeJS編寫爬蟲,http請求庫選擇了request,用起來仍是挺簡單的。
如今有個需求,須要用Fiddler抓包我發出去的請求,以便和瀏覽器發出去的包進行對比。
由於須要在Fiddler中解密HTTPS報文,須要讓node要麼忽略證書安全,要麼信任Fiddler的CA證書。
網上找了一圈,總結以下:javascript
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;
這樣僅對本進程生效rejectUnauthorized: false
選項來針對單個請求忽略證書檢查固然也能夠用request.defaults直接設置默認選項java
const request = require("request").defaults({ proxy: "http://127.0.0.1:8888", rejectUnauthorized: false, }) request.get("https://www.baidu.com").on("response", console.log)
openssl x509 -inform DER -in FiddlerRoot.cer -outform PEM -out fiddler.pem
使用ca
選項來指定CA證書node
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固然也支持自簽名證書,不過我暫時沒這方面需求,就沒繼續摸索了git