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 的软件异常。