在Linux系统中,OpenSSL是一个强大的加密工具包,它提供了多种命令来处理加密、解密、签名、验证等任务。以下是一些常用的OpenSSL命令:
生成密钥对
openssl genrsa -out private_key.pem 2048
openssl rsa -in private_key.pem -pubout -out public_key.pem
生成证书签名请求(CSR)
openssl req -new -key private_key.pem -out certificate_signing_request.csr
生成自签名证书
openssl req -x509 -new -nodes -key private_key.pem -sha256 -days 365 -out certificate.pem
查看证书信息
openssl x509 -in certificate.pem -text -noout
加密文件
openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.bin
openssl pkeyutl -encrypt -pubin -inkey public_key.pem -in plaintext.txt -out encrypted.bin
解密文件
openssl enc -d -aes-256-cbc -in encrypted.bin -out decrypted.txt
openssl pkeyutl -decrypt -inkey private_key.pem -in encrypted.bin -out decrypted.txt
生成Diffie-Hellman参数
openssl dhparam -out dhparams.pem 2048
生成或转换密钥格式
openssl x509 -in certificate.pem -outform DER -out certificate.der
openssl x509 -in certificate.der -inform DER -outform PEM -out certificate.pem
签名和验证
openssl dgst -sha256 -sign private_key.pem -out signature.bin file.txt
openssl dgst -sha256 -verify public_key.pem -signature signature.bin file.txt
创建和管理PKCS#12文件(PFX)
openssl pkcs12 -export -in certificate.pem -inkey private_key.pem -out keystore.pfx
openssl pkcs12 -in keystore.pfx -out certificate.pem -clcerts -nokeys
查看私钥信息
openssl rsa -in private_key.pem -check
更改私钥密码
openssl rsa -aes256 -in private_key.pem -out new_private_key.pem
这些命令只是OpenSSL功能的一部分。OpenSSL非常强大,可以执行许多其他任务,包括处理SSL/TLS连接、创建和管理证书颁发机构(CA)、以及进行各种加密算法的操作。在使用这些命令时,请确保你了解它们的作用以及如何安全地使用它们。