[emerg] the “ssl“ parameter requires ngx

2024-06-04 8665阅读

nginx配置https报错:[emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:35

      • 1.检查Nginx是否编译了SSL模块:
      • 2.如果已编译安装SSL模块,配置有问题:
      • 3.如果未编译安装SSL模块(OpenSSL安装):
      • 4.安装成功OpenSSL后,进入Nginx源代码目录,(解压出来的那个地方,安装一般都是在/usr/local/nginx)。

        这个错误提示表明在Nginx配置文件(通常是nginx.conf)中使用了SSL(Secure Sockets Layer)相关的配置,但是Nginx没有加载相应的SSL模块。

        1.检查Nginx是否编译了SSL模块:

        /usr/local/nginx/sbin/nginx -V 2>&1 | grep --color=auto ssl

        /usr/local/nginx/sbin/nginx:安装nginx的绝对路径

        输出以下结果 则为安装已加载SSL模块:

        configure arguments: --with-openssl=/XXX/openssl-1.1.1l --with-http_ssl_module

        /XXX/openssl-1.1.1l:openssl安装位置

        有这个就是安装了--with-http_ssl_module

        2.如果已编译安装SSL模块,配置有问题:

        1.打开Nginx配置文件(通常是nginx.conf)。

        2.确保在配置文件中的server块中有正确的SSL配置,如listen 443 ssl;和证书路径等,这个在证书配置的官网有具体的所需配置。

        3.nginx.conf配置举例:

        Python
        worker_processes  1;
        events {
            worker_connections  1024;
        }
        http {
            include       mime.types;
            default_type  application/octet-stream;
            map $http_upgrade $connection_upgrade {
        		default upgrade;
        		''      close;
            }
            sendfile        on;
            keepalive_timeout  65;
            	server {
        	     #HTTPS的默认访问端口443。
        	     listen 443 ssl;
        	     
        	     #填写证书绑定的域名
        	     server_name XXX;
        	 
        	     #填写证书文件名称
        	     ssl_certificate cert/XXX.pem;
             	 #填写证书私钥文件名称
        	     ssl_certificate_key cert/XXX.key;
        	 
        	     ssl_session_cache shared:SSL:1m;
        	     ssl_session_timeout 5m;
        		 
        	     #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
        	     #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
        	     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        	     ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
        	
        	     #表示优先使用服务端加密套件。默认开启
        	     ssl_prefer_server_ciphers on;
        	     
        	    location / {
                   root   html/XXX;
                   index  index.html index.htm;
                    try_files $uri $uri/ /index.html; 
        	    }
        	    location /prod-api/{
                    proxy_set_header Host $http_host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header REMOTE-HOST $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_pass http://XXX:XXX/;
                }
        		
        		location /prod-system/{
        			proxy_pass http://XXX:XXX/;  #修改为需要被反向代理的WebSocket的IP和端口号
        			proxy_http_version 1.1;
        			proxy_set_header Upgrade $http_upgrade;
        			proxy_set_header Connection $connection_upgrade;
               }
        }
        

        4.重新验证Nginx配置:

        /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

        如果没有语法错误,启动Nginx

        3.如果未编译安装SSL模块(OpenSSL安装):

        • # 进入您希望存放 OpenSSL 源代码的目录
        • cd /XXX
        • # 下载 OpenSSL 源代码,浏览器也能访问
        • https://www.openssl.org/source/openssl-1.1.1l.tar.gz
        • # 解压 OpenSSL 源代码
        • tar -zxvf openssl-x.x.x.tar.gz
        • make
        • make install

        如果出现报错:

        Operating system: x86_64-whatever-linux2 You need Perl 5.

        访问:https://www.cpan.org/src/5.0/离线下载也可以

        • wget https://www.cpan.org/src/5.0/perl-5.30.1.tar.gz
        • tar -xzf perl-5.30.1.tar.gz
        • cd perl-5.30.1
        • ./Configure -des -Dprefix=$HOME/localperl
        • make
        • make test
        • make install

        4.安装成功OpenSSL后,进入Nginx源代码目录,(解压出来的那个地方,安装一般都是在/usr/local/nginx)。

        • ./configure --with-openssl=/usr/local/openssl --with-http_ssl_module
        • make
        • make install

        验证配置

        /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

        启动:/usr/local/nginx/sbin目录执行./nginx

        重新加载配置:/usr/local/nginx/sbin目录执行./nginx -s reload


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]