1

自己署名証明書を使用して認証するNode.js httpsサーバがあります。私はドメイン名の代わりに私のパブリックIPアドレス(xxx.xxx.xxx.xxx)を使用しています。これをテストするために、私はルータにポート8080を転送し、https://xxx.xxx.xxx.xxx:8080に行きました。確かに、ロックシンボルはありません。 Chromeは証明書を認識し、安全な接続を確立します。Alexaスキルキットがhttpsサーバに接続できません

もしChromeが私のWebサービスを見ることができれば、なぜAlexaはできないのですか?私は基本的に手順hereに従った。 Amazon Developer Portalに新しいAlexaスキルを作成し、私のopenssl証明書を作成してアップロードしました(実績があることが証明されています)、エンドポイントをhttps://xxx.xxx.xxx.xxx:8080に設定しました。だからAlexaは私のWebサービスにアクセスできるはずです。その代わり、私が取得:

テストエラー(アマゾン開発者ポータルでのテスト)

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

(Alexaのアプリでサービスを起動するためにエコーを求めて)カードエラー

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

+0

スタックオーバーフローは、プログラミングおよび開発の質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[スーパーユーザー](http://superuser.com/)や[情報セキュリティスタックエクスチェンジ](http://security.stackexchange.com/)の方が良いかもしれません。また、[Dev Opsについての質問はどこに投稿しますか?](http://meta.stackexchange.com/q/134306)。 – jww

+0

あなたの証明書はどのように見えますか?投稿してください。 IPアドレス 'xxx.xxx.xxx.xxx'とは何ですか?それはSANとしての証明書にありますか? Alexa Web Serviceは証明書の検証にどのような標準を使用しますか?また、[opensslで自己署名証明書を作成するには?](http://stackoverflow.com/q/10175812/608639) – jww

+0

私は同様の問題を抱えていました。 ip。 – GeekBoy

答えて

0

Alexaスキルを達成するには、ポート443(またはラムダ)にHTTPSエンドポイントを指定する必要があります。

実際には、ポートの制限はAWS外部のリソースにアクセスするAWSリソースに適用される一般的なものだと思いますので、すぐに変更する予定はありません。

可能な回避策には、ラムダプロキシとBSTツールで実行されるプロキシサービスがありますが、あなたの場合はルータを再設定するだけのように聞こえるかもしれません。

+0

コード内のポートを443に変更し、ポートを443に転送しました。しかし、私のブラウザで開くと、https://xxx.xxx.xxx.xxx:443が自分のサービスではなく私のルータページに移動します。どのように矛盾することなく443で動作するように設定しますか? – user3685285

+0

ブラウザで開くと、ルータの後ろにいます。 'curl'を使って外部のマシンから接続し、外部とは違う動作をするかどうかを確認します。紛争は内部にしかないかもしれません。 –

関連する問題