首页主机资讯Ubuntu OpenSSL如何使用SSL/TLS协议

Ubuntu OpenSSL如何使用SSL/TLS协议

时间2026-01-20 14:47:04发布访客分类主机资讯浏览438
导读:Ubuntu 上使用 OpenSSL 启用 SSL/TLS 的完整实践 一 准备与安装 更新索引并安装工具:sudo apt update && sudo apt install openssl ca-certificat...

Ubuntu 上使用 OpenSSL 启用 SSL/TLS 的完整实践

一 准备与安装

  • 更新索引并安装工具:sudo apt update & & sudo apt install openssl ca-certificates。如用于 Web 服务,建议同时安装 nginxapache2
  • 确认 OpenSSL 版本与引擎:openssl version -a(如需自定义行为,可检查或编辑 OpenSSL 配置文件,如 /etc/ssl/openssl.cnf/usr/lib/ssl/openssl.cnf)。

二 证书与密钥的获取与制作

  • 自签名证书(测试/内网常用)
    • 单步生成私钥与证书:sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/server.key -out /etc/ssl/certs/server.crt。按需填写国家、组织、**Common Name(域名或IP)**等信息。
    • 分步方式:先生成私钥(如 server.key),再生成 CSR(server.csr),最后自签:openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt。
  • 使用受信任 CA 或自建 CA
    • 自建根 CA:生成 CA 私钥与根证书(ca.key/ca.crt),再用 CA 签发服务器证书(推荐在 CSR/扩展中设置 subjectAltName = DNS:your.domain, IP:1.2.3.4 等)。
    • 查看与校验证书:openssl x509 -in server.crt -text -noout;验证链路:openssl verify -CAfile ca.crt server.crt。
  • 证书链与文件放置
    • 将服务器证书与中间证书链合并为一个文件(chain.crt):cat your_domain.crt ca_bundle.crt > chain.crt,便于服务器一次性返回完整链。

三 在 Nginx 或 Apache 中启用 SSL/TLS

  • Nginx 示例(/etc/nginx/sites-available/your_site)
    • 基本启用:
      • listen 443 ssl http2;
      • ssl_certificate /etc/ssl/certs/your_domain.crt;
      • ssl_certificate_key /etc/ssl/private/your_domain.key;
      • ssl_protocols TLSv1.2 TLSv1.3;
      • ssl_ciphers HIGH:!aNULL:!MD5;
      • ssl_prefer_server_ciphers on;
    • 进阶优化(按需):开启 HSTSOCSP Stapling(ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /path/to/chain.pem; resolver DNS_IP; )。
    • 生效:sudo nginx -t & & sudo systemctl reload nginx。
  • Apache 示例(启用默认 SSL 站点并指向证书)
    • 启用模块:sudo a2enmod ssl;启用站点:sudo a2ensite default-ssl.conf
    • 在 /etc/apache2/sites-available/default-ssl.conf 或相应虚拟主机中设置:
      • SSLEngine on
      • SSLCertificateFile /etc/ssl/certs/your_domain.crt
      • SSLCertificateKeyFile /etc/ssl/private/your_domain.key
      • 如需完整链:SSLCertificateChainFile /etc/ssl/certs/chain.crt
    • 生效:sudo apache2ctl configtest & & sudo systemctl reload apache2。

四 连接测试与诊断

  • 命令行快速验证:
    • 查看握手与证书链:openssl s_client -connect your.domain:443 -servername your.domain
    • 指定协议测试:openssl s_client -connect your.domain:443 -tls1_2 或 -tls1_3
    • 校验证书细节:在 s_client 输出中检查证书链、颁发者、有效期与 SAN(Subject Alternative Name)
  • 浏览器访问与证书信任:公网服务建议使用受信任 CA 证书;自签名证书需将 ca.crt 导入客户端受信根存储后访问。
  • 抓包与排错:必要时结合 tcpdump/wireshark 观察握手过程,或开启服务端与客户端日志以定位握手失败原因。

五 安全与运维要点

  • 协议与套件:优先启用 TLSv1.2/TLSv1.3,禁用 SSLv3/TLSv1.0/TLSv1.1;使用现代套件(如 ECDHE + GCM/ChaCha20),并设置 ssl_prefer_server_ciphers on。
  • 证书链与部署:部署包含中间证书的完整链;私钥妥善保护(600 权限、隔离存储);定期轮换(建议 ≤ 398 天 的证书生命周期策略)。
  • 性能与合规:启用 HTTP/2、会话复用(如 ssl_session_cache/shared:MozSSL:10m; ssl_session_timeout 1d; )、按需开启 OCSP Stapling;对外服务建议开启 HSTS
  • 客户端证书认证(可选,双向 TLS/mTLS):服务端配置 ssl_client_certificate /path/to/ca.crt; ssl_verify_client on; ,客户端连接时提供由同一 CA 签发的用户证书。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu OpenSSL如何使用SSL/TLS协议
本文地址: https://pptw.com/jishu/787277.html
Linux上Tomcat集群如何搭建 Debian Docker监控如何实现

游客 回复需填写必要信息