• 通过nginx反向代理接收应用宝回调


      年前的时候,正好公司把用来接收应用宝回调的服务从Windows服务器上迁移带Linux服务器上,没想到最后折腾了两个工作日,腾讯的文档真的无力吐槽,不知道以后会不会有人碰到我相同的问题,我先记录一下。

      因为Java项目,当时刚开始准备配置Tomcat的HTTPS双向认证,配置完全是按照腾讯的文档来,但是就是无法接收到回调,然后腾讯那边回复也很慢,回复就是让我们看文档,但是文档也比较老,就像我看别人写的文档,吐槽腾讯说,难的不是接应用宝,是没有一个详细的文档。

    因为我是通过Nginx做的反向代理,先给大家看一下我的Nginx的配置文件

    server {
        listen       443;
        server_name  localhost;
        ssl on;
        ssl_certificate         /usr/local/nginx/crt/server.crt;
        ssl_certificate_key     /usr/local/nginx/crt/server.key;
    
        ssl_verify_client off;
        ssl_protocols TLSv1;
        ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers   on;
    
        ssl_client_certificate  /usr/local/nginx/crt/ca.crt;
    
        ssl_verify_depth            1;
    
        client_header_buffer_size 16k;
        large_client_header_buffers 4 16k;
        proxy_buffer_size 8k;
    
        location / {
        proxy_pass http://127.0.0.1:8899;
                proxy_set_header        Host $host;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_ignore_client_abort on;
                proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    

      基本这样的配置就可以了,

    当时不成功的时候抓包(tcpdump port 443 -X)结果如下:

      成功的抓包如下:

    可以看到,腾讯会先去认证他发给你的CA证书,通过之后才会去认证你的crt和key,都成功之后就会进行通信。也就是可以收到回调。

    PS:后端的java程序,依然是通过Tomcat跑的,配置没有更改,只是将8080改成了8899.

    至于代码层面的话,因为我只是一个运维,就不是很了解了,欢迎有遇到问题的朋友讨论留言指正。

  • 相关阅读:
    iOS获取设备唯一标识的各种方法?IDFA、IDFV、UDID分别是什么含义?
    李洪强iOS开发之FMDB线程安全的用法
    李洪强iOS开发之-FMDB的用法
    李洪强iOS开发之-sql数据库的使用
    iOS截屏功能
    李洪强和你一起学习前端之(6)css行高,盒模型,外边距
    iOS网络_优化请求性能
    iOS-ARC-环境下如何查看引用计数的变化
    远程桌面连接没有授权此用户进行远程登陆
    路由重发布
  • 原文地址:https://www.cnblogs.com/xll970105/p/10365467.html
Copyright © 2020-2023  润新知