添加自签名证书后出现问题,请求在网关处被阻止并显示消息
无法建立 SSL 连接,请参阅内部异常。---> System.Security.Authentication.AuthenticationException:根据验证程序,远程证书无效。
然后我发现可以通过在配置中添加它来禁用验证
"DangerousAcceptAnyServerCertificateValidator": true
但仍然有同样的问题和同样的错误。
添加自签名证书后出现问题,请求在网关处被阻止并显示消息
无法建立 SSL 连接,请参阅内部异常。---> System.Security.Authentication.AuthenticationException:根据验证程序,远程证书无效。
然后我发现可以通过在配置中添加它来禁用验证
"DangerousAcceptAnyServerCertificateValidator": true
但仍然有同样的问题和同样的错误。
您提到的以下指令对我来说很好。
"DangerousAcceptAnyServerCertificateValidator": true
我使用 Ocelot 16.0.1。文档在这里 https://ocelot.readthedocs.io/en/latest/features/configuration.html
我刚开始使用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
}
我希望这可以为面临相同情况的人增加一些价值。
抱歉,派对迟到了。
很可能您的下游服务也存在无效证书问题。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,它可能会有所帮助!