[emerg] the “ssl“ parameter requires ngx_http_ssl_module in /usr/loc ...

火影  金牌会员 | 2024-6-13 21:27:43 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 545|帖子 545|积分 1635

这个错误提示表明在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设置举例:
  1. worker_processes  1;
  2. events {
  3.     worker_connections  1024;
  4. }
  5. http {
  6.     include       mime.types;
  7.     default_type  application/octet-stream;
  8.     map $http_upgrade $connection_upgrade {
  9.                 default upgrade;
  10.                 ''      close;
  11.     }
  12.     sendfile        on;
  13.     keepalive_timeout  65;
  14.             server {
  15.              #HTTPS的默认访问端口443。
  16.              listen 443 ssl;
  17.              
  18.              #填写证书绑定的域名
  19.              server_name XXX;
  20.          
  21.              #填写证书文件名称
  22.              ssl_certificate cert/XXX.pem;
  23.               #填写证书私钥文件名称
  24.              ssl_certificate_key cert/XXX.key;
  25.          
  26.              ssl_session_cache shared:SSL:1m;
  27.              ssl_session_timeout 5m;
  28.                  
  29.              #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
  30.              #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
  31.              ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  32.              ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
  33.        
  34.              #表示优先使用服务端加密套件。默认开启
  35.              ssl_prefer_server_ciphers on;
  36.              
  37.             location / {
  38.            root   html/XXX;
  39.            index  index.html index.htm;
  40.             try_files $uri $uri/ /index.html;
  41.             }
  42.             location /prod-api/{
  43.             proxy_set_header Host $http_host;
  44.             proxy_set_header X-Real-IP $remote_addr;
  45.             proxy_set_header REMOTE-HOST $remote_addr;
  46.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  47.             proxy_pass http://XXX:XXX/;
  48.         }
  49.                
  50.                 location /prod-system/{
  51.                         proxy_pass http://XXX:XXX/;  #修改为需要被反向代理的WebSocket的IP和端口号
  52.                         proxy_http_version 1.1;
  53.                         proxy_set_header Upgrade $http_upgrade;
  54.                         proxy_set_header Connection $connection_upgrade;
  55.        }
  56. }
复制代码
4.重新验证Nginx设置:
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
如果没有语法错误,启动Nginx
3.如果未编译安装SSL模块(OpenSSL安装):

  1. # 进入您希望存放 OpenSSL 源代码的目录
  2. cd /XXX
  3. # 下载 OpenSSL 源代码,浏览器也能访问
  4. https://www.openssl.org/source/openssl-1.1.1l.tar.gz
  5. # 解压 OpenSSL 源代码
  6. tar -zxvf openssl-x.x.x.tar.gz
  7. make
  8. make install
复制代码
如果出现报错:
Operating system: x86_64-whatever-linux2 You need Perl 5.
访问:https://www.cpan.org/src/5.0/离线下载也可以
  1. wget https://www.cpan.org/src/5.0/perl-5.30.1.tar.gz
  2. tar -xzf perl-5.30.1.tar.gz
  3. cd perl-5.30.1
  4. ./Configure -des -Dprefix=$HOME/localperl
  5. make
  6. make test
  7. make install
复制代码
4.安装乐成OpenSSL后,进入Nginx源代码目次,(解压出来的那个地方,安装一样平常都是在/usr/local/nginx)。

  1. ./configure --with-openssl=/usr/local/openssl --with-http_ssl_module
  2. make
  3. 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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

火影

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表