OWinとThinktecture Identity Serverを使用してSSOを設定しようとしていますが、SSL証明書を取得することができません。少なくともそれが問題だと思う。 Visual Studioにいるときはすべて正常に動作しますが、マシンでIISを使用しようとすると、「検証手順に従ってリモート証明書が無効です」というエラーが表示されます。 veはIISを使用してみましたが、クライアントはVisual Studioで実行されているインスタンスをトークン認証機関として扱うため、同じエラーが発生します。
私の場合、サンプル(ID3v2用)を処理しようとして、ローカルで実行されている証明書エラーを取得しようとしていました。一部のサンプルはowinを介してセルフホスティングを行うこともあるため、ホスト側の証明書をどこで取得しているかさえわかりません。
とにかく、私の修正は、証明書を信頼されたルートにコピーすることでした:
できた楽しい。
私のために多くの時間を費やした後、解決策は非常に簡単でした
次に、(IDサーバーを実行した後)ソリューションを開いて、Visual Studioを実行し、IIS Express(SSL)に新しい証明書を生成するかどうかを尋ねられました。[はい]をクリックすると、正常に動作し始めました。
ローカルコンピューターの信頼されたルート証明機関ストアに使用する証明書IISを追加する必要があります。
信頼できる人のストアへの証明書の追加は、作成者が提供する 例のreadmeファイル に従って十分です。
ルートストアはCA用であり、そこに何かを追加すると、その機関は信頼されるだけでなく、それによって署名された証明書も自動的に信頼されるため、運用シナリオではより良いはずです。
Microsoft reference から詳細を確認できます。 2ストアの短い説明の抜粋:
ルート:信頼されたルート証明機関(CA)の証明書ストア。
TrustedPeople:直接信頼できる人とリソースの証明書ストア。
追伸:私はそれをテストし、動作するようにしました。私のシナリオでは、マシンAにISと、マシンAとBでISを使用する一連のWebアプリケーションがあります。マシンBのIIS証明書は、 1つはAとISによって使用されていましたが、マシンBの信頼できる人のストアに追加しただけで、「証明書エラー」は消えました。
上記の設定が完了し、URLを「 https:// localhost 」として指定したにもかかわらず、代わりに「 https:// MachineName "。つまり、マシン名は証明書の「発行先」の値と一致する必要があります
.Net Coreの場合、TrustServerCertificate = FalseをTrustServerCertificate = Trueに変更すると、以下のように問題が解決します。
"DataConnect": "Server=tcp:127.0.0.1,1433;Initial Catalog=dbName;Persist Security Info=False;User ID=username;Password=password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;"