OpenSSL是一个功能强大的开源工具,用于加密、解密和验证数据,以及创建和管理数字证书。本教程将先容一些基本的OpenSSL命令和常用参数,以便您能够开始利用它进行加密通信和数字证书管理。
安装OpenSSL在Windows和Linux上可以通过不同的办法进行。下面是两种常见的方法:
前往OpenSSL官方网站(https://www.openssl.org/)下载适用于Windows的预编译二进制文件。

解压下载的文件并将其添加到系统的环境变量中,以便在命令行中直策应用OpenSSL命令。
利用包管理器:如果您利用的是包管理器(如Chocolatey),您可以在命令行中运行相应的命令来安装OpenSSL。
例如,在Chocolatey中,您可以运行choco install openssl来安装OpenSSL。
Linux:利用包管理器:在大多数Linux发行版中,您可以利用默认的包管理器来安装OpenSSL。
对付Debian/Ubuntu,您可以运行sudo apt-get install openssl。
对付Red Hat/CentOS,您可以运行sudo yum install openssl或sudo dnf install openssl。
从源代码编译安装:您也可以从OpenSSL官方网站下载源代码并手动编译安装。
下载源代码包并解压缩,然后在终端中进入解压后的目录。
运行以下命令来编译和安装OpenSSL:
安装完成后,在命令行中输入openssl version命令,如果显示了OpenSSL的版本信息,则表示安装成功。
1. 天生RSA密钥对
利用OpenSSL天生RSA密钥对是一个常见的任务,您可以利用以下命令天生一个私钥和对应的公钥:
openssl genrsa -out private.key 2048 openssl rsa -in private.key -pubout -out public.key
这将天生一个2048位的RSA私钥,并将其保存在private.key文件中。然后,它会从私钥中提取公钥,并将其保存在public.key文件中。
2. 创建自署名证书您可以利用OpenSSL创建自署名的数字证书,用于测试和开拓目的。以下是天生自署名证书的命令:
openssl req -x509 -newkey rsa:2048 -keyout private.key -out certificate.crt -days 365
这将天生一个有效期为365天的自署名证书,并将私钥和证书保存在private.key和certificate.crt文件中。
3. 加密和解密文件OpenSSL还供应了加密和解密文件的功能,您可以利用以下命令对文件进行加密和解密:
openssl enc -aes-256-cbc -salt -in file.txt -out encrypted.txt openssl enc -d -aes-256-cbc -in encrypted.txt -out .txt
这些命令将利用AES-256-CBC算法对file.txt进行加密,并将结果保存在encrypted.txt文件中。然后,它将对encrypted.txt文件进行解密,并将结果保存在decrypted.txt文件中。
4. 查看证书信息您可以利用OpenSSL查看证书的详细信息,包括颁发者、有效期等。以下是查看证书信息的命令:
openssl x509 -in certificate.crt -text -noout
这将打印出certificate.crt文件中证书的详细信息。
5. 天生CSR(证书署名要求)如果您须要向证书颁发机构(CA)申请署名证书,您须要天生一个CSR文件。以下是天生CSR文件的命令:
openssl req -new -key private.key -out csr.pem
这将天生一个CSR文件,并将其保存在csr.pem中。
以上便是OpenSSL的一些常用命令和参数。这些命令可以帮助您天生密钥对、创建自署名证书、加密解密文件以及管理数字证书。利用OpenSSL可以实现安全的通信和数据保护。
其它的如下:
子命令
解释
示例
cms
创建和解析CMS
openssl cms -encrypt -in file.txt -out file.cms
crl2pkcs7
将CRL(证书吊销列表)转换为PKCS#7格式
openssl crl2pkcs7 -nocrl -certfile certificate.pem -out certificate.p7b
dgst
打算择要
openssl dgst -sha256 file.txt
dhparam
天生Diffie-Hellman参数
openssl dhparam -out dhparam.pem 2048
dsaparam
天生DSA参数
openssl dsaparam -out dsaparam.pem 2048
ecparam
天生椭圆曲线参数
openssl ecparam -name prime256v1 -out ecparam.pem
list
列出可用的算法和引擎
openssl list -digest-commands
ocsp
处理OCSP要乞降相应
openssl ocsp -index index.txt -rsigner responder.crt -CA ca-chain.crt -url http://ocsp.example.com
passwd
变动私钥文件的密码
openssl passwd -des3 -out newkey.pem oldkey.pem
rand
天生随机数
openssl rand -out random.bin 1024
req
创建和处理证书要求
openssl req -new -key key.pem -out req.pem
rsa
RSA密钥和操作
openssl rsa -pubout -in key.pem
s_client
建立SSL/TLS客户端连接
openssl s_client -connect example.com:443
s_server
建立SSL/TLS做事器连接
openssl s_server -cert server.crt -key server.key
s_time
丈量SSL/TLS连接的性能
openssl s_time -connect example.com:443
sess_id
显示SSL/TLS会话ID
openssl sess_id -in session.pem
speed
测试加密算法的速率
openssl speed aes-256-cbc
storeutl
对存储文件进行操作
openssl storeutl -store /path/to/store -list
ts
处理韶光戳要乞降相应
openssl ts -query -data data.txt -cert -out request.tsq -sha512
verify
验证署名
openssl verify -CAfile ca-chain.pem cert.pem
version
显示OpenSSL版本信息
openssl version
x509
证书操作
openssl x509 -in cert.pem -text -noout
以上便是OpenSSL的大部分子命令。感谢关注和分享。