温馨提示×

ubuntu上openssl配置怎样做

小樊
34
2025-12-28 14:39:03
栏目: 云计算

Ubuntu 上 OpenSSL 配置全流程

一 安装与版本确认

  • 更新索引并安装:sudo apt update && sudo apt install -y openssl libssl-dev
  • 查看版本与组件路径:openssl version -a(关注输出中的版本与“OPENSSL_CONF”等字段)
  • 如需开发头文件和静态库,务必安装 libssl-dev

二 配置文件位置与检查

  • 主配置文件通常为:/etc/ssl/openssl.cnf
  • 查看与编辑:sudo nano /etc/ssl/openssl.cnf
  • 在修改前先备份:sudo cp /etc/ssl/openssl.cnf /etc/ssl/openssl.cnf.bak
  • 该文件包含多个段落,如 [default_conf]、[ req ]、[ ca ],可按需调整默认算法、证书有效期等参数。

三 生成证书与密钥(用于测试或内网)

  • 生成自签名证书与私钥(不加密私钥,有效期 365 天):
    • sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048
      -keyout /etc/ssl/private/mydomain.key -out /etc/ssl/certs/mydomain.crt
  • 目录权限建议:私钥仅 root 可读写(600),证书可读(644)。

四 在 Web 服务器中启用 HTTPS

  • Nginx
    • 配置片段:
      • server { listen 443 ssl; server_name mydomain.com;
      • ssl_certificate /etc/ssl/certs/mydomain.crt;
      • ssl_certificate_key /etc/ssl/private/mydomain.key;
      • ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ‘HIGH:!aNULL:!MD5’; }
    • 检查并重载:sudo nginx -t && sudo systemctl reload nginx
  • Apache
    • 启用模块与站点:sudo a2enmod ssl && sudo a2ensite default-ssl
    • 在 /etc/apache2/sites-available/default-ssl.conf 中设置:
      • SSLEngine on
      • SSLCertificateFile /etc/ssl/certs/mydomain.crt
      • SSLCertificateKeyFile /etc/ssl/private/mydomain.key
    • 重载:sudo systemctl reload apache2
  • 访问测试:浏览器打开 https://mydomain.com(自签名证书会出现安全警告,属正常现象)。

五 从源码安装特定版本与共存(可选)

  • 安装构建依赖:sudo apt install -y build-essential make gcc perl zlib1g-dev
  • 下载与编译(示例为 OpenSSL 3.0.15):
    • wget https://www.openssl.org/source/openssl-3.0.15.tar.gz
    • tar -zxf openssl-3.0.15.tar.gz && cd openssl-3.0.15
    • ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
    • make -j$(nproc) && sudo make install
  • 使用与系统版本共存(不建议覆盖系统 OpenSSL):
    • 环境变量方式(当前会话/用户级):
      • echo ‘export PATH=/usr/local/openssl/bin:$PATH’ >> ~/.bashrc
      • echo ‘export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH’ >> ~/.bashrc
      • source ~/.bashrc
    • 系统库缓存方式:
      • echo ‘/usr/local/openssl/lib’ | sudo tee /etc/ld.so.conf.d/openssl.conf
      • sudo ldconfig
  • 验证:which openssl(应指向 /usr/local/openssl/bin/openssl),ldd 检查库路径,openssl version 显示新版本
  • 风险提示:不要直接替换 /usr/bin/openssl 或系统库,避免依赖旧版 OpenSSL 的软件异常。

0