✨博客主页 | ||
---|---|---|
何曾参静谧的博客(✅关注、👍点赞、⭐收藏、🎠转发) | ||
📚全部专栏(专栏会有变化,以最新发布为准) | ||
「Win」Windows程序设计 | 「IDE」集成开发环境 | 「定制」定制开发集合 |
「C/C++」C/C++程序设计 | 「DSA」数据结构与算法 | 「UG/NX」NX二次开发 |
「QT」QT5程序设计 | 「File」数据文件格式 | 「UG/NX」BlockUI集合 |
「Py」Python程序设计 | 「Math」探秘数学世界 | 「PK」Parasolid函数说明 |
「Web」前后端全栈开发 | 「En」英语从零到一 | 👍占位符 |
「AI」人工智能大模型 | 「书」书籍阅读笔记 |
目录
OpenSSL深度解析:从基础使用到安全实践
一、OpenSSL概述
OpenSSL是业界领先的开源密码学工具包,提供了完整的SSL/TLS协议实现以及丰富的加密算法库。作为互联网安全的基石,它被广泛应用于Web服务器、VPN、电子邮件系统等各种需要安全通信的场景。
1.1 OpenSSL的核心组件
- libcrypto:基础加密库,提供对称/非对称加密、哈希、数字签名等算法
- libssl:SSL/TLS协议实现库
- 命令行工具:用于证书管理、加密操作等的实用程序
1.2 主要功能特性
功能类别 | 支持算法/协议 |
---|---|
对称加密 | AES, DES, 3DES, ChaCha20等 |
非对称加密 | RSA, DSA, ECDSA, Ed25519等 |
哈希算法 | SHA-1, SHA-2, SHA-3, MD5等 |
密钥交换 | DH, ECDH, X25519等 |
证书格式 | X.509, PKCS#7, PKCS#12等 |
SSL/TLS版本 | SSLv3(已弃用), TLS1.0-1.3 |
二、OpenSSL核心功能详解
2.1 证书管理
生成自签名证书
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
参数说明:
-x509
:生成自签名证书-newkey rsa:4096
:创建4096位RSA密钥-days 365
:有效期1年
证书链验证
openssl verify -CAfile root-ca.pem -untrusted intermediate.pem cert.pem
2.2 加密解密操作
AES-256-CBC加密文件
openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.enc -pass pass:mysecret
解密文件
openssl enc -d -aes-256-cbc -in encrypted.enc -out decrypted.txt -pass pass:mysecret
2.3 密钥生成与管理
生成ECDSA密钥
openssl ecparam -genkey -name secp384r1 -out ec-key.pem
转换密钥格式
openssl pkcs8 -topk8 -in key.pem -out key-pkcs8.pem -nocrypt
三、OpenSSL编程接口
3.1 基础加密示例(C语言)
#