Ubuntu系统下OpenSSL配置全指南

一 安装与版本确认
- 先更新软件包索引并完成安装:sudo apt update && sudo apt install -y openssl libssl-dev
- 查看 OpenSSL 版本信息与相关组件路径:openssl version -a(重点留意输出中的版本号以及“OPENSSL_CONF”等字段)
- 如果需要编译程序、使用开发头文件或静态库,建议同时安装 libssl-dev。
二 配置文件位置与检查
- Ubuntu 中 OpenSSL 的主配置文件一般位于:/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 ],可以根据实际需求调整默认加密算法、证书有效期及其他参数。
三、生成测试或内网用的证书与密钥
- 生成自签名 SSL 证书和私钥(私钥不加密,有效期 365 天):
- sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048
-keyout /etc/ssl/private/mydomain.key -out /etc/ssl/certs/mydomain.crt
- sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048
- 权限设置建议:私钥仅允许 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
- 启用 SSL 模块和站点:sudo a2enmod ssl && sudo a2ensite default-ssl
- 在 /etc/apache2/sites-a vailable/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/opensslshared 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 的程序出现异常或无法正常运行。
