【问题标题】:Ocelot Disable SSL validation with "DangerousAcceptAnyServerCertificateValidator"Ocelot 使用“DangerousAcceptAnyServerCertificateValidator”禁用 SSL 验证
【发布时间】:2020-03-25 06:01:10
【问题描述】:

添加自签名证书后出现问题,请求在网关处被阻止并显示消息

无法建立 SSL 连接,请参阅内部异常。 ---> System.Security.Authentication.AuthenticationException:远程 根据验证程序,证书无效。

然后我发现可以通过在配置中添加来禁用验证

"DangerousAcceptAnyServerCertificateValidator": true

但仍然有同样的问题和同样的错误。

【问题讨论】:

    标签: .net-core ssl-certificate ocelot


    【解决方案1】:

    抱歉,聚会迟到了。

    很可能您的下游服务也存在无效证书问题。 Ocelot 只会处理它的初始传递,它由下一个 http 调用者处理。

    所以我们使用 NET Core 的 Refit 并在我们的注册中有这样的代码(用于 ocelot 正在调用的服务)

    return services.AddHttpClient(name, configureClient)
        .ConfigurePrimaryHttpMessageHandler(() =>
        {
            return new HttpClientHandler()
            {
                ServerCertificateCustomValidationCallback = (message, certificate2, arg3, arg4) => true
            };
        });
    

    如果我们定义了一个八达通变量 ignoreinvalidsllcerts(所以仅在测试中!!!!)

    这是 refit/c#/core 代码,但只要您正在创建 HttpClient 可能会有所帮助!

    【讨论】:

      【解决方案2】:

      你提到的下面的指令对我来说很好。

          "DangerousAcceptAnyServerCertificateValidator": true
      

      我使用的是 Ocelot 16.0.1。医生在这里 https://ocelot.readthedocs.io/en/latest/features/configuration.html

      【讨论】:

        【解决方案3】:

        我刚刚开始使用 Ocelot,我收到 “根据验证程序,远程证书无效。” 错误,这就是我在这里结束的原因.

        正如@capcom923 提到的,该指令运行良好,或者至少解决了我在开发环境中面临的问题。

        以防万一我把我的 configuration.json 的相关部分放在这里

        "Routes": [
            {
              "DownstreamPathTemplate": "/api/Tareas/{id}",
              "DownstreamScheme": "https",
              "DownstreamHostAndPorts": [
                {
                  "Host": "myDebServerName",
                  "Port": 444
                }
              ],
              "UpstreamPathTemplate": "/api/tareitas/{id}",
              "UpstreamHttpMethod": [ "POST", "PUT", "GET" ],
        
              "DangerousAcceptAnyServerCertificateValidator": true
            }
        

        我希望这可以为面临相同情况的人增加一些价值。

        【讨论】:

        • Sebastian 经过一小时的搜索后,我终于找到了该选项在 ocelot 文件中的位置!感谢您准确无误地分享确切的内容。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-04
        • 1970-01-01
        • 2022-01-18
        • 2020-07-12
        • 2021-12-22
        • 2019-06-28
        相关资源
        最近更新 更多