3

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

Connection 适用于 curl 和使用 apns2 库的简单 go 程序。

但是,当使用 pushy 时,查询会在负载均衡器处停止,并带有 HTTP 1/1 400 错误请求。所以没有通过模拟 apsn 服务。

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

有没有办法让 pushy.apns 直接进入 h2,无需协商。苹果 APNS 服务只需替换我正在使用的 curl 和 go 示例中的主机名即可。

急迫请求的日志输出看起来像

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 -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
4

0 回答 0