阿波罗客户端自签名证书

9
有没有办法让ApolloClient接受来自使用自签名证书的服务器的请求?
    import ApolloClient from 'apollo-boost';

    const client = new ApolloClient({
        uri: `https://${window.location.hostname}:8080/graphql`,
        rejectUnauthorized: false
    });
  • rejectUnauthorized: false不起作用

请求错误: OPTIONS https://localhost:8080/graphql net::ERR_CERT_AUTHORITY_INVALID

2个回答

3

前端

即使您点击了“我了解风险”并跳转到页面,Apollo客户端也可能拒绝证书。您可以通过启用本地主机的自签名证书来解决此问题:在Chrome中键入

chrome://flags/#allow-insecure-localhost

进入导航并点击启用。

另一个选项是将证书安装为可信任的。有关更多信息,请参见此问题

后端

如果您在Node.js中的后端使用Apollo客户端,可以使用以下命令启动进程:

NODE_TLS_REJECT_UNAUTHORIZED=0

可以使用例如env-cmd包执行此操作。


不起作用。我遇到了相同的问题 https://stackoverflow.com/questions/75884056/vue-apollo-client-keeps-getting-self-signed-certificate-error?fbclid=IwAR3leAzS9QU8WboaxzxmYI_2LmBsHbM4VojLNPbOE7ZpN9l59v6YGOhH6Zk - nam vo

0

你也可以使用代理选项进行开发:

let fetchOptions = {}

if (process.env.NODE_ENV !== 'production') {
  const https = require('https')
  fetchOptions = { agent: new https.Agent({ rejectUnauthorized: false }) }
}
const link = new HttpLink({
  uri: 'https://localhost/api/graphql',
  credentials: 'same-origin',
  fetchOptions,
})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接