在使用 Axios 发送请求时,如果遇到 “Axios响应错误:证书已过期。” 错误,可能是因为请求的网站使用的 SSL 证书已经过期。
要解决这个问题,可以通过以下代码示例中的两种方法之一:
方法一:忽略证书验证
const https = require('https');
const axios = require('axios');
const agent = new https.Agent({
rejectUnauthorized: false // 忽略证书验证
});
axios.get('https://example.com', { httpsAgent: agent })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('Axios响应错误:', error.message);
});
在上述代码中,我们创建了一个 https.Agent
对象,并将 rejectUnauthorized
设置为 false
,这样就可以忽略证书验证。然后,将该 https.Agent
对象作为 httpsAgent
选项传递给 Axios 的请求方法。
方法二:使用自定义证书
const https = require('https');
const axios = require('axios');
const fs = require('fs');
const certFile = fs.readFileSync('path/to/certificate.pem'); // 读取自定义证书文件
const agent = new https.Agent({
ca: certFile // 使用自定义证书
});
axios.get('https://example.com', { httpsAgent: agent })
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('Axios响应错误:', error.message);
});
在上述代码中,我们使用 fs.readFileSync
方法读取自定义证书文件,然后将该证书作为 https.Agent
的 ca
选项传递。再将该 https.Agent
对象作为 httpsAgent
选项传递给 Axios 的请求方法。
通过以上两种方法之一,您可以解决 “Axios响应错误:证书已过期。” 错误。请根据您的具体情况选择适合的方法。