服务器nginx配置SSL证书后启动报错问题解决方案

一、问题现象

服务器nginx配置SSL证书后启动报错:

nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:53

二、问题分析

原因:nginx缺少http_ssl_module模块,编译安装的时候带上–with-http_ssl_module配置就行了,但是现在的情况是我的nginx已经安装过了,怎么添加模块?以我的nginx为例子
①nginx的安装目录是/usr/local/nginx这个目录,
②我的源码包在/usr/local/nginx-1.20.2目录,根据你自己实际情况对应自己的目录

三、解决过程

1、如果是使用yum 安装等方式,找不到源码包,需要下载当前安装相同版本的源码包:

wget http://nginx.org/download/nginx-1.8.0.tar.gz

 使用nginx -V查询当前Nginx的编译配置信息,configure arguments: 后面为当前运行Nginx的配置信息

(base) [root@iZxpl4sxxnloovZ nginx-1.8.0]# nginx -V
nginx version: nginx/1.8.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
configure arguments: --prefix=/usr/local/nginx

2、 切换到源码目录执行如下代码:

 cd /usr/local/nginx-1.20.2

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

执行结果如下(内容比较多):

3、编译 : make (这里不要进行make install,否则就是覆盖安装)

[root@llc nginx-1.19.10]# make

4、 进入到nginx目录,备份原来nginx配置文件

[root@i-h7ei19cd conf]# pwd
/usr/local/nginx/conf
[root@i-h7ei19cd conf]# cp nginx.conf nginx.conf.bak
cp: overwrite ‘nginx.conf.bak’? y

 

5、保证nginx是关闭状态,如果无法关闭,用kill命令强制杀死进程

 

6、复制刚编译生成的配置覆盖原有的配置

  进入到源码包目录,然后找到nginx,copy到nginx对应安装目录,命令如下:

 7、切换到nginx安装目录

cd /usr/local/nginx/sbin

8、启动nginx 

[root@i-h7ei19cd sbin]# pwd
/usr/local/nginx/sbin
[root@i-h7ei19cd sbin]# ./nginx

9、打开页面,nginx正常启动

 

10、配置ssl模块,对nginx.conf文件进行编辑,编辑完,保存。如下:

 

 11、验证配置文件是否正确,并启动nginx

[root@i-h7ei19cd sbin]# ls
nginx  nginx.old
[root@i-h7ei19cd sbin]# ./nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@i-h7ei19cd sbin]# ./nginx -s reload

12、打开浏览器,输入地址,验证ssl是否配置成功:

 

posted @ 2022-04-11 10:15  WhyShang  阅读(2555)  评论(0编辑  收藏  举报