pushy apns не проходит через балансировщик нагрузки AWS

Попытка запустить сервис mock apns на AWS EC2.

Соединение хорошо работает с curl и простой программой go, использующей библиотеку apns2.

Однако при использовании pushy запрос останавливается на loadbalancer с ошибкой HTTP 1/1 400. Так что не доходит до сервиса фиктивного 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 "-" "-"

И запрос curl выглядит так

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

0 ответов

Другие вопросы по тегам