温馨提示×

Linux openssl怎么用

小樊
33
2026-07-01 15:21:05
栏目: 云计算

openssl 是 Linux 下非常常用的 加密、证书、密钥、TLS/SSL 相关工具。下面按常见使用场景给你一个实用速查手册(偏实战,不堆概念)。


一、查看 openssl 版本

openssl version

openssl version -a

二、生成密钥(最常用)

1️⃣ 生成 RSA 私钥

openssl genrsa -out rsa.key 2048

✅ 生成 2048 位 RSA 私钥

查看私钥内容:

openssl rsa -in rsa.key -text -noout

2️⃣ 生成带密码保护的私钥

openssl genrsa -aes256 -out rsa.key 2048

三、生成证书(自签名,最常用)

1️⃣ 生成私钥 + 自签名证书(一步)

openssl req -x509 -newkey rsa:2048 \
  -keyout key.pem -out cert.pem \
  -days 365 -nodes

参数说明:

  • -x509:生成证书而不是请求
  • -newkey:生成新密钥
  • -nodes:不加密私钥
  • -days:有效期
  • 会交互式问:
    • Country
    • Common Name(重要,填域名或 IP)

2️⃣ 查看证书内容

openssl x509 -in cert.pem -text -noout

四、CSR(证书签名请求)

1️⃣ 从已有私钥生成 CSR

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

2️⃣ 查看 CSR

openssl req -in req.csr -text -noout

五、用 CA 签名(进阶)

1️⃣ 生成 CA 私钥和证书

openssl genrsa -out ca.key 2048
openssl req -x509 -new -key ca.key -out ca.crt -days 3650

2️⃣ 使用 CA 签名 CSR

openssl x509 -req -in req.csr \
  -CA ca.crt -CAkey ca.key -CAcreateserial \
  -out server.crt -days 365

六、加解密文件(对称加密)

1️⃣ 加密文件

openssl enc -aes-256-cbc -salt -in file.txt -out file.enc

2️⃣ 解密

openssl enc -aes-256-cbc -d -in file.enc -out file.txt

七、计算文件哈希

openssl dgst -sha256 file.txt

支持:

  • sha1
  • sha256 ✅
  • sha512
  • md5 ❌(不推荐)

八、测试 HTTPS / TLS(抓包必备)

1️⃣ 连接 HTTPS 服务

openssl s_client -connect www.baidu.com:443

2️⃣ 显示证书

openssl s_client -connect www.baidu.com:443 -showcerts

3️⃣ 指定 SNI(虚拟主机)

openssl s_client -connect example.com:443 -servername example.com

九、生成随机数 / 密码

openssl rand -base64 16
openssl rand -hex 16

十、常见错误 & 提示

⚠️ 证书一定要和域名 / IP 匹配
⚠️ 浏览器不认自签名证书(除非手动信任)
⚠️ HTTPS 推荐直接用:

  • Let’s Encrypt
  • certbot

十一、常见组合速查

用途 命令
私钥 openssl genrsa
证书 openssl req -x509
CSR openssl req -new
查看证书 openssl x509 -text
测试 HTTPS openssl s_client
哈希 openssl dgst

如果你是想做:

  • HTTPS 网站证书
  • 内网自签名证书
  • TLS 抓包 / 调试
  • 加解密数据
  • 和 Nginx / Docker / Kubernetes 搭配

可以直接告诉我你的具体场景,我给你最合适的一条命令

0