OpenSSL 是一个强大的开源工具集,提供了 TLS/SSL 加密、数字证书管理和密码学算法等功能。以下是 OpenSSL 的详细教程,包括安装、基本命令、证书管理、加密解密、SSL/TLS 相关操作等。

1. OpenSSL 安装

Linux (Ubuntu/Debian)

sudo apt update

sudo apt install openssl

Linux (CentOS/RedHat)

sudo yum install openssl

Mac (Homebrew)

brew install openssl

Windows

可在 OpenSSL 官方网站 下载 Windows 版。

2. 基本命令

查看 OpenSSL 版本

openssl version -a

生成随机数

openssl rand -hex 16

3. 证书管理

3.1 生成私钥

openssl genpkey -algorithm RSA -out private_key.pem -aes256

-algorithm RSA:指定 RSA 算法

-out private_key.pem:输出文件

-aes256:使用 AES-256 加密私钥

3.2 生成 CSR (证书签名请求)

openssl req -new -key private_key.pem -out request.csr

3.3 自签名 SSL 证书

openssl req -x509 -new -nodes -key private_key.pem -sha256 -days 365 -out certificate.pem

3.4 生成 CA 证书

openssl req -new -x509 -key private_key.pem -out ca_cert.pem -days 365

3.5 签发证书

openssl x509 -req -in request.csr -CA ca_cert.pem -CAkey private_key.pem -CAcreateserial -out server_cert.pem -days 365 -sha256

4. SSL/TLS 连接测试

4.1 检查网站 SSL 证书

openssl s_client -connect www.example.com:443

4.2 测试 TLS 版本

openssl s_client -connect www.example.com:443 -tls1_2

5. 加密与解密

5.1 使用 AES 加密文件

openssl enc -aes-256-cbc -salt -in input.txt -out encrypted.bin -k password

5.2 使用 AES 解密

openssl enc -aes-256-cbc -d -in encrypted.bin -out decrypted.txt -k password

6. 证书格式转换

6.1 PEM 转 PKCS12 (PFX)

openssl pkcs12 -export -out certificate.pfx -inkey private_key.pem -in certificate.pem -certfile ca_cert.pem

6.2 PFX 转 PEM

openssl pkcs12 -in certificate.pfx -out certificate.pem -nodes

7. 证书校验

7.1 检查私钥

openssl rsa -in private_key.pem -check

7.2 检查证书

openssl x509 -in certificate.pem -text -noout

7.3 检查证书链

openssl verify -CAfile ca_cert.pem certificate.pem