nginx配置ssl报错

本文分享了从旧版Nginx迁移至1.15.8版本时遇到的SSL配置警告问题解决过程。详细解释了如何从使用ssl指令升级到listen...ssl指令,以确保HTTPS服务正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、错误信息

nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /etc/nginx/vhost/api.conf:16

2、问题分析

出现以上错误的过程是,我将nginx迁移到一部新机器,新机器的nginx版本是1.15.8,旧机器的版本是1.12.0。
其实错误信息也是比较明显了,不推荐使用ssl,而是使用listen …ssl
看了一些相关的帖子,1.15之后的版本都是推荐listen …ssl

3、配置修改

其实就是把原有的ssl on配置信息去掉就好,然后使用listen 443 ssl 代替即可

server {
	#listen 443; 修改该行信息,如下即可
	listen 443 ssl;
	server_name xxx.xxxx.com;

	#ssl on;  注释该行信息
	index index.html;
	ssl_certificate   /usr/local/nginx/cert/api/xxx.pem;
	ssl_certificate_key  /usr/local/nginx/cert/api/xxx.key;
	ssl_session_timeout 5m;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_prefer_server_ciphers on;

	location / {
	proxy_set_header  X-Forwarded-Host $host;
	proxy_set_header  X-Forwarded-Proto $scheme;
	proxy_set_header  X-Real-IP  $remote_addr;
	proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header Host $http_host;
	proxy_redirect off;
	expires off;
	sendfile off;
	proxy_pass http://xxx.xxx.com;
      }
}

4、重新reload配置

在nginx的sbin目录下,执行./nginx -s reload

在使用Nginx作为反向代理服务器来代理gRPC服务时,遇到“not an SSL/TLS record”错误通常是因为Nginx配置不正确,导致它无法正确处理gRPC的HTTP/2协议。以下是一些可能的解决方案和配置示例: ### 解决方案 1. **确保Nginx版本支持HTTP/2**: - Nginx从1.9.5版本开始支持HTTP/2。确保你使用的Nginx版本支持HTTP/2。 2. **配置SSL/TLS**: - gRPC默认使用HTTP/2协议,而HTTP/2在生产环境中通常需要SSL/TLS加密。确保Nginx配置了正确的SSL证书和密钥。 3. **正确配置Nginx以支持gRPC**: - 在Nginx配置文件中,添加`grpc_pass`指令,并确保使用了正确的协议和端口。 ### 示例配置 ```nginx server { listen 443 ssl http2; server_name your_domain.com; ssl_certificate /path/to/your/fullchain.pem; ssl_certificate_key /path/to/your/privkey.pem; location /your_grpc_service/ { grpc_pass grpc://localhost:50051; # 如果gRPC服务使用HTTP/2 over TLS,可以使用grpcs # grpc_pass grpcs://localhost:50051; } } ``` ### 详细步骤 1. **安装支持HTTP/2的Nginx版本**: - 可以通过包管理器安装最新版本的Nginx,或者从源码编译安装。 2. **配置SSL证书**: - 将SSL证书和私钥路径配置Nginx配置文件中。 3. **配置gRPC反向代理**: - 在`location`块中使用`grpc_pass`指令,并指定gRPC服务的协议和地址。 ### 常见问题 - **Nginx版本不支持HTTP/2**: - 确保Nginx版本至少为1.9.5,并且编译时启用了HTTP/2支持。 - **SSL/TLS配置错误**: - 检查SSL证书和私钥路径是否正确,确保证书有效。 - **协议不匹配**: - 确保`grpc_pass`指令中使用的协议与gRPC服务使用的协议一致。如果gRPC服务使用TLS加密,使用`grpcs`协议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值