为什么nginx配置https协议的反向代理总是报错?

网站有个功能需要前端请求第三方接口,但是第三方接口是https协议的,而我们网站是HTTP协议的。

但是我在nginx配置反向代理的时候

location /ddapi/ {
        proxy_pass https://oapi.dingtalk.com;
    } 

重启nginx总是报错。但是我把https改成http 就不会报错。

这个是不是我们网站也需要https协议才能代理 第三方为https协议的接口

阅读 5k
1 个回答

需要增加客户端证书和私钥,不然没法在后端服务器上去验证nginx的:

location /ddapi/ {
    proxy_pass                https://oapi.dingtalk.com;
    proxy_ssl_certificate         /etc/nginx/client.pem;
    proxy_ssl_certificate_key     /etc/nginx/client.key
    proxy_ssl_protocols           TLSv1 TLSv1.1 TLSv1.2;
    proxy_ssl_ciphers             HIGH:!aNULL:!MD5;
    proxy_ssl_trusted_certificate /etc/nginx/trusted_ca_cert.crt;

    proxy_ssl_verify        on;
    proxy_ssl_verify_depth  2;
    proxy_ssl_session_reuse on;
}

具体你还可以看看官方解释Securing HTTP Traffic to Upstream Servers

希望能帮助到你。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题