Openssl Command-Line Howto.pdf
### OpenSSL命令行手册知识点概述 #### 一、简介与版本查询 - **版本查询**: 使用`openssl version`命令可以查询当前系统安装的OpenSSL版本。 #### 二、命令列表及帮助文档 - **命令列表**: 使用`openssl help`或者`openssl -help`可以获得所有可用命令的列表。 - **具体命令帮助**: 例如,使用`openssl req -help`来获取证书请求(`req`)命令的帮助文档。 #### 三、密码算法列表 - **获取支持的密码算法**: 可以通过`openssl ciphers -v`来查看系统支持的所有密码算法。 #### 四、性能基准测试 - **本地系统性能测试**: - 使用`openssl speed`命令进行CPU加密解密速度测试。 - `openssl speed rsa1024`测试特定长度的RSA算法的性能。 - **远程连接性能测试**: - 可以通过建立SSL/TLS连接并发送数据来测试远程服务器的性能,例如:`openssl s_client -connect server.example.com:443 -cipher AES256`。 #### 五、证书管理 - **自签名证书生成**: - 使用`openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes`来生成一个有效期为一年的自签名证书。 - **证书请求生成**: - 为了提交给CA(如VeriSign)认证,使用`openssl req -new -key key.pem -out csr.pem`生成证书签名请求(CSR)。 - **新证书测试**: - 可以通过`openssl x509 -in cert.pem -text -noout`来验证生成的证书信息。 - **远程证书获取**: - 使用`openssl s_client -connect server.example.com:443 < /dev/null | openssl x509 -outform pem > cert.pem`来获取并保存远程服务器的证书。 - **证书信息提取**: - 通过`openssl x509 -in cert.pem -text -noout`来查看证书详细信息。 - **PKCS#12证书处理**: - 导出证书到PKCS#12格式:`openssl pkcs12 -export -out certificate.p12 -inkey key.pem -in cert.pem` - 导入PKCS#12证书:`openssl pkcs12 -in certificate.p12 -out key-cert.pem -nodes` #### 六、证书验证 - **证书验证**: - 使用`openssl verify -CAfile cacert.pem cert.pem`来验证证书的有效性。 - **信任的CA列表**: - 默认情况下,OpenSSL使用其内置的信任根证书列表。可以通过`openssl x509 -in cacert.pem -text -noout`查看。 - **添加自定义CA证书**: - 通过`openssl x509 -inform PEM -in customcacert.pem -outform DER -out customcacert.der`转换格式,并将转换后的DER格式文件添加到OpenSSL的证书存储中。 #### 七、客户端与服务器配置 - **安全SMTP服务器连接**: - 使用`openssl s_client -starttls smtp -connect mail.example.com:25`来测试连接。 - **其他安全服务连接**: - 类似地,可以使用`openssl s_client -connect server.example.com:port`连接到任何支持SSL/TLS的服务。 - **设置SSL服务器**: - 通过`openssl s_server -accept 443 -cert cert.pem -key key.pem`启动一个简单的SSL服务器。 #### 八、摘要算法 - **MD5或SHA1摘要创建**: - 创建文件的MD5摘要:`openssl dgst -md5 file.txt` - 创建文件的SHA1摘要:`openssl dgst -sha1 file.txt` - **摘要签名与验证**: - 签名:`openssl dgst -sign private_key.pem -out signature.bin file.txt` - 验证:`openssl dgst -verify public_key.pem -signature signature.bin file.txt` #### 九、加密与解密 - **Base64编码**: - 对文本进行Base64编码:`echo -n "plaintext" | openssl base64` - **简单文件加密**: - 使用对称加密算法加密文件:`openssl enc -aes-256-cbc -in file.txt -out file.enc` #### 十、密钥生成 - **RSA密钥生成**: - 生成2048位的RSA私钥:`openssl genrsa -out key.pem 2048` - 从私钥导出公钥:`openssl rsa -in key.pem -pubout -out pub.pem` - **DSA密钥生成**: - 生成1024位的DSA私钥:`openssl dsaparam -out dsa.params 1024 && openssl gendsa -out dsa.key dsa.params` - **移除密钥口令**: - 移除密钥口令:`openssl rsa -in key.pem -out key_nopass.pem -passin pass:yourpass` #### 十一、密码哈希 - **生成密码哈希**: - 生成crypt风格的密码哈希:`openssl passwd -crypt password` - 生成shadow风格的密码哈希:`openssl passwd -1 -salt 'salt' password` #### 十二、随机数据生成 - **生成随机数据**: - 生成一定数量的随机比特:`openssl rand -hex 16` #### 十三、S/MIME操作 - **验证S/MIME签名消息**: - 使用`openssl smime -verify -in signed_message.eml -noverify`来验证一个已签名的S/MIME邮件。 - **加密S/MIME消息**: - 加密邮件:`openssl smime -encrypt -in message.txt -out encrypted.eml -binary -des3 recipient_cert.pem` - **签名S/MIME消息**: - 签名邮件:`openssl smime -sign -in message.txt -out signed_message.eml -signer signer_cert.pem -inkey signer_key.pem` #### 十四、进一步阅读与参考资料 - 本指南仅为OpenSSL命令行工具的基本用法概览,更多详细信息请参阅官方文档以及相关书籍和技术文章。 - 如果您在使用过程中遇到问题,欢迎反馈意见至`heinlein@madboa.com`,以便持续改进文档内容。
剩余19页未读,继续阅读
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Matlab工具箱使用与编程基础教程
- 1212313131313 (1).zip
- 新录音 7(1).m4a
- Lawrence C. Evans Partial Differential Equations.djvu
- CFA知识点梳理系列:CFA Level II, Reading 4 Big Data Projects
- 专业问题 · 语雀.mhtml
- 基于Vue+TP6的B2B2C多场景电商商城设计源码
- 基于小程序的研知识题库小程序源代码(java+小程序+mysql).zip
- 基于小程序的微信小程序的点餐系统源代码(java+小程序+mysql).zip
- 基于小程序的宿舍管理小程序源代码(java+小程序+mysql).zip