Alexa Skills Kit не может подключиться к моему https-серверу

У меня есть https-сервер Node.js, который использует самозаверяющий сертификат для аутентификации. Я использую свой публичный IP-адрес (xxx.xxx.xxx.xxx) прямо сейчас вместо доменного имени. Чтобы проверить это, я портировал перенаправленный порт 8080 на моем маршрутизаторе и перешел на https://xxx.xxx.xxx.xxx:8080 и, конечно же, без символа замка. Chrome распознает сертификат и устанавливает безопасное соединение.

Итак, если Chrome видит мой веб-сервис, почему не может Алекса? Я в основном выполнил шаги, здесь. Я создал новый навык Alexa на портале разработчиков Amazon, создал и загрузил свой сертификат openssl (который, как было доказано, работал) и установил конечную точку как https://xxx.xxx.xxx.xxx:8080. Так что Алекса должна иметь доступ к моему веб-сервису. Вместо этого я получаю:

Ошибка теста (при тестировании на портале разработчиков Amazon)

The remote endpoint could not be called, or the response it returned was invalid.

Ошибка карты (в приложении Alexa при запросе Echo для запуска службы)

A connection could not be established to Resource [https://xxx.xxx.xxx.xxx:8080], Type [HTTP], Region [NA]


person user3685285    schedule 14.01.2017    source источник
comment
Stack Overflow - это сайт для вопросов по программированию и разработке. Этот вопрос кажется не по теме, потому что он не о программировании или разработке. См. Какие темы можно задать здесь в Справочном центре. Возможно, Суперпользователь или Обмен стеками информационной безопасности будут лучшее место, чтобы спросить. Также Где я могу задать вопросы о Dev Ops?.   -  person jww    schedule 15.01.2017
comment
Как выглядит ваш сертификат? Пожалуйста, опубликуйте это. Какой IP-адрес xxx.xxx.xxx.xxx? Это в сертификате как SAN? Какой стандарт использует веб-служба Alexa для проверки сертификатов? Также см. Как создать самозаверяющий сертификат с помощью openssl?   -  person jww    schedule 15.01.2017
comment
У меня была аналогичная проблема, которая была решена, когда я использовал доменное имя, а не общедоступный IP-адрес.   -  person Kaarthik    schedule 26.04.2017


Ответы (1)


Для выполнения навыков Alexa вы должны указать конечную точку HTTPS на порту 443 (или лямбда).

На самом деле, я думаю, что ограничение порта является общим, которое применяется к ресурсам AWS, обращающимся к ресурсам, внешним по отношению к AWS, поэтому я не ожидал бы, что оно изменится в ближайшее время.

Возможные обходные пути включают лямбда-прокси и прокси-службу, запускаемую инструментами BST, хотя в вашем случае это похоже на то, что вы можете просто перенастроить свой маршрутизатор.

person Tom    schedule 14.01.2017
comment
Я изменил порт в моем коде на 443, и порт переадресовал 443. Но когда я открываю свой браузер, https://xxx.xxx.xxx.xxx:443 переходит на страницу моего маршрутизатора вместо моей службы. Как настроить работу на 443 без конфликтов? - person user3685285; 15.01.2017
comment
Когда вы открываете его в браузере, вы находитесь за маршрутизатором. Подключитесь к нему с внешнего компьютера с помощью curl, чтобы увидеть, работает ли он по-другому извне. Конфликт может быть только внутри. - person Michael - sqlbot; 15.01.2017
comment
Привет, Том, ты можешь подробнее рассказать об этом? Я знаю, это было давно. У меня есть навык умного дома и лямбда, которые я пытаюсь связать с приложением Alexa. Это не удается, потому что моя служба oauth 2.0 работает на https, но на 8123. Предполагая, что проблема в этом. Он работает при тестировании, но не при связывании. Я понятия не имею и не могу найти ничего легкого для понимания, которое описывает, как использовать лямбда, чтобы обойти это или прокси. Я предполагаю, что что-то работает на серверах Amazon, которые прослушивают 443, и он получает запросы, поэтому Amazon доволен, а затем перенаправляет эти запросы на мой сервер через мой порт? - person John; 20.11.2019
comment
@John Извини, я не спрашивал последние пару лет. - person Tom; 21.11.2019