目录

OpenSSL-的主要功能及其示例命令

目录

OpenSSL 的主要功能及其示例命令

OpenSSL 是一个功能强大的开源工具包,用于处理各种与加密相关的任务,包括生成密钥、创建证书、加密解密数据、验证证书等。以下是 OpenSSL 的主要功能及其示例命令。


1.生成密钥

1.1 生成 RSA 私钥

openssl genrsa -out private_key.pem 2048

• 说明:生成一个 2048 位的 RSA 私钥,并保存到 private_key.pem 文件中。

1.2 从私钥提取公钥

openssl rsa -in private_key.pem -pubout -out public_key.pem

• 说明:从私钥文件中提取公钥,并保存到 public_key.pem 文件中。


2.生成自签名证书

2.1 生成自签名证书

openssl req -x509 -new -key private_key.pem -out certificate.pem -days 365

• 说明:使用私钥生成一个自签名的 X.509 证书,有效期为 365 天,保存到 certificate.pem 文件中。

2.2 生成证书签名请求(CSR)

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

• 说明:生成一个证书签名请求(CSR),保存到 csr.pem 文件中。CSR 可以提交给证书颁发机构(CA)以获取签名证书。


3.验证证书

3.1 验证证书

openssl x509 -in certificate.pem -text -noout

• 说明:查看证书的详细信息,包括主题、有效期、颁发者等。

3.2 验证证书链

openssl verify -CAfile ca_certificate.pem certificate.pem

• 说明:验证 certificate.pem 是否由 ca_certificate.pem 颁发。


4.加密和解密

4.1 使用公钥加密数据

openssl rsautl -encrypt -pubin -inkey public_key.pem -in plaintext.txt -out encrypted.bin

• 说明:使用公钥对 plaintext.txt 文件进行加密,生成加密后的二进制文件 encrypted.bin

4.2 使用私钥解密数据

openssl rsautl -decrypt -inkey private_key.pem -in encrypted.bin -out decrypted.txt

• 说明:使用私钥对 encrypted.bin 文件进行解密,生成解密后的文件 decrypted.txt


5.生成和管理证书颁发机构(CA)

5.1 创建 CA 证书

openssl genrsa -out ca_private_key.pem 2048
openssl req -x509 -new -key ca_private_key.pem -out ca_certificate.pem -days 3650

• 说明:生成一个 CA 私钥和自签名的 CA 证书,有效期为 3650 天。

5.2 签署证书请求

openssl x509 -req -in csr.pem -CA ca_certificate.pem -CAkey ca_private_key.pem -CAcreateserial -out signed_certificate.pem -days 365

• 说明:使用 CA 证书和私钥签署一个证书签名请求(CSR),生成签名后的证书 signed_certificate.pem


6.创建和管理密钥库(PKCS#12)

6.1 创建 PKCS#12 密钥库

openssl pkcs12 -export -out keystore.p12 -inkey private_key.pem -in certificate.pem

• 说明:将私钥和证书打包到一个 PKCS#12 密钥库文件 keystore.p12 中。

6.2 从 PKCS#12 密钥库提取私钥和证书

openssl pkcs12 -in keystore.p12 -out extracted_private_key.pem -nocerts
openssl pkcs12 -in keystore.p12 -out extracted_certificate.pem -nokeys

• 说明:从 PKCS#12 密钥库中提取私钥和证书。


7.生成 Diffie-Hellman 参数

7.1 生成 DH 参数

openssl dhparam -out dhparams.pem 2048

• 说明:生成 2048 位的 Diffie-Hellman 参数,保存到 dhparams.pem 文件中。


8.生成和管理椭圆曲线密钥

8.1 生成椭圆曲线密钥

openssl ecparam -genkey -name prime256v1 -out ecdsa_private_key.pem

• 说明:生成一个椭圆曲线密钥,使用 prime256v1 曲线,保存到 ecdsa_private_key.pem 文件中。

8.2 提取椭圆曲线公钥

openssl ec -in ecdsa_private_key.pem -pubout -out ecdsa_public_key.pem

• 说明:从椭圆曲线私钥文件中提取公钥,保存到 ecdsa_public_key.pem 文件中。


9.生成和管理证书吊销列表(CRL)

9.1 创建 CRL

openssl ca -gencrl -out crl.pem -config openssl.cnf

• 说明:生成一个证书吊销列表(CRL),保存到 crl.pem 文件中。需要一个 openssl.cnf 配置文件。


10.其他常用命令

10.1 查看私钥信息

openssl rsa -in private_key.pem -check

• 说明:检查私钥文件的完整性和详细信息。

10.2 查看公钥信息

openssl rsa -pubin -in public_key.pem -check

• 说明:检查公钥文件的完整性和详细信息。

10.3 查看 CSR 信息

openssl req -in csr.pem -text -noout

• 说明:查看证书签名请求(CSR)的详细信息。

10.4 查看密钥库信息

openssl pkcs12 -info -in keystore.p12

• 说明:查看 PKCS#12 密钥库文件的详细信息。


总结

OpenSSL 是一个功能强大的工具,涵盖了从密钥生成、证书管理到数据加密解密的各个方面。通过上述命令,你可以完成大多数与加密相关的任务。如果你有特定的需求或遇到问题,可以参考 OpenSSL 的官方文档或社区支持。