SSLyze 是一个快速且强大的 SSL/TLS 扫描工具和 Python 库。
SSLyze 可以通过连接到服务器来分析其 SSL/TLS 配置,以确保服务器使用强加密设置(证书、密码套件、椭圆曲线等),并且不易受到已知 TLS 攻击(如 Heartbleed、ROBOT、OpenSSL CCS 注入等)的影响。
在 Windows、Linux(x86 或 x64)和 macOS 上,可以直接通过 pip 安装 SSLyze:
$ pip install --upgrade pip setuptools wheel
$ pip install --upgrade sslyze
$ python -m sslyze www.yahoo.com www.google.com "[2607:f8b0:400a:807::2004]:443"
也可以通过 Docker 使用:
$ docker run --rm -it nablac0d3/sslyze:6.1.0 www.google.com
最后,可以从发布页面下载预编译的 Windows 可执行文件。
介绍如何使用 SSLyze Python API 的示例脚本位于 ./api_sample.py。
SSLyze Python API 的完整文档可在此处获取。
默认情况下,SSLyze 会将服务器的扫描结果与 Mozilla 推荐的 "中等级别" TLS 配置 进行对比,如果服务器不符合要求,则返回非零退出码。
$ python -m sslyze mozilla.com
检查结果是否符合 Mozilla 的 "中等级别" 配置。详情请参阅 https://ssl-config.mozilla.org/.
mozilla.com:443: 通过 - 符合要求。
可以通过 --mozilla_config={old, intermediate, modern} 配置要检查的 Mozilla 配置:
$ python -m sslyze --mozilla_config=modern mozilla.com
检查结果是否符合 Mozilla 的 "现代" 配置。详情请参阅 https://ssl-config.mozilla.org/.
mozilla.com:443: 失败 - 不符合要求。
* certificate_types: 部署的证书类型为 {'rsa'},应至少包含 {'ecdsa'} 之一。
* certificate_signatures: 部署的证书签名为 {'sha256WithRSAEncryption'},应至少包含 {'ecdsa-with-SHA512', 'ecdsa-with-SHA256', 'ecdsa-with-SHA384'} 之一。
* tls_versions: 支持的 TLS 版本为 {'TLSv1.2'},但应被拒绝。
* ciphers: 支持的密码套件为 {'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384', 'TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256', 'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256'},但应被拒绝。
或者,您可以通过提供一个遵循 Mozilla TLS 配置格式的 JSON 文件,来检查您自己的自定义 TLS 配置:
$ python -m sslyze --custom_tls_config custom_tls_config_example.json mozilla.com
检查结果是否符合自定义 TLS 配置。
mozilla.com:443: 通过 - 符合要求。
请参阅 custom_tls_config_example.json,了解 SSLyze 可以使用的自定义 TLS 配置示例。
此功能可用于轻松将 SSLyze 扫描作为 CI/CD 步骤运行,以确保 TLS 合规性。
设置开发环境:
$ pip install --upgrade pip setuptools wheel
$ pip install -e .
$ pip install -r requirements-dev.txt
然后可以通过以下命令运行测试:
$ invoke test
版权所有 © 2026 Alban Diquet
SSLyze 根据 GNU Affero General Public License (AGPL) 的条款提供。有关详细信息和例外情况,请参阅 LICENSE.txt。