温馨提示×

怎么学习linux openssl

小樊
37
2026-09-19 21:03:59
栏目: 云计算

学习 Linux 下 OpenSSL 可以分为「概念理解 → 命令实践 → 编程使用 → 安全进阶」几个阶段。下面给你一个比较系统的学习路线。


一、先搞清楚 OpenSSL 是什么

OpenSSL 主要做三件事:

  1. 加密/解密工具(命令行)
  2. 证书和密钥管理(CA、CSR、X.509)
  3. 加密开发库(libssl / libcrypto,C/C++/其他语言调用)

在 Linux 上通常先用命令行入门,再学编程接口


二、环境准备

1. 安装 OpenSSL

# Debian / Ubuntu
sudo apt update
sudo apt install openssl libssl-dev

# CentOS / Rocky / Alma
sudo yum install openssl openssl-devel

查看版本:

openssl version

三、命令行基础(最重要)

1. 对称加密(AES)

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

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

2. 哈希与摘要

openssl dgst -sha256 file.txt

3. 生成密钥

# RSA 私钥
openssl genrsa -out rsa.key 2048

# 查看私钥
openssl rsa -in rsa.key -text -noout

4. 生成证书(自签)

# 生成私钥 + 自签证书
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365

5. 证书请求(CSR)

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

6. 查看证书

openssl x509 -in cert.pem -text -noout

四、理解核心概念(必须懂)

  • 对称加密 vs 非对称加密
  • 公钥 / 私钥 / 证书
  • CA(证书颁发机构)
  • X.509 证书结构
  • TLS 握手过程

推荐阅读:

  • 《TLS 完全指南》
  • RFC 5246(TLS 1.2,入门可读)

五、用 OpenSSL 做实验

1. 本地 HTTPS 服务

openssl s_server -www -cert cert.pem -key key.pem

浏览器访问:

https://localhost:4433

2. 测试连接

openssl s_client -connect example.com:443

六、编程使用(进阶)

如果你写代码:

C 语言(libssl)

  • SSL_CTX
  • SSL_connect
  • SSL_read / SSL_write

示例方向:

  • TCP + TLS 客户端
  • HTTPS 请求实现

其他语言

  • Python:ssl, cryptography
  • Go:crypto/tls
  • Java:javax.net.ssl

七、学习资源推荐

文档

  • 官方:https://www.openssl.org/docs/
  • man openssl

  • 《OpenSSL Cookbook》(免费)
  • 《Network Security with OpenSSL》

实战项目

  • 搭一个私有 CA
  • 用 OpenSSL 签子证书
  • 实现 HTTPS 服务器

八、学习建议(很重要)

  1. 先会用命令,再学原理
  2. 不要死记参数,理解“为什么”
  3. 多动手:加密 → 解密 → 签名 → 验证
  4. 关注安全:别用 MD5、RSA 小密钥

如果你愿意,我可以:

  • 给你一份 OpenSSL 命令速查表
  • 带你 从零搭一个 CA
  • 教你 用 C/Python 写 TLS 程序

你更想学哪一块?

0