Skip to content

OpenSSL 核心功能与应用场景

一、核心功能

1. 加密与解密

  • 对称加密:AES、SM4(文件/数据库加密)
  • 非对称加密:RSA、ECC、SM2(密钥交换/数字信封)
  • 混合加密:RSA+AES(HTTPS数据传输)

2. 证书管理

  • 生成密钥对(RSA/ECC/SM2)
  • 签发/解析X.509证书(自签名/CA签发)
  • 证书格式转换(PEM ↔ DER)

3. SSL/TLS协议

  • 实现HTTPS安全通信(TLS 1.3)
  • 双向认证(mTLS)
  • 协议漏洞检测(Heartbleed等)

4. 密码学运算

  • 哈希计算(SHA-256/SM3)
  • 数字签名(RSA/ECDSA/SM2)
  • 随机数生成(加密级随机值)

二、典型应用场景

1. Web服务器安全

  • 为Nginx/Apache部署HTTPS证书
  • 配置HSTS强制加密通信
  • 实现OCSP Stapling加速证书验证

2. API与微服务

  • 服务间mTLS双向认证
  • 加密敏感API请求数据

微服务mTLS配置示例

bash
openssl s_server -CAfile ca.crt -cert service.pem -key service.key -Verify 1

3. 代码/文档完整性

  • 软件包签名(RPM/Debian)
  • PDF数字签名验证
  • Git commit签名

4. 物联网安全

  • 设备身份证书(轻量级ECC证书)
  • 固件加密更新

三、常用命令速查

功能命令示例
生成RSA密钥openssl genpkey -algorithm RSA -out key.pem
AES加密文件openssl enc -aes-256-cbc -salt -in data.txt -out data.enc
查看证书信息openssl x509 -in cert.pem -text -noout
测试HTTPS连接openssl s_client -connect example.com:443 -tlsextdebug
生成CSRopenssl req -new -key key.pem -out request.csr

四、生成SSL证书(测试版,浏览器会弹不安全警告)

生成私钥和CSR(证书签名请求)

bash
# 创建存放证书的目录
sudo mkdir -p /etc/nginx/ssl

# 生成私钥
sudo openssl genrsa -out /etc/nginx/ssl/example.com.key 2048

# 生成CSR(证书签名请求)
sudo openssl req -new -key /etc/nginx/ssl/example.com.key -out /etc/nginx/ssl/example.com.csr

运行最后一个命令时,您需要提供以下信息:

  • Country Name (国家代码): 例如CN
  • State (省/州): 例如Guangdong
  • Locality (城市): 例如Shenzhen
  • Organization (组织): 您的公司名称
  • Organizational Unit (部门): 您的部门
  • Common Name (域名): 重要 填写您的网站域名 example.com
  • Email Address: 您的邮箱
  • 密码和选项挑战: 可以留空

自签名证书(测试环境)

bash
sudo openssl x509 -req -days 365 -in /etc/nginx/ssl/example.com.csr -signkey /etc/nginx/ssl/example.com.key -out /etc/nginx/ssl/example.com.crt

生产环境需要购买商用证书,或者使用Let'Encrypt生成i


核心价值:OpenSSL为网络安全提供基础密码学工具链,覆盖从数据加密到身份认证的全链路安全需求。