[axios]客户证书

2024-05-15 107 views
5

我在 node.js 4.2.x 上使用 axios。我如何提及用于连接到其中一项安全服务的 SSL CA 证书?

有人可以给我指一个示例工作代码吗?

回答

4

您应该能够Agent按如下方式使用自定义:


var agent = new https.Agent({ 
  ca: fs.readFileSync('ca.pem') 
});

axios.get(url, { agent: agent });

// or 

var instance = axios.create({ agent: agent });
instance.get(url);

希望能帮助到你!

1

就我而言,它是一个.crt文件,其中包含来自 Godaddy 的一堆证书。当我尝试遵循 @nickuraltsev 提到的示例代码时,出现以下错误。

{ [Error: unable to get local issuer certificate] code: 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY' }

9

axioshttps在底层使用模块。所有与证书相关的配置参数都传递到https.您甚至可以https直接配置:

https.globalAgent.options.ca = fs.readFileSync('ca.pem'); // Note: this is a global setting

如果您需要有关在模块中使用 SSL 证书的帮助https,请在 StackOverflow 上提问。

2

我正在尝试在浏览器中运行这个项目。我找不到可用的 https 模块。你能告诉我这是如何实现的吗?

6

@voraparth91 您可以将 axios 配置为在 Node.js 中使用特定证书,但不能在浏览器中使用。

4

@nickuraltsev 有没有其他方法可以建议我在浏览器中为 XHR 请求配置特定证书?

8

小心,正确的分配方法agent是使用 field httpsAgent

const instance = axios.create({ httpsAgent: agent });
3

尝试下面的代码有效,感谢团队。

const Agent = new https.Agent({
  rejectUnauthorized: false
})
const instance = axios.create()
// instance.defaults.baseURL = `http://${process.env.HOST || 'localhost'}:${process.env.PORT || 3000}`
instance.defaults.httpsAgent = Agent
// instance.defaults.headers.common['Authorization'] = 'Basic YWx0ZXY='
// instance.defaults.timeout = 14500
6

就我而言,它是一个.crt文件,其中包含来自 Godaddy 的一堆证书。当我尝试遵循 @nickuraltsev 提到的示例代码时,出现以下错误。

{ [Error: unable to get local issuer certificate] code: 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY' }

就我而言,它是一个.crt文件,其中包含来自 Godaddy 的一堆证书。当我尝试遵循 @nickuraltsev 提到的示例代码时,出现以下错误。

{ [Error: unable to get local issuer certificate] code: 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY' }

我也遇到了这个问题,能告诉我你是怎么解决的吗?