You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Golang配置的ECDHE类TLS密码套件为何未在Nmap扫描中显示?

为什么Golang TLS配置中的ECDHE密码套件未在Nmap扫描中显示?

我用Golang 1.19搭建了一个Web服务器,将最低TLS版本配置为1.2,并指定了一组包含ECDHE类的密码套件:

config := &tls.Config{
    Certificates: certs,
    MinVersion:   tls.VersionTLS12,
    CipherSuites: []uint16{
        tls.TLS_RSA_WITH_AES_256_CBC_SHA,
        tls.TLS_RSA_WITH_AES_256_GCM_SHA384,
        tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
        tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
    },
}

部署到Linux服务器后用Nmap扫描,结果却只显示了RSA类的密码套件:

> nmap --script ssl-enum-ciphers -p 443 myserver.mydomain.com

Starting Nmap 6.40 ( http://nmap.org ) at 2023-07-31 07:24 PDT
Nmap scan report for myserver.mydomain.com (<IP redacted>)
Host is up (0.00052s latency).
PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   TLSv1.2:
|     ciphers:
|       TLS_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_GCM_SHA384 - strong
|     compressors:
|       NULL
|_  least strength: strong

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds

配置中的ECDHE类密码套件未出现在扫描结果中,这是什么原因?


原因及解决方法

ECDHE_RSA系列的密码套件需要服务器支持椭圆曲线密钥交换流程,你的配置缺少了关键参数导致套件被自动排除:

  1. 核心原因
    Go的TLS库在仅配置RSA证书且未指定CurvePreferences时,会自动过滤依赖EC密钥交换的ECDHE_RSA套件——因为服务器无法完成椭圆曲线密钥协商的必要步骤。

  2. 修复方案
    在tls.Config中添加CurvePreferences字段,指定服务器支持的椭圆曲线(比如常用的P256、P384),修改后的配置如下:

config := &tls.Config{
    Certificates: certs,
    MinVersion:   tls.VersionTLS12,
    CipherSuites: []uint16{
        tls.TLS_RSA_WITH_AES_256_CBC_SHA,
        tls.TLS_RSA_WITH_AES_256_GCM_SHA384,
        tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
        tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
    },
    // 添加椭圆曲线偏好配置
    CurvePreferences: []tls.CurveID{
        tls.CurveP256,
        tls.CurveP384,
    },
}
  1. 验证方式
    修改配置重启服务器后,可用openssl命令测试ECDHE套件是否生效:
    openssl s_client -connect myserver.mydomain.com:443 -cipher ECDHE-RSA-AES256-GCM-SHA384
    
    如果能成功建立连接,说明套件已启用,此时再用Nmap扫描就能看到对应的ECDHE类套件了。

内容的提问来源于stack exchange,提问作者Shaul Behr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 11:05:31