可直接在已安装nginx上补装ssl模块,无需重装;需保留原始源码目录并安装openssl开发库,通过重新编译(./configure --with-http_ssl_module + 原有参数 && make)、替换objs/nginx二进制文件、重启服务,并配置nginx.conf中443端口及证书路径即可启用https。

直接在已安装的 Nginx 上补装 SSL 模块,不需要重装整个 Nginx,核心是“重新编译 + 替换二进制文件”。前提是必须保留当初编译用的源码包(比如 nginx-1.20.2 目录),且系统已安装 OpenSSL 开发库。
确认是否已支持 SSL
运行以下命令查看当前 Nginx 的编译参数:
/usr/local/nginx/sbin/nginx -V如果输出中包含 --with-http_ssl_module,说明已支持,无需操作。否则继续下一步。
进入源码目录重新编译
确保你在原始解压的 Nginx 源码目录中(例如 /root/nginx-1.20.2 或 /usr/local/src/nginx-1.20.2):
- 执行配置命令,显式启用 SSL 模块(可同时带上你原来用过的其他模块参数,避免丢失功能):
./configure --with-http_ssl_module [其他原有参数] - 只运行 make(不要运行 make install)
- 编译完成后,新生成的可执行文件位于
objs/nginx
替换并验证 Nginx 二进制文件
停掉正在运行的 Nginx,再用新编译的文件覆盖旧版:
- nginx -s stop
- cp objs/nginx /usr/local/nginx/sbin/
- 重启服务:/usr/local/nginx/sbin/nginx
- 再次执行 nginx -V,确认输出中已出现 --with-http_ssl_module
配置 HTTPS 站点(启用 SSL)
光有模块还不够,还需在 nginx.conf 中配置证书和监听:
- 把你的
server.crt和server.key放到 Nginx 可读路径(如/usr/local/nginx/conf/cert/) - 在 server 块中添加:
listen 443 ssl;
ssl_certificate cert/server.crt;
ssl_certificate_key cert/server.key; - 建议加上基础安全项:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;











