Apollo-客户端自签名证书

IT技术 javascript reactjs apollo apollo-client
2021-05-05 11:21:50

ApolloClient 有没有办法接受来自带有自签名证书的服务器的请求?

    import ApolloClient from 'apollo-boost';

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

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

2个回答

前端

即使您单击“我了解风险”并转到该页面,Apollo 客户端也可能拒绝该证书。您可以通过从本地主机启用自签名证书来解决此问题:在 chrome 类型上

铬://标志/#allow-insecure-localhost

到导航并单击启用。

其他选项是将证书安装为受信任的。更多关于这个问题

后端

如果您在后端使用 Apollo 客户端和 Nodejs,您可以使用以下命令开始该过程:

NODE_TLS_REJECT_UNAUTHORIZED=0

这可以通过例如env-cmd来完成

您还可以使用代理选项进行开发:

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,
})