私はIdentityServer4を学ぼうとしているので、ここのドキュメントから始めましたhttps://identityserver4.readthedocs.io/en/dev/quickstarts/0_overview.htmlそしてこれで終わりましたhttps://identityserver4.readthedocs.io/en/dev/ quickstarts/1_client_credentials.html .
http を使用している限り、すべてがうまく機能しますが、https の使用に切り替えるとすぐに、クライアント テスターのコードの最初の行
var disco = await DiscoveryClient.GetAsync("https://localhost:44384");
ハングし、最終的にタスクがキャンセルされた例外を受け取ります。
すべてをhttpに戻すだけで、再び機能し始めます。
実際の IdentityServer ソリューションでは、launchSettings.json で applicationUrl と launchUrl を変更しました。
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "https://localhost:44384/",
"sslPort": 44384
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"Mvcg.IdentityServer": {
"commandName": "Project",
"launchUrl": "https://localhost:44384",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
そして Program.cs の .UseUrls
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseUrls("https://localhost:44384")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
クライアント ソリューションでは、上記のように、検出エンドポイントを呼び出すコードを http の代わりに https を使用するように変更しました。
var disco = await DiscoveryClient.GetAsync("https://localhost:44384");
明確にするために、記載されているすべての項目を http と https の間で変更するだけで、http では機能しますが、https では機能しません。2 つのテスト間で他に何も変更はありません。
https が機能しない原因となっているものはありますか?