Axios CDN 使用 pfx https 证书
Axios CDN using pfx https certificate
- axios版本:
0.20.0
- 预期行为
调用成功
- 实际行为
POST https://beta.credcoconnect.com/cc/listener net::ERR_BAD_SSL_CLIENT_AUTH_CERT
- **To Reproduce**
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> const agent = new https.Agent({ pfx: fs.readFileSync('auth/TopTierGroupLLC-10-8-20.pfx') });
$(".submitBt").click(function(e) {
axios.post('https://beta.credcoconnect.com/cc/listener', { body: body })
.then(response => {
if (response)
{
console.log(response.status);
} else {
alert('sem resposta');
}
});
});
我只是在 HTML 页面中使用 axios 的 CDN,我想向 API 发送请求,但它要求提供身份验证证书。此证书有效,但我不知道如何让 axios 仅使用 axios CDN 读取此证书。
错误实际上是说远程证书无效,它可以 'read' 没问题。 beta.credcoconnect.com 处的服务器正在使用不受支持的根证书、超时证书或最有可能是自签名证书(来自浏览器上下文)。
这本质上是不可信的;尝试将新证书传递给调用是没有意义的,因为这不是问题所在,浏览器可以针对它不信任的任何 SSL 证书进行协商。您需要做的是:
(推荐)将远程 ssl 证书更改为有效证书,您可以完全免费执行此操作并使用 LetsEncrypt 自动执行此操作 (https://letsencrypt.org/)
中间层的想法是使用具有有效证书的后端代理作为中间人,并使用它来调用 beta.credcoconnect.com。在大多数语言中很容易使后端调用忽略 SSL 错误。如果您无法控制 beta.credcoconnect.com 托管来修复证书,这将是最好的主意。
尝试让浏览器在本地忽略 SSL 错误不是我认为您可以使用现代浏览器做的事情,XHR 对象上曾经有一个 'setOptions' 可以工作...但我认为您应该尝试其他 2 个选项之一。
最后但完全不推荐。如果这是一个受控环境,其中所有客户端都由您控制,而不是 public 网站,那么您可以将证书添加到客户端机器上的可信链中。这通常是使用 SSL 进行本地主机开发的方式。
- axios版本:
0.20.0
- 预期行为
调用成功
- 实际行为
POST https://beta.credcoconnect.com/cc/listener net::ERR_BAD_SSL_CLIENT_AUTH_CERT
- **To Reproduce**
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script> const agent = new https.Agent({ pfx: fs.readFileSync('auth/TopTierGroupLLC-10-8-20.pfx') });
$(".submitBt").click(function(e) {
axios.post('https://beta.credcoconnect.com/cc/listener', { body: body })
.then(response => {
if (response)
{
console.log(response.status);
} else {
alert('sem resposta');
}
});
});
我只是在 HTML 页面中使用 axios 的 CDN,我想向 API 发送请求,但它要求提供身份验证证书。此证书有效,但我不知道如何让 axios 仅使用 axios CDN 读取此证书。
错误实际上是说远程证书无效,它可以 'read' 没问题。 beta.credcoconnect.com 处的服务器正在使用不受支持的根证书、超时证书或最有可能是自签名证书(来自浏览器上下文)。
这本质上是不可信的;尝试将新证书传递给调用是没有意义的,因为这不是问题所在,浏览器可以针对它不信任的任何 SSL 证书进行协商。您需要做的是:
(推荐)将远程 ssl 证书更改为有效证书,您可以完全免费执行此操作并使用 LetsEncrypt 自动执行此操作 (https://letsencrypt.org/)
中间层的想法是使用具有有效证书的后端代理作为中间人,并使用它来调用 beta.credcoconnect.com。在大多数语言中很容易使后端调用忽略 SSL 错误。如果您无法控制 beta.credcoconnect.com 托管来修复证书,这将是最好的主意。
尝试让浏览器在本地忽略 SSL 错误不是我认为您可以使用现代浏览器做的事情,XHR 对象上曾经有一个 'setOptions' 可以工作...但我认为您应该尝试其他 2 个选项之一。
最后但完全不推荐。如果这是一个受控环境,其中所有客户端都由您控制,而不是 public 网站,那么您可以将证书添加到客户端机器上的可信链中。这通常是使用 SSL 进行本地主机开发的方式。