pushy apns无法通过AWS负载均衡器

时间:2018-10-12 09:58:20

标签: http2 pushy

尝试在AWS EC2上运行模拟apns服务。

使用apns2库,curl和简单的go程序的连接效果很好。

但是,当使用pushy时,查询会通过HTTP 1/1 400 Bad Request在负载均衡器处停止。因此,无法访问模拟apsn服务。

看来pushy正在尝试协商使用http2,但它也在解析主机名的CNAME以发出该请求。 EC2实例的主机名没有SSL证书,并且AWS不允许EC2实例拥有自己的证书。 SSL通过负载平衡器完成。这就是为什么我猜它会收到Bad Request错误的原因。

是否有某种方法可以使pushy.apns直接进入h2,而无需进行协商。 apple APNS服务的工作原理很简单,只需替换curl和我正在使用的示例中的主机名即可。

请求请求的日志输出类似于

https 2018-10-12T08:19:30.301789Z app/pushproxy/7ba468ea0d0278b2 86.172.XX.230:61136 - -1 -1 -1 400 - 0 288 "- https://pushproxy-XXXXXXX.eu-west-2.elb.amazonaws.com:443- -" "-" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 - "-" "-" "arn:aws:acm:eu-west-2:914858662894:certificate/XXXXXX-d957-4e9d-bda6-00c2f42a6e3a" - 2018-10-12T08:19:30.286000Z "-" "-"

卷曲请求看起来像

h2 2018-10-12T08:13:43.142341Z app/pushproxy/7ba468ea0d0278b2 86.172.XX.230:60860 172.31.27.35:443 0.000 0.002 0.000 200 200 239 78 "POST https://pushproxy.mycompany.com:443/3/device/a9001c6cbf953a9b2820f4da9c7f8d37e84338460304a2ce0a04a32e85ca2532 HTTP/2.0" "curl/7.61.1" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:eu-west-2:914858662894:targetgroup/pushProxy/252675c1a61756ea "Root=1-5bc057b7-a61a4ca4d5880b40f00d17c0" "pushproxy.mycompany.com" "arn:aws:acm:eu-west-2:914858662894:certificate/XXXXXXX-a34f-415b-b687-8789cf21197f" 0 2018-10-12T08:13:43.140000Z "forward" "-"

curl命令

curl -v -d '{"aps":{"alert":"<message>","badge":42}}' \
     -H "apns-id: 45454554646445454433433334332344" \
     -H "apns-topic: com.2mee.Bridge2Mee" \
     -H "apns-priority: 10" --http2 \
     --cert pushcert.pem  https://pushproxy.mycompany.com/3/device/a9001c6cbf953a9b2820f4da9c7f8d37e84338460304a2ce0a04a32e85ca2532

0 个答案:

没有答案