【问题标题】:Apollo-client self signed certificateApollo 客户端自签名证书
【发布时间】:2018-09-21 20:15:26
【问题描述】:

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

    import ApolloClient from 'apollo-boost';

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

请求错误: 选项https://localhost:8080/graphqlnet::ERR_CERT_AUTHORITY_INVALID

【问题讨论】:

    标签: javascript reactjs apollo apollo-client


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      前端

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

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

      到导航并点击启用。

      其他选项是将证书安装为受信任的。更多信息请关注this question

      后端

      如果您在后端使用 Apollo 客户端和 Nodejs,您可以使用以下方式启动该过程:

      NODE_TLS_REJECT_UNAUTHORIZED=0

      这可以通过例如env-cmd 包。

      【讨论】:

        猜你喜欢
        • 2013-07-14
        • 2022-01-07
        • 1970-01-01
        • 2020-05-17
        • 2017-02-25
        • 1970-01-01
        • 1970-01-01
        • 2017-02-13
        • 1970-01-01
        相关资源
        最近更新 更多