在Ubuntu下,OpenSSL是一个非常强大的加密工具库,它提供了许多命令行工具来执行各种加密任务。以下是一些常用的OpenSSL命令:
生成密钥对
生成RSA私钥:openssl genrsa -out private.key 2048
生成RSA公钥:openssl rsa -in private.key -pubout -out public.key
生成证书签名请求(CSR)
openssl req -new -key private.key -out certificate.csr
自签名证书
openssl req -x509 -new -nodes -key private.key -sha256 -days 365 -out certificate.crt
查看证书信息
openssl x509 -in certificate.crt -text -noout
加密文件
对称加密:openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.bin
解密文件:openssl enc -d -aes-256-cbc -in encrypted.bin -out decrypted.txt
生成Diffie-Hellman参数和密钥交换
生成Diffie-Hellman参数:openssl dhparam -out dhparams.pem 2048
生成DH私钥:openssl genpkey -paramfile dhparams.pem -out dhprivatekey.pem
生成DH公钥:openssl pkey -in dhprivatekey.pem -pubout -out dhpublickey.pem
SSL/TLS客户端和服务器测试
测试SSL连接:openssl s_client -connect example.com:443
创建简单的HTTP服务器:openssl s_server -www -port 8443
生成和验证签名
生成签名:openssl dgst -sha256 -sign private.key -out signature.bin document.txt
验证签名:openssl dgst -sha256 -verify public.key -signature signature.bin document.txt
创建和管理PKCS#12文件(PFX)
将证书和私钥打包成PKCS#12文件:openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.crt
从PKCS#12文件中提取证书:openssl pkcs12 -in certificate.pfx -clcerts -nokeys -out certificate.crt
从PKCS#12文件中提取私钥:openssl pkcs12 -in certificate.pfx -nocerts -out private.key
生成随机数据
生成随机字节:openssl rand -out randombytes.bin 32
这些命令只是OpenSSL功能的一小部分。OpenSSL非常强大,可以进行复杂的加密操作、协议测试、证书管理等。在使用这些命令时,请确保你了解它们的作用以及如何安全地使用它们。如果你是初学者,建议从简单的命令开始,并逐步深入了解每个命令的选项和用法。