UWP ServicePointManager.ServerCertificateValidationCallback


8

ServicePointManager.ServerCertificateValidationCallbackクラスとメソッドを利用して証明書のピン留めを実装するXamarin.Formsアプリがあります。AndroidとiOSでは、これは問題なく機能し、証明書キーが固定されている予想されるサービスへの接続を許可し、私が持っていないサービスへの接続を許可しません。

ただし、UWPでは、証明書キーが固定されているかどうかに関係なく、すべての接続が許可されます。証明書の検証メソッドから明示的にfalseを返しましたが、接続はまだ許可されています。証明書の検証方法をデバッグしてステップ実行したため、チェックが実行されていると確信しています。

検証チェックからfalseを返しているのに、何が原因で接続が続行されるのですか

ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertficate;
private static bool ValidateServerCertficate(
   object sender,
   X509Certificate certificate,
   X509Chain chain,
   SslPolicyErrors sslPolicyErrors
)
{
   return false;
}


コールバックは発生するため、同じ状況ではありません。
Jason

ないValidateServerCertficateあなたの側で呼び出しますか?
Nico Zhu-MSFT

ValidateServerCertificateが呼び出されていますが、戻り値は接続が許可されているかどうかには関係ありません
Jason

回答:


1

私はこれを修正することができました:

  1. UWPプロジェクトで、Package.appxmanifestファイルをダブルクリックします。
  2. Declarationsメニューの下で、Available DeclarationsドロップダウンからCertificatesを選択します。
  3. 追加ボタンをクリックします
  4. 排他的信頼オプションを選択します

これにより、次のxmlがPackage.appxmanifestファイルに挿入されます。

<Extensions>
   <Extension Category="windows.certificates">
     <Certificates>
       <TrustFlags ExclusiveTrust="true" />
     </Certificates>
   </Extension>
</Extensions>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.