openssl/openssl
GitHub: openssl/openssl
全球最广泛使用的开源加密工具包,提供 TLS/SSL 协议全功能实现及通用加密库,是构建安全网络通信的行业标准。
Stars: 29655 | Forks: 11072
# 欢迎来到 OpenSSL 项目
[![openssl logo]][www.openssl.org]
[![github actions ci badge]][github actions ci]
[](https://github.com/openssl/openssl/actions/workflows/os-zoo.yml)
[](https://github.com/openssl/openssl/actions/workflows/provider-compatibility.yml)
[](https://github.com/openssl/openssl/actions/workflows/run_quic_interop.yml)
[](https://github.com/openssl/openssl/actions/workflows/run-checker-daily.yml)
[](https://insights.linuxfoundation.org/project/openssl)
OpenSSL 是一个健壮的、商业级的、功能齐全的开源工具包,
用于传输层安全协议 (TLS,原 SSL)、数据报 TLS (DTLS) 和 QUIC 协议。
该协议实现基于一个全强度的通用加密库,该库也可以独立使用。
还包括一个经验证符合 FIPS 标准的加密模块。
OpenSSL 源自 Eric A. Young 和 Tim J. Hudson 开发的 SSLeay 库。
OpenSSL 项目的官方主页是 [www.openssl.org]。
# 目录
- [概述](#overview)
- [下载](#download)
- [构建和安装](#build-and-install)
- [文档](#documentation)
- [许可证](#license)
- [支持](#support)
- [贡献](#contributing)
- [法律事宜](#legalities)
# 概述
OpenSSL 工具包包括:
- **libssl**
实现了所有 TLS 协议版本(最高至 TLSv1.3 ([RFC 8446]))、
DTLS 协议版本(最高至 DTLSv1.2 ([RFC 6347]))以及 QUIC 版本 1 协议 ([RFC 9000])。
- **libcrypto**
一个全强度的通用加密库。它是 TLS 实现的基础,但也可以独立使用。
- **openssl**
OpenSSL 命令行工具,是用于加密任务、测试和分析的瑞士军刀。
它可用于
- 创建密钥参数
- 创建 X.509 证书、CSR 和 CRL
- 计算消息摘要
- 加密和解密
- SSL/TLS/DTLS 客户端和服务器测试
- QUIC 客户端测试
- 处理 S/MIME 签名或加密邮件
- 以及更多...
# 下载
## 用于生产环境
官方发布的源代码压缩包可以从
[openssl-library.org/source/](https://openssl-library.org/source/) 下载。
OpenSSL 项目不以二进制形式分发该工具包。
但是,对于各种操作系统,都有预编译版本的 OpenSSL 工具包可用。
特别是在 Linux 和其他 Unix 操作系统上,通常建议链接分发者或供应商提供的预编译共享库。
我们还在 wiki 的 [Binaries] 页面上维护了一份为各种操作系统(包括 Windows)生成 OpenSSL 二进制文件的第三方列表。
## 用于测试和开发
虽然理论上也可以使用源代码压缩包进行测试和开发,
但拥有包含整个项目历史记录的 Git 仓库本地副本可以让您更深入地了解代码库。
主要的 OpenSSL Git 仓库是私有的。
在 [github.com/openssl/openssl] 有一个公开的 GitHub 镜像,
它会在每次提交时自动从主仓库更新。
可以通过从 GitHub 镜像克隆来获取 Git 仓库的本地副本,使用
```
git clone https://github.com/openssl/openssl.git
```
如果您打算为 OpenSSL 做贡献,无论是修复错误还是贡献新功能,
您都需要复刻 GitHub 镜像并克隆您的公开复刻仓库。
```
git clone https://github.com/yourname/openssl.git
```
这是必要的,因为如今 OpenSSL 的所有开发都是通过 GitHub 拉取请求完成的。
有关更多详细信息,请参阅 [贡献](#contributing)。
# 构建和安装
获取源代码后,请查看 [INSTALL](INSTALL.md) 文件以获取有关构建和安装 OpenSSL 的详细说明。
对于某些平台,安装说明会由特定平台的文档进行补充。
* [类 UNIX 平台说明](NOTES-UNIX.md)
* [Android 平台说明](NOTES-ANDROID.md)
* [Windows 平台说明](NOTES-WINDOWS.md)
* [使用 DJGPP 的 DOS 平台说明](NOTES-DJGPP.md)
* [OpenVMS 平台说明](NOTES-VMS.md)
* [Perl 相关说明](NOTES-PERL.md)
* [Valgrind 相关说明](NOTES-VALGRIND.md)
有关从先前版本升级到 OpenSSL 3.x 的具体说明,
可以在 [ossl-guide-migration(7ossl)] 手册页中找到。
# 文档
## README 文件
在源代码分发的顶层目录中有一些 README.md 文件,
包含有关特定主题的附加信息。
* [关于 OpenSSL QUIC 协议实现的信息](README-QUIC.md)
* [关于 OpenSSL Provider 架构的信息](README-PROVIDERS.md)
* [关于使用 OpenSSL FIPS 验证模块的信息](README-FIPS.md)
## OpenSSL 指南
在 [OpenSSL Guide] 中有一些关于重要 OpenSSL 主题的教程和介绍页面。
## 手册页
主分支和所有当前稳定版本的手册页均可在线查阅。
- [OpenSSL master](https://docs.openssl.org/master/)
- [OpenSSL 3.6](https://docs.openssl.org/3.6/)
- [OpenSSL 3.5](https://docs.openssl.org/3.5/)
- [OpenSSL 3.4](https://docs.openssl.org/3.4/)
- [OpenSSL 3.3](https://docs.openssl.org/3.3/)
- [OpenSSL 3.2](https://docs.openssl.org/3.2/)
- [OpenSSL 3.0](https://docs.openssl.org/3.0/)
## 演示
在 [demos 子文件夹](./demos) 中有许多使用各种 OpenSSL 功能的源代码演示。
## Wiki
有一个 [GitHub Wiki],目前不太活跃。
# 许可证
OpenSSL 根据 Apache 许可证 2.0 版获得许可,这意味着
只要您满足其条件,就可以自由获取并将其用于商业和非商业目的。
有关更多详细信息,请参阅 [LICENSE.txt](LICENSE.txt) 文件。
# 支持
有多种联系方式。正确的渠道取决于您的需求。
有关更多详细信息,请参阅 [SUPPORT](SUPPORT.md) 文件。
# 贡献
如果您有兴趣并愿意为 OpenSSL 项目做出贡献,
请查看 [CONTRIBUTING](CONTRIBUTING.md) 文件。
# 法律事宜
许多国家限制加密技术的使用或出口。如果您
可能受此类限制约束,则在尝试开发或分发加密代码之前应寻求法律建议。
# 版权
版权所有 (c) 1998-2025 The OpenSSL Project 作者
版权所有 (c) 1995-1998 Eric A. Young, Tim J. Hudson
保留所有权利。
标签:DevSecOps, DNS解析, DTLS, ECC, FIPS, HTTPS, libcrypto, libssl, Open Source, OpenSSL, QUIC, RSA, SSL, TLS, 上游代理, 传输层安全, 加密库, 协议实现, 哈希, 安全通信, 客户端加密, 客户端加密, 密码学, 底层库, 开源项目, 手动系统调用, 数字证书, 数据加密, 算法, 网络安全, 自动回退, 解密, 防御工具, 隐私保护