今天需要将https证书配置上,在阿里云控制台申请了免费的证书。
把证书下载到对应的目录下,写好证书配置关键代码:
listen 443 ssl http2 default_server;
ssl_certificate "/etc/pki/nginx/xx.pem";
ssl_certificate_key "/etc/pki/nginx/xx.key";
尝试重新启动:
/usr/local/nginx/sbin/nginx -s reload
结果报错:
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:235
1.网上找上到的解决方案是删除重新安装,不过我这个不是yum方式安装的,是下载安装包,执行安装命令安装的,yum remove是行不通了。
2.网上找到的方法就是在nginx软件包目录下载对应的模块,覆盖安装,还好软件包没有删除。
a.先看一下当前nginx的配置参数,打印了一下啥也没有。
/usr/local/nginx/sbin/nginx -V 看一下参数:
nginx version: nginx/1.14.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments:
b.就是按网上的步骤。
/usr/local/nginx/sbin/nginx -s stop
cd ~/packages/nginx-1.14.0
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
因为我的nginx.conf已经有下载到本地电脑,所以我直接就是make install覆盖安装。
再次启动(/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf)又报错。
nginx: [emerg] the "http2" parameter requires ngx_http_v2_module in /usr/local/nginx/conf/nginx.conf:235
重复上面的b步骤
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module
再次make install覆盖安装,再启动就成功了。
网友评论