什么是 OpenSSL?
OpenSSL 是一个强大的、开源的加密工具包,广泛用于实现 SSL/TLS 协议,为网络通信提供安全保障。 它包含三个主要部分:
- libssl:实现 SSL/TLS 协议的库
- libcrypto:通用加密库,支持多种加密算法(如 AES、RSA、SHA)
- openssl 命令行工具:用于生成密钥、证书、测试连接等操作
常见用途
- 生成私钥和公钥
- 创建自签名证书或 CSR(证书签名请求)
- 加密/解密文件
- 验证 HTTPS 服务器证书
- 测试 TLS 连接安全性
- 转换证书格式(PEM ↔ DER ↔ PFX)
常用命令示例
1. 生成 RSA 私钥
openssl genrsa -out private.key 2048
2. 生成自签名证书
openssl req -new -x509 -key private.key -out cert.crt -days 365
3. 查看证书内容
openssl x509 -in cert.crt -text -noout
4. 测试 HTTPS 连接
openssl s_client -connect example.com:443
5. 加密文件(使用 AES-256)
openssl enc -aes-256-cbc -salt -in file.txt -out file.enc
安全建议
- 始终使用最新版本的 OpenSSL,避免已知漏洞(如 Heartbleed)
- 私钥必须严格保密,设置合适的文件权限(如
chmod 600 private.key) - 生产环境应使用由可信 CA 签发的证书,而非自签名证书
- 定期轮换密钥和证书
资源推荐
想深入学习?可参考以下官方资源:
- OpenSSL 官方网站
- OpenSSL 命令手册
- RFC 5280(X.509 证书标准)