首页/安全/加密与证书速查/openssl ciphers 套件语义查询

openssl ciphers 套件语义查询

ciphers 命令按表达式列举本机支持的 1.2 套件:可用于查看组合、验证白名单表达式是否合法,以及观察安全级别策略的影响。

加密与证书速查安全更新于 2026-10-13

套件语义查询

该命令按表达式列举本机支持的旧版协议套件,可用于查看组合、验证白名单表达式是否合法,以及观察安全级别策略对可用集合的影响。表达式支持并集、排除、降级与安全级别等语法。需要注意的是新版协议的套件不在这个列表里,需要用另一个子命令查询。

基本信息

列举按表达式输出匹配的套件
表达式支持并集、排除、降级与安全级别语法
版本说明新版协议套件不在此列表
用途编写服务端套件白名单前先在本地验证

典型使用场景

  • 编写白名单前先在本地验证表达式
  • 核对安全级别策略对可用套件的影响
  • 排错:确认套件名拼写与协议版本是否匹配
  • 基线检查:确认是否仍包含分组套件
  • 迁移评估:对比不同版本库的默认集合差异

查看与验证表达式

查看与验证表达式
openssl ciphers -v 'ECDHE+AESGCM:ECDHE+CHACHA20' | head -10   # 验证表达式
openssl ciphers -v 'DEFAULT' | grep -c CBC                     # 统计分组套件
openssl ciphers -v 'DEFAULT@SECLEVEL=2' | wc -l                 # 观察安全级别影响
openssl list -cipher-algorithms | grep -i '^TLS_AES' | head    # 新版协议套件

表达式语法

语法含义示例作用
并集同时包含多个条件列出满足任一条件的套件
排除从结果中剔除去掉指定家族
降级保留但排在末尾作为兜底候选
安全级别按级别过滤级别提高后删除弱组合
表达式在本地验证后再写入服务端配置,可避免因库版本差异导致的语法问题;服务端实际可协商范围还取决于协议版本与双方支持情况。

落地建议

  • 把最终表达式连同验证输出一起留档
  • 变更套件配置前先统计客户端分布
  • 不同环境使用同一份表达式并各自验证
  • 把套件清单纳入定期基线检查
把该命令的输出直接当成服务端最终集合是常见误解:它只反映本地库在给定表达式与安全级别下的结果,实际协商还受协议版本与客户端列表影响。

易错点

  • 把输出直接当服务端最终集合,忽略协议版本与策略影响
  • 忽略安全级别过滤导致列表与预期不符
  • 在本地验证通过就直接上线,未在服务端做实际协商验证
  • 套件名拼写与协议版本不匹配,表达式匹配为空却没有察觉
  • 只关注是否包含强套件,不检查是否仍残留分组套件

数据来源与参考

  • OpenSSL 官方文档(ciphers)
  • OpenSSL 安全级别文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌