0

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

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

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

"DangerousAcceptAnyServerCertificateValidator": true

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

4

3 回答 3

1

您提到的以下指令对我来说很好。

    "DangerousAcceptAnyServerCertificateValidator": true

我使用 Ocelot 16.0.1。文档在这里 https://ocelot.readthedocs.io/en/latest/features/configuration.html

于 2020-08-19T06:20:51.207 回答
1

我刚开始使用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
    }

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

于 2021-09-10T10:08:42.780 回答
0

抱歉,派对迟到了。

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

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

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

如果我们定义了一个 octopus 变量,上面写着ignoreinvalidsllcerts(所以只在测试中!!!)

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

于 2020-03-09T23:31:51.797 回答