首页主机资讯openssl如何配置ubuntu服务器

openssl如何配置ubuntu服务器

时间2025-12-15 16:37:03发布访客分类主机资讯浏览736
导读:Ubuntu 服务器上使用 OpenSSL 的完整配置指南 一 安装与基础检查 更新索引并安装 OpenSSL: sudo apt update sudo apt install -y openssl 验证版本与组件: opens...

Ubuntu 服务器上使用 OpenSSL 的完整配置指南

一 安装与基础检查

  • 更新索引并安装 OpenSSL:
    • sudo apt update
    • sudo apt install -y openssl
  • 验证版本与组件:
    • openssl version
    • sudo a2enmod ssl # 如使用 Apache,启用 SSL 模块
  • 配置文件位置:
    • OpenSSL 主配置:/etc/ssl/openssl.cnf
    • 证书与私钥常用目录:/etc/ssl/certs/etc/ssl/private(注意私钥权限 600)

二 生成证书与 CSR 的常用方式

  • 自签名证书(测试/内网)
    • 一步生成(RSA,有效期 365 天):
      • openssl req -x509 -newkey rsa:4096 -keyout /etc/ssl/private/server.key -out /etc/ssl/certs/server.crt -days 365 -nodes
  • 标准流程(用于向 CA 申请)
    • 生成私钥(建议 aes256 加密):
      • openssl genpkey -algorithm RSA -out server.key -aes256
    • 生成 CSR:
      • openssl req -new -key server.key -out server.csr
    • 查看 CSR 内容:
      • openssl req -in server.csr -noout -text
  • 使用现有私钥直接签发自签名证书:
    • openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
  • 证书链合并(部署时常用)
    • cat server.crt intermediate.crt > server_fullchain.crt

三 在 Nginx 或 Apache 中启用 HTTPS

  • Nginx 示例(/etc/nginx/sites-available/default 或站点配置)
    • 基本配置:
      • server {
        • listen 443 ssl http2;
        • server_name your_domain.com www.your_domain.com;
        • ssl_certificate /etc/ssl/certs/server.crt;
        • ssl_certificate_key /etc/ssl/private/server.key;
        • ssl_protocols TLSv1.2 TLSv1.3;
        • ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
        • ssl_prefer_server_ciphers off;
        • root /var/www/html; index index.html;
        • location / { try_files $uri $uri/ =404; }
        • }
      • server { listen 80; server_name your_domain.com; return 301 https://$host$request_uri; }
    • 检查并重载:
      • 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/server.crt
      • SSLCertificateKeyFile /etc/ssl/private/server.key
      • SSLCertificateChainFile /etc/ssl/certs/intermediate.crt # 如 CA 提供中间证书
    • 重载:
      • sudo systemctl reload apache2
  • 防火墙放行(如启用 UFW)
    • sudo ufw allow 443/tcp

四 使用 Let’s Encrypt 自动获取与续期证书

  • 安装 Certbot 与对应插件:
    • Apache:sudo apt install -y certbot python3-certbot-apache
    • Nginx:sudo apt install -y certbot python3-certbot-nginx
  • 获取并自动配置:
    • Apache:sudo certbot --apache
    • Nginx:sudo certbot --nginx
  • 自动续期测试与生效:
    • sudo certbot renew --dry-run
    • 证书默认有效期 90 天,Certbot 会自动创建定时任务续期
  • HTTP 到 HTTPS 重定向:
    • Nginx:在 80 端口 server 块中 return 301 https://$host$request_uri;
    • Apache:在 80 端口 VirtualHost 中添加 Redirect permanent / https://your_domain.com/

五 验证与进阶安全建议

  • 配置与连通性验证
    • 在线检测:SSL Labs Server Test(ssllabs.com/ssltest)
    • 本机查看证书链:openssl s_client -connect your_domain.com:443 -servername your_domain.com -showcerts
    • 本机测试握手与协议套件:openssl s_client -connect your_domain.com:443 -servername your_domain.com
  • 进阶 客户端证书认证(双向 TLS,示例 Nginx)
    • 准备 CA 证书后,在 server 段增加:
      • ssl_client_certificate /etc/ssl/certs/ca.crt;
      • ssl_verify_client on;
    • 重启服务后,客户端需携带由该 CA 签发的证书才能访问
  • 安全与运维要点
    • 仅启用 TLSv1.2/TLSv1.3,禁用 SSLv3/TLSv1.0/TLSv1.1
    • 优先使用 ECDHE 密钥交换与 AEAD 套件;禁用 RC4DESMD5 等弱算法
    • 私钥权限设为 600,证书与链文件 644;将证书与私钥放在受控目录(如 /etc/ssl/
    • 全站 HTTP→HTTPS 重定向;为 API/管理端启用 HSTS
    • 定期检查证书到期并监控续期日志(/var/log/letsencrypt/)
  • 不建议替换系统 OpenSSL(风险高)
    • 若必须编译安装特定版本,务必做好备份与库路径配置,并充分回归测试后再切换生产

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


若转载请注明出处: openssl如何配置ubuntu服务器
本文地址: https://pptw.com/jishu/771790.html
ubuntu下openssl如何验证签名 如何用ubuntu安装openssl库

游客 回复需填写必要信息