在Ubuntu系统中,OpenSSL是一个强大的加密工具,它提供了许多命令行选项来执行各种加密任务。以下是一些常用的OpenSSL命令行操作:
生成私钥:
openssl genpkey -algorithm RSA -out private_key.pem -aes256
这将生成一个2048位的RSA私钥,并使用AES-256加密保护。
生成公钥:
openssl rsa -in private_key.pem -pubout -out public_key.pem
使用私钥生成对应的公钥。
生成自签名证书:
openssl req -x509 -new -nodes -key private_key.pem -sha256 -days 365 -out certificate.crt
这将生成一个自签名的X.509证书,有效期为365天。
检查证书信息:
openssl x509 -in certificate.crt -text -noout
显示证书的详细信息。
加密文件:
openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.bin
使用AES-256-CBC算法加密文件。
解密文件:
openssl enc -d -aes-256-cbc -in encrypted.bin -out decrypted.txt
解密之前加密的文件。
创建PKCS#12格式的密钥库:
openssl pkcs12 -export -in certificate.crt -inkey private_key.pem -out keystore.p12 -name mycert
将证书和私钥打包成PKCS#12格式的密钥库。
从PKCS#12密钥库中提取证书和私钥:
openssl pkcs12 -in keystore.p12 -clcerts -nokeys -out certificate.crt
openssl pkcs12 -in keystore.p12 -nocerts -out private_key.pem
分别提取证书和私钥。
生成Diffie-Hellman参数和密钥交换:
openssl dhparam -out dhparams.pem 2048
openssl genpkey -paramfile dhparams.pem -out dhkey.pem
生成Diffie-Hellman参数和密钥交换。
签名数据:
openssl dgst -sha256 -sign private_key.pem -out signature.bin data.txt
使用私钥对数据进行SHA-256签名。
验证签名:
openssl dgst -sha256 -verify public_key.pem -signature signature.bin data.txt
使用公钥验证数据的签名。
这些只是OpenSSL命令行工具的一部分功能。OpenSSL非常强大,可以进行SSL/TLS通信、创建和管理证书、加密和解密数据等多种操作。在使用这些命令时,请确保你了解每个选项的含义,并根据需要调整它们以满足你的安全需求。