openssl SSL/TLS加密
OpenSSL
是一个广泛使用的工具和库,用于处理安全协议(如 SSL/TLS)和进行加密操作。它提供了许多命令行功能,支持证书生成、私钥/公钥生成、加密/解密操作、哈希计算等。
下面是常见的 openssl
命令和操作示例:
1. 检查 OpenSSL 版本
查看已安装的 OpenSSL 版本:
openssl version
2. 生成 RSA 密钥对
生成 RSA 私钥和公钥:
-
生成 2048 位的私钥:
openssl genpkey -algorithm RSA -out private.key -aes256
这会生成一个加密的私钥文件
private.key
,并要求输入密码(可以省略-aes256
,只生成未加密的私钥)。 -
从私钥中提取公钥:
openssl rsa -pubout -in private.key -out public.key
3. 生成证书签名请求(CSR)
生成一个 CSR 请求文件,用于申请 SSL 证书:
openssl req -new -key private.key -out request.csr
此命令会提示你输入证书的详细信息,如国家、组织、公共域名等。
4. 自签名 SSL 证书
如果你需要一个自签名证书(通常用于测试环境),可以使用以下命令:
openssl req -x509 -new -key private.key -out certificate.crt -days 365
这将使用你的私钥生成一个有效期为 365 天的自签名证书。
5. 查看证书内容
查看证书文件的详细信息:
openssl x509 -in certificate.crt -text -noout
此命令将输出证书的详细内容,如公钥、有效期、颁发者等。
6. 验证证书
验证证书链是否有效:
openssl verify -CAfile ca-certificates.crt certificate.crt
-CAfile
参数指向一个包含根证书的文件。
7. 从证书中提取公钥
从一个证书中提取公钥:
openssl x509 -pubkey -noout -in certificate.crt > pubkey.pem
8. 证书转换
将证书格式进行转换,例如从 PEM 转换为 DER 格式:
openssl x509 -in certificate.crt -outform DER -out certificate.der
将证书从 PEM 格式转换为 PFX 格式(用于 Windows 环境):
openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.crt
9. 创建加密文件
用公钥加密一个文件:
openssl rsautl -encrypt -inkey public.key -pubin -in plaintext.txt -out encrypted.bin