web-dev-qa-db-ja.com

Dockerでリダイレクト用のhttpsポートを特定できませんでした

私は使用して80ポートから公開されているasp.net-core webapiサービスをデプロイしようとしています:

docker run --rm -p 80:80 --name radicadorrest -it radicadorrest

エラー:

警告:Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager [35] XML暗号化が構成されていません。キー{e60978fd-16bc-4ff2-8525-39b5d0c36be5}は、暗号化されていない形式でストレージに保持される場合があります。ホスティング環境:本番コンテンツのルートパス:/ app待機中: http:// [::]:8 アプリケーションが開始されました。 Ctrl + Cを押してシャットダウンします。

警告:Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware [3]リダイレクト用のhttpsポートを特定できませんでした。アプリケーションをシャットダウンしています...

別のポートを使用しようとしましたが、同じエラーが発生します。

Dockerバージョン:

クライアント:バージョン:17.09.1-ce
APIバージョン:1.32
Goバージョン:go1.8.3
Gitコミット:19e2cf6
作成:2017年12月7日(木)22:25:13
OS/Arch:linux/AMD64

サーバー:バージョン:17.09.1-ce
APIバージョン:1.32(最小バージョン1.12)
Goバージョン:go1.8.3
Gitコミット:19e2cf6
ビルド:Thu Dec 7 22:26:35 2017 OS/Arch:linux/AMD64 Experimental:false

私も同じ結果でWindowsを試してみました。

2つの警告はまったく無関係です。

DataProtectionの警告については、提示されたガイダンスに従うことをお勧めします ここでは公式のASP.Net Coreドキュメント 。関連するソースコードと決定についてより深く掘り下げることに関心がある場合は、これを見ることができます 関連するASP.Net GitHub PR

Httpsリダイレクトの警告については、_startup.cs_ファイルからhttpsリダイレクトポリシーを単に削除することをお勧めします。これは、実際にコンテナにこのポリシーを使用している場合を除き、通常はapp.UseHttpsRedirection();を介して定義されます。実際に 証明書をセットアップ して、コンテナのHTTPSポートを公開する必要があります。

1
David Tesar

これは、ASP.NET Coreプロジェクトを作成したときに、[HTTPS用に構成]オプションを選択したためです。これにより、WebアプリにSSL接続を適用するHttpsRedirectionMiddlewareミドルウェアが追加されます。作成したdockerファイルは、HTTPポートのみを指定しています。したがって、HttpsRedirectionMiddlewareは失敗し、アプリケーションをシャットダウンしています。基本的に、プロジェクトの作成中に「HTTPSの設定」オプションを選択しなかった場合は、問題ないか、SSLが正しく設定されていることを確認します(ポートと証明書)。

0
Shinva