Nginx 配置 SSL 证书报错
遇到的错误 nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module 表明 Nginx 在编译安装时没有包含 SSL 模块,因此无法处理 HTTPS 配置。

解决方案:重新编译 Nginx,添加 SSL 模块
这是最标准、可控性最高的方法。你需要进入 Nginx 源码目录,在现有编译参数的基础上增加 --with-http_ssl_module 模块,然后重新编译和安装。
操作步骤
-
查看当前 Nginx 的编译参数 如果当初是从源码编译安装的,应该知道源码在哪。如果找不到,可能需要重新下载一个与你当前版本一致的 Nginx 源码包。
# 例如,进入一个临时目录并下载源码(以 1.24.0 版本为例,版本号务必匹配) cd /usr/local/src wget http://nginx.org/download/nginx-1.24.0.tar.gz tar -zxvf nginx-1.24.0.tar.gz cd nginx-1.24.0 -
保存原有编译参数 执行以下命令输出一长串
--with-...的参数,请完整复制保存下来,下一步会用到。nginx -V 2>&1 | grep arguments -
配置、编译和安装 使用上一步保存的原有参数,并额外加上
--with-http_ssl_module。./configure [你之前保存的所有原参数] --with-http_ssl_module例如,你的命令可能看起来像这样:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module ... --with-http_ssl_module配置完成后,执行编译。注意:
make之后不要执行make install,这会覆盖配置文件。make -
备份旧程序并替换新程序
# 备份旧的 nginx 可执行文件 cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.backup # 将新编译好的程序复制过去 cp objs/nginx /usr/local/nginx/sbin/ -
测试并重载
# 测试新程序是否工作 /usr/local/nginx/sbin/nginx -t # 如果显示成功,则平滑重启 /usr/local/nginx/sbin/nginx -s reload



