OpenSSL是一个强大的加密工具,它可以在Linux命令行环境下进行多种加密操作。以下是一些基本的OpenSSL命令行使用方法:
生成RSA密钥对:
openssl genrsa -out rsa_key.pem 2048
这条命令会生成一个2048位的RSA私钥,并保存在rsa_key.pem
文件中。
生成自签名证书:
openssl req -new -x509 -key rsa_key.pem -out certificate.crt -days 365
这条命令会使用上面生成的RSA私钥创建一个有效期为365天的自签名证书,并保存在certificate.crt
文件中。
查看证书信息:
openssl x509 -in certificate.crt -text -noout
这条命令会显示certificate.crt
证书的详细信息。
加密文件:
openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.bin
这条命令会使用AES-256-CBC算法加密plaintext.txt
文件,并将加密后的数据保存到encrypted.bin
文件中。系统会提示输入密码。
解密文件:
openssl enc -d -aes-256-cbc -in encrypted.bin -out decrypted.txt
使用相同的密码,这条命令会解密encrypted.bin
文件,并将解密后的数据保存到decrypted.txt
文件中。
生成Diffie-Hellman参数和密钥交换:
openssl dhparam -out dhparams.pem 2048
openssl genpkey -paramfile dhparams.pem -out dh_key.pem
openssl pkey -in dh_key.pem -pubout -out dh_pub.pem
这些命令用于生成Diffie-Hellman参数和密钥交换所需的私钥和公钥。
使用证书进行SSL/TLS连接:
openssl s_client -connect example.com:443 -cert client_cert.pem -key client_key.pem
这条命令会使用指定的客户端证书和私钥连接到example.com
的443端口,并显示SSL/TLS握手过程和服务器证书信息。
创建PKCS#12格式的文件:
openssl pkcs12 -export -out certificate.p12 -inkey rsa_key.pem -in certificate.crt
这条命令会将RSA私钥和证书打包成一个PKCS#12格式的文件certificate.p12
。
从PKCS#12文件中提取证书和私钥:
openssl pkcs12 -in certificate.p12 -out certificate.pem -clcerts -nokeys
openssl pkcs12 -in certificate.p12 -out private_key.pem -nocerts -nodes
第一条命令会从PKCS#12文件中提取证书并保存到certificate.pem
,第二条命令会提取私钥并保存到private_key.pem
。
请注意,使用OpenSSL时,安全性是非常重要的。确保你的密钥和证书文件得到妥善保护,不要泄露给未经授权的用户。此外,上述命令中的密码和文件路径应根据你的实际情况进行替换。