testssl.sh 是一个免费的命令行工具,用于检查服务器上任意端口的服务是否支持 TLS/SSL 密码套件、协议以及一些加密漏洞。
本软件免费。您可以根据 GPLv2 条款使用它,请参阅 LICENSE。
署名对于此项目的未来非常重要——在互联网上也是如此。因此,如果您基于 testssl.sh 在互联网上提供公共和/或付费的扫描服务,强烈建议您向用户说明您正在使用本程序以及从哪里获取本程序。这有助于我们获得错误修复、其他反馈和更多贡献。
Testssl.sh 可在所有 Linux/BSD 发行版和 MacOS 上开箱即用。早在非常旧的 2.9 版本时,由于基于 bash socket 的检查,大部分因 OpenSSL 客户端功能禁用而产生的限制已被消除。程序中附带了一个旧版 OpenSSL 的版本,但现在您也可以使用任何 LibreSSL 或 OpenSSL 版本。
testssl.sh 也可以在其他类 Unix 系统上开箱即用,只要它们安装了 /bin/bash >= 3.2 版本以及 sed 和 awk 等标准工具。Windows(使用 MSYS2、Cygwin 或 WSL/WSL2)也可以运行。当您启动 testssl.sh 时,会隐式(静默)检查二进制文件。System V Unix 可能需要安装 GNU grep。
更新通知可在 github 上找到,重要通知在 mastodon 或 bluesky 上发布。twitter 已不再使用。
您可以通过克隆此 git 仓库来下载 testssl.sh 的 3.3dev 分支:
git clone --depth 1 https://github.com/testssl/testssl.sh.git --branch 3.3dev
3.3dev 是源自 3.2 稳定版的最新开发分支。我们尽量不在 dev 分支上进行大型实验,但开发的意义在于会有变化,而变化可能需要一些时间成熟。
Testssl.sh 的依赖要求极低。如前所述,您无需安装或构建任何东西。只需从拉取/克隆的目录中运行即可。不过,如果您不想将 GitHub 仓库拉取到您选择的目录,您可以从 dockerhub 拉取一个容器并运行:
docker run --rm -it ghcr.io/testssl/testssl.sh <your_cmd_line>
或者如果您已克隆此仓库,也可以 cd 到 INSTALLDIR 并运行
docker build . -t imagefoo && docker run --rm -t imagefoo testssl.net
更多信息请查阅 Dockerfile.md。
使用本程序无任何担保。使用风险自负。
Testssl.sh 旨在用作独立的 CLI 工具。尽管我们尝试应用最佳安全实践并对外部输入进行净化,但我们不能保证该程序没有漏洞。作为 Web 服务运行可能会带来安全风险,建议您采取额外的安全措施。验证来自用户和所有被查询服务的输入。
鉴于当前的人力,我们仅支持 n-1 版本。您正在查看的是 3.3.dev 分支,进一步的开发将在此进行,之后 3.4 将成为稳定版本,3.2 将成为旧稳定版本。如果您对变化持犹豫态度,则需要使用 3.2 版本。3.0.10 是最后一个版本,不会有更多更新。
~/doc/ 目录下的 groff、html 和 markdown 格式的 man page。许多贡献者已经帮助项目发展到当前状态,请参阅 CREDITS.md。也欢迎您的贡献!有一个问题列表。要开始,可以查找标记为 good first issue、for grabs 或 help wanted 的问题。后者更高级。您也可以关注文档问题,或者帮助进行单元测试或改进 GitHub Actions。
建议阅读 CONTRIBUTING.md,并请查阅编码规范。在开始编写数百行 PR 之前,最好先创建一个 issue。
一般来说,还有一些维护负担,比如维护握手和 CA 存储等。如果您认为自己可以贡献并负责其中一项维护任务,请提出来。这将释放出可用于开发的资源。
错误报告很重要。它能使此项目更加健壮。
请在 GitHub 上的问题跟踪器中提交错误。不要忘记提供详细信息,请参见问题模板以及 https://github.com/testssl/testssl.sh/wiki/Bug-reporting 上的更多细节。目前还没有人能读懂您的想法。而且只有机构才能看到您的屏幕 ;-)
您也可以自行调试,参见此处。
请将不专门针对 testssl.sh 代码的问题提交给下面相应的项目。