Linux OpenSSL 命令速查与实用示例
一 基础与环境
openssl version -aopenssl list -cipher-commands、openssl list -message-digest-commands、openssl list -public-key-algorithmssudo apt update && sudo apt install opensslsudo yum install opensslsudo dnf install opensslsudo pacman -S openssl/usr/local/ssl/openssl.cnf(源码安装时常见)ENGINESDIR、MODULESDIR(可用 version -a 查看)二 密钥与证书管理
openssl genrsa -out rsa_key.pem 2048openssl genpkey -algorithm RSA -out private.key [-aes256]openssl rsa -in private.key -pubout -out public.keyopenssl ecparam -name secp256k1 -genkey -noout -out ecc_key.pemopenssl ec -in ecc_key.pem -pubout -out ecc_pub.pemopenssl req -new -sha256 -key private.key -out server.csropenssl req -x509 -newkey rsa:2048 -nodes -keyout server.key -out server.crt -days 3650openssl x509 -req -in server.csr -signkey server.key -out server.crt -days 365openssl x509 -in server.crt -text -nooutopenssl verify -CAfile ca_cert.pem server.crtopenssl x509 -in server.crt -outform DER -out server.der;反向 ... -inform DER -in server.der ...openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crtopenssl pkcs12 -in server.p12 -out cert.pem -clcerts -nokeys;仅私钥 openssl pkcs12 -in server.p12 -out key.pem -nocerts -nodesopenssl dhparam -out dhparams.pem 2048三 对称加密与文件处理
openssl enc -aes-256-cbc -salt -in plain.txt -out cipher.bin -pass pass:YourPassopenssl enc -d -aes-256-cbc -in cipher.bin -out plain.txt -pass pass:YourPassopenssl enc -list -cipher-algorithmsopenssl dgst -sha256 file.txtopenssl dgst -sha256 -hmac "secret" message.txtopenssl rand -base64 32openssl rand -out rand.bin 1024openssl dgst -sha256 -sign private.key -out sig.bin message.txtopenssl dgst -sha256 -verify public.key -signature sig.bin message.txtopenssl dgst -sha256 -verify <(openssl x509 -in server.crt -pubkey -noout) -signature sig.bin message.txt四 TLS SSL 测试与调试
openssl s_client -connect example.com:443openssl s_client -connect example.com:443 -cert client.crt -key client.key-connect host:port -servername host -quietopenssl s_server -cert server.crt -key server.key -wwwopenssl s_client -connect example.com:443 -showcertsopenssl verify -CAfile ca_cert.pem server.crt五 实用组合与最佳实践
openssl genpkey -algorithm RSA -out server.key -aes256openssl req -x509 -newkey rsa:2048 -nodes -keyout server.key -out server.crt -days 365 -subj "/CN=localhost"openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crtopenssl pkcs12 -in server.p12 -out server.crt -clcerts -nokeysopenssl pkcs12 -in server.p12 -out server.key -nocerts -nodesopenssl dhparam -out dhparams.pem 2048-aes256),权限设为 600version -a 确认环境