openssl 详解

OpenSSL 提供了广泛的功能来处理加密任务,从密钥管理证书生成加密数据。掌握 OpenSSL 的使用,可以在安全和加密方面的工作中更有效地处理各种任务。

1. 查看 OpenSSL 版本

  • 显示当前安装的 OpenSSL 版本
bash 复制代码
openssl version
# OpenSSL 1.1.1  11 Sep 2018

2. 生成私钥

  • 生成 2048 位的 RSA 私钥,并将其保存到 private.key 文件中
bash 复制代码
openssl genpkey -algorithm RSA -out private.key -pkeyopt rsa_keygen_bits:2048
  • 旧版本的 OpenSSL 使用 genrsa 生成私钥
bash 复制代码
openssl genrsa -out private.key 2048

3. 生成公钥

  • 从私钥中提取公钥
bash 复制代码
openssl rsa -in private.key -pubout -out public.key

4. 创建 CSR(证书签名请求)

  • 创建一个 CSR 文件,该文件通常用于申请 SSL 证书。这个过程需要一个私钥文件
  • 将会被提示输入信息,如国家、组织名等。也可以使用-subj 参数来跳过这些提示
bash 复制代码
openssl req -new -key private.key -out request.csr

5. 自签名证书

  • 使用私钥和 CSR 创建一个自签名的证书。这个证书的有效期为 365 天
bash 复制代码
openssl x509 -req -days 365 -in request.csr -signkey private.key -out certificate.crt

6. 查看证书内容

  • 查看证书文件的详细信息
bash 复制代码
openssl x509 -in certificate.crt -text -noout
  • 显示私钥的详细信息
bash 复制代码
openssl rsa -in private.key -text -noout

7. 转换证书格式

  • PEM 格式转换为 DER 格式
bash 复制代码
openssl x509 -in certificate.crt -outform der -out certificate.der
  • DER 格式转换为 PEM 格式
bash 复制代码
openssl x509 -in certificate.der -inform der -out certificate.crt
  • private.key 转换为PEM格式的 private.pem
bash 复制代码
openssl rsa -in private.key -out private.pem

8. 检查私钥内容

  • 显示私钥文件的详细信息
bash 复制代码
openssl rsa -in private.key -check

9. 检查 CSR 内容

  • 查看 CSR 文件的详细信息
bash 复制代码
openssl req -in request.csr -text -noout

10. 使用 OpenSSL 进行文件加密/解密

  • 加密文件 : 使用对称加密(AES-256-CBC)加密文件 file.txt
bash 复制代码
openssl enc -aes-256-cbc -salt -in file.txt -out file.enc
  • 解密文件 : 解密文件 file.enc
bash 复制代码
openssl enc -aes-256-cbc -d -in file.enc -out file.txt

11. 创建 PKCS#12 文件

  • 将证书和私钥组合成一个 PKCS#12 文件
bash 复制代码
openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.crt -certfile ca.crt

12. SSL/TLS 测试

  • 使用 OpenSSL 连接到远程服务器以测试 SSL/TLS 连接
bash 复制代码
openssl s_client -connect www.example.com:443
  • 显示远程服务器的证书
bash 复制代码
openssl s_client -connect www.example.com:443 -showcerts

13. 验证证书链

  • 使用根证书验证服务器证书
bash 复制代码
openssl verify -CAfile ca.crt certificate.crt

14. 生成 DH 参数

  • 生成 Diffie-Hellman 参数,这些参数用于加强密钥交换过程的安全性
bash 复制代码
openssl dhparam -out dhparam.pem 2048

15. 生成随机数

  • 生成 32 字节的随机数(例如,用于密钥或 IV)
bash 复制代码
openssl rand -hex 32

16. 数字签名和验证

  • 创建一个SHA256哈希的数字签名
bash 复制代码
openssl dgst -sha256 -sign private.key -out signature.sig data.txt
  • 验证 data.txt 文件的数字签名
bash 复制代码
openssl dgst -sha256 -verify public.key -signature signature.sig data.txt
相关推荐
大树8815 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠16 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质16 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush416 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行52016 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz16 小时前
Maven依赖冲突
java·服务器·maven
DaLi Yao17 小时前
【无标题】
人工智能·安全
Inhand陈工17 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn8617 小时前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
网络研究院17 小时前
2026年网络安全
网络·安全·法律·法规·趋势·发展