Debian系统中OpenSSL命令行工具使用教程
导读:Debian 上 OpenSSL 命令行工具使用教程 一 安装与版本检查 更新索引并安装: sudo apt update sudo apt install openssl 检查版本: openssl version 以上步骤...
Debian 上 OpenSSL 命令行工具使用教程
一 安装与版本检查
- 更新索引并安装:
- sudo apt update
- sudo apt install openssl
- 检查版本:
- openssl version
- 以上步骤适用于 Debian 系统,安装后即可在终端使用 OpenSSL 完成密钥、证书与加解密等常见任务。
二 密钥与证书常用操作
- 生成 RSA 私钥(2048 位):
- openssl genrsa -out private_key.pem 2048
- 从私钥提取 公钥:
- openssl rsa -in private_key.pem -pubout -out public_key.pem
- 生成 CSR(证书签名请求):
- openssl req -new -key private_key.pem -out request.csr
- 生成 自签名证书(X.509,有效期 365 天):
- 方式一:openssl req -x509 -new -nodes -key private_key.pem -sha256 -days 365 -out certificate.crt
- 方式二:openssl x509 -req -days 365 -in request.csr -signkey private_key.pem -out certificate.crt
- 查看证书信息:
- openssl x509 -in certificate.crt -text -noout
- 证书格式转换:
- PEM → DER:openssl x509 -in certificate.crt -outform DER -out certificate.der
- DER → PEM:openssl x509 -in certificate.der -inform DER -out certificate.crt
- 证书链验证(使用 CA 证书验证终端证书):
- openssl verify -CAfile ca.crt certificate.crt。
三 文件加解密与密钥交换
- 对称加密(AES-256-CBC,带盐):
- 加密:openssl enc -aes-256-cbc -salt -in plain.txt -out enc.bin
- 解密:openssl enc -d -aes-256-cbc -in enc.bin -out dec.txt
- 非对称加密(RSA,推荐用 pkeyutl):
- 生成密钥:openssl genpkey -algorithm RSA -out rsa_key.pem -pkeyopt rsa_keygen_bits:2048
- 提取公钥:openssl rsa -pubout -in rsa_key.pem -out rsa_pubkey.pem
- 公钥加密:openssl pkeyutl -encrypt -pubin -inkey rsa_pubkey.pem -in plain.txt -out enc.bin
- 私钥解密:openssl pkeyutl -decrypt -inkey rsa_key.pem -in enc.bin -out dec.txt
- 兼容旧命令(rsautl,部分场景仍可用):
- 加密:openssl rsautl -encrypt -pubin -inkey rsa_pubkey.pem -in plain.txt -out enc.bin
- 解密:openssl rsautl -decrypt -inkey rsa_key.pem -in enc.bin -out dec.txt
- 生成 DH 参数 与 ECDH 密钥(用于密钥协商):
- DH 参数:openssl dhparam -out dhparams.pem 2048
- ECDH 密钥:openssl ecparam -name secp384r1 -genkey -noout -out ecdhkey.pem
- 导出 ECDH 公钥:openssl pkey -in ecdhkey.pem -pubout -out ecdhpub.pem。
四 PKCS 12 证书与服务器快速上手
- 打包 PKCS#12(.p12/.pfx):
- openssl pkcs12 -export -in certificate.crt -inkey private_key.pem -out keystore.p12 -name mycert
- 从 PKCS#12 提取:
- 提取证书:openssl pkcs12 -in keystore.p12 -clcerts -nokeys -out certificate.crt
- 提取私钥:openssl pkcs12 -in keystore.p12 -nocerts -out private.key -nodes
- Nginx 快速启用 HTTPS(自签名示例):
- 生成私钥与证书:
- openssl genpkey -algorithm RSA -out /etc/nginx/ssl/nginx.key
- openssl req -new -key /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.csr
- openssl x509 -req -days 365 -in /etc/nginx/ssl/nginx.csr -signkey /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt
- 配置 /etc/nginx/sites-available/default:
- listen 443 ssl; server_name yourdomain.com;
- ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key;
- 校验与生效:
- sudo nginx -t & & sudo systemctl restart nginx
- 生成私钥与证书:
- 远程查看站点证书链与握手信息:
- openssl s_client -connect yourdomain.com:443 -servername yourdomain.com。
五 实用建议与常见问题
- 保护私钥:设置权限为 600,并妥善备份;避免将私钥提交到代码仓库。
- 加密口令输入:交互式更安全(命令不带 -pass),或在脚本中使用文件/环境变量并严格管控权限。
- 证书链完整:部署时同时配置 中间证书链,避免浏览器或客户端报不受信任。
- 协议与套件:生产环境优先使用 TLS 1.2/1.3,禁用 SSLv3/TLS1.0/1.1 与不安全套件。
- 获取帮助:使用 man openssl 或查阅 OpenSSL 官方文档,按需求选择算法与参数。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian系统中OpenSSL命令行工具使用教程
本文地址: https://pptw.com/jishu/749629.html
