OpenSSL是一个强大的开源工具,用于实现SSL和TLS协议,以及相关的加密算法。在Linux下,OpenSSL命令行工具提供了丰富的功能,以下是一些常用的技巧和命令:
openssl genrsa -out rsa_key.pem 2048
openssl ecparam -genkey -name secp384r1 -out ecdsa_key.pem
openssl req -new -key rsa_key.pem -out csr.pem
在生成过程中,系统会提示你输入一些信息,如国家、组织名称等。openssl x509 -req -days 365 -in csr.pem -signkey rsa_key.pem -out certificate.pem
openssl x509 -in certificate.pem -text -noout
openssl x509 -in certificate.pem -outform DER -out certificate.der
openssl x509 -in certificate.der -inform DER -out certificate.pem
openssl dhparam -out dhparam.pem 2048
openssl genpkey -paramfile dhparam.pem -out dh_key.pem
openssl rand -out random_number.bin 32
openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.bin
openssl enc -d -aes-256-cbc -in encrypted.bin -out decrypted.txt
openssl dgst -sha256 -sign private_key.pem -out signature.bin file.txt
openssl dgst -sha256 -verify public_key.pem -signature signature.bin file.txt
openssl base64url -in payload.json | openssl enc -base64 -A | openssl dgst -sha256 -hmac secret_key -binary | openssl base64url -A
openssl verify -CAfile ca_certificate.pem intermediate_certificate.pem end_entity_certificate.pem
openssl s_client -connect example.com:443 -servername example.com
echo -n "POST /path HTTP/1.1\r\nHost: example.com\r\nContent-Length: 11\r\n\r\nrequest body" | openssl s_client -connect example.com:443 -servername example.com
这些技巧和命令可以帮助你在Linux环境下更有效地使用OpenSSL进行各种加密和安全相关的操作。根据具体需求,你可以组合和扩展这些命令来实现更复杂的功能。