在Debian系统中,OpenSSL命令行工具是一个强大的加密库和工具集,用于实现SSL/TLS协议以及进行加密和解密操作。以下是一些常用的OpenSSL命令行工具的使用方法:
1. 生成密钥对
- 生成RSA私钥
openssl genrsa -out private.key 2048
- 生成RSA公钥
openssl rsa -in private.key -pubout -out public.key
2. 生成证书签名请求(CSR)
- 生成CSR
openssl req -new -key private.key -out request.csr
在生成CSR时,系统会提示你输入一些信息,如国家、组织名称等。
3. 自签名证书
- 生成自签名证书
openssl req -x509 -new -nodes -key private.key -sha256 -days 365 -out certificate.crt
4. 验证证书
- 验证证书
openssl verify -CAfile ca.crt certificate.crt
5. 加密和解密文件
- 加密文件
openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.bin -pass pass:yourpassword
- 解密文件
openssl enc -d -aes-256-cbc -in encrypted.bin -out decrypted.txt -pass pass:yourpassword
6. 生成和使用Diffie-Hellman密钥交换
- 生成DH参数
openssl dhparam -out dhparams.pem 2048
- 生成DH密钥对
openssl genpkey -paramfile dhparams.pem -out dhkey.pem
7. 生成和使用ECDH密钥交换
- 生成ECDH参数
openssl ecparam -name secp384r1 -genkey -noout -out ecdhkey.pem
- 生成ECDH公钥
openssl pkey -in ecdhkey.pem -pubout -out ecdhpub.pem
8. 生成和使用PKCS#12证书存储
- 将证书和私钥打包成PKCS#12文件
openssl pkcs12 -export -in certificate.crt -inkey private.key -out keystore.p12 -name mycert
- 导入PKCS#12文件到Java密钥库
keytool -importkeystore -srckeystore keystore.p12 -srcstoretype PKCS12 -destkeystore java_keystore.jks -deststoretype JKS
9. 生成和使用OCSP Stapling
- 生成OCSP响应签名
openssl ocsp -issuer issuer.crt -cert certificate.crt -url http://ocsp.example.com -respout response.pem
10. 生成和使用S/MIME签名和加密
- 生成S/MIME签名
openssl smime -sign -in plaintext.txt -out signed.msg -outform PEM -signer private.key -inkey private.key -certfile ca.crt
- 生成S/MIME加密
openssl smime -encrypt -in plaintext.txt -out encrypted.msg -outform PEM -pubin -in public.pem
这些只是OpenSSL命令行工具的一部分功能。OpenSSL提供了非常丰富的命令和选项,可以根据具体需求进行组合使用。建议查阅OpenSSL的官方文档或使用openssl help
命令获取更多详细信息。