温馨提示×

Debian OpenSSL命令行操作技巧有哪些

小樊
44
2025-11-15 15:58:40
栏目: 云计算

Debian 上 OpenSSL 命令行高效用法

一 安装与基础配置

  • 安装与升级
    • 安装基础工具与开发包:sudo apt update && sudo apt install -y openssl libssl-dev
    • 升级系统 CA 证书并刷新信任库:sudo apt update && sudo apt install --only-upgrade ca-certificates && sudo update-ca-certificates
  • 配置文件与目录
    • 主配置文件:/etc/ssl/openssl.cnf(可按需调整默认散列、扩展等)
    • 证书与私钥常用目录:/etc/ssl/certs//etc/ssl/private/(注意权限与合规)

二 证书与密钥快速操作

  • 生成私钥与 CSR
    • 生成 RSA 2048 私钥:openssl genpkey -algorithm RSA -out private.key -pkeyopt rsa_keygen_bits:2048
    • 生成 CSR:openssl req -new -key private.key -out server.csr
  • 自签名证书(测试/内网)
    • 一步生成私钥与自签名证书:openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
    • 或基于 CSR 签名:openssl x509 -req -days 365 -in server.csr -signkey private.key -out server.crt
  • 查看与验证
    • 查看证书信息:openssl x509 -in server.crt -noout -text
    • 验证证书链:openssl verify -CAfile ca.crt server.crt
  • 打包与转换
    • 导出 PKCS#12openssl pkcs12 -export -in server.crt -inkey private.key -out keystore.p12 -name mycert
    • 生成 DH 参数(提升 TLS 安全性):openssl dhparam -out dhparams.pem 2048

三 文件加解密与摘要校验

  • 对称加密(AES-256-CBC)
    • 加密:openssl enc -aes-256-cbc -salt -in plaintext.txt -out encrypted.bin
    • 解密:openssl enc -d -aes-256-cbc -in encrypted.bin -out decrypted.txt
    • 提示:口令可通过 -k PASS-pass file:pass.txt 等方式提供,避免交互输入
  • 非对称加解密(RSA)
    • 生成密钥: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 plaintext.txt -out encrypted.bin
    • 私钥解密:openssl pkeyutl -decrypt -inkey rsa_key.pem -in encrypted.bin -out decrypted.txt
  • 消息摘要
    • 计算 SHA-256openssl dgst -sha256 inputfile

四 测试与排查 SSL/TLS 连接

  • 握手与协议套件
    • 基础连接:openssl s_client -connect www.example.com:443
    • 指定协议版本:openssl s_client -connect www.example.com:443 -tls1_3
    • 指定套件:openssl s_client -connect www.example.com:443 -cipher AES256-GCM-SHA384
  • 证书校验与调试
    • 严格校验证书:openssl s_client -connect www.example.com:443 -verify_return_error
    • 指定信任 CA:openssl s_client -connect www.example.com:443 -CAfile my_ca_cert.pem
    • 客户端证书认证:openssl s_client -connect www.example.com:443 -cert client_cert.pem -key client_key.pem
    • 保存握手过程:openssl s_client -connect www.example.com:443 > handshake.log 2>&1

五 实用与安全建议

  • 优先使用 genpkeyreq -x509 的现代语法;为私钥设置合适权限(如 600
  • 生产环境避免使用自签名证书,部署前用 s_client -verify_return_error 严格校验
  • 选择安全套件与协议:优先 TLS 1.2/1.3,禁用已知弱套件与旧协议
  • 妥善管理密钥与证书生命周期:定期轮换,更新 CA 证书 并运行 update-ca-certificates
  • 将私钥与证书放置在受控目录(如 /etc/ssl/private//etc/ssl/certs/),并在服务配置中正确引用路径

0