【发布时间】:2019-08-23 15:02:10
【问题描述】:
我有一个 Web API,由一个使用 Kestrel 网络服务器的简单 ASP.Core 应用程序托管。网络服务器在 Ubuntu linux 下的普通 ASP.Core docker 容器中运行(没有安装 IIS)。
我们使用 SSL 服务器测试来确定 SSL 配置是否被认为是安全的: https://www.ssllabs.com/ssltest/index.html
目前我们的评分是 F-(最差,有点糟糕)。
我们只启用很好的 TLS 1.2,但显然我们的 TLS 1.2 配置支持以下被认为非常不安全的密码套件:
此服务器支持匿名(不安全)套件(详见下文)。等级设置为 F。
TLS_ECDH_anon_WITH_AES_256_CBC_SHA (0xc019) 不安全 256 TLS_ECDH_anon_WITH_AES_128_CBC_SHA (0xc018) 不安全 128
如何在容器中运行的 Kestrel 网络服务器上禁用这些加密机制?最好通过向应用程序添加代码,这样我们仍然可以独立于配置。
我已经通过添加以下代码禁用了不安全的 SSLv3、TLS 1.0 和 TLS 1.1:
httpsOptions.SslProtocols = System.Security.Authentication.SslProtocols.Tls12;
【问题讨论】:
标签: security ssl asp.net-core kestrel-http-server