HTTPWebRequestリモート証明書名の不一致
-
19-08-2019 - |
質問
HTTPWebRequest
を使用してSSL呼び出しを行おうとしていますが、信頼を確立できないと言って失敗し続けています。 ServicePointManager.ServerCertificateValidationCallback
にコールバックを追加しましたが、true
を返すことは常に機能します。ただし、それよりも少し安全にしたいです。検証メソッドのSslPolicyErrors
を見ると、RemoteCertificateNameMismatch
エラーが発生しているようです。この種のエラーを引き起こすために正しく一致しないものは何ですか?
(編集:回答のコメントを参照) 私がアクセスしているサイトでは、SSLを介したHTTPBasicとv1.api.serviceprovider.comのようなURLを使用し、*。serviceprovider.comに発行された証明書を使用しています。
解決
一般的な証明書の問題:
- 信頼できる証明書プロバイダーによって発行されていない証明書(信頼チェーンに含まれている必要があります)
- 証明書の有効期限が切れています
この特定のエラーは、通常、アクセスしているサイトに対して証明書が発行されていないことを意味します。例:
- <!> quot; www.yoursite.com <!> quotの違い;および<!> quot; yoursite.com <!> quot; (それらは異なります。一部の有名人はこれを間違えていますが、それは本当に私を困らせます...)
- 証明書の名前の代わりにIPアドレスとしてアクセスします。またはv / v
- <!> quot; server1、yoursite.com <!> quot;にリダイレクトするロードバランサー<!> quot; yoursite.com <!> quot; からの証明書を提供します
- サイトではなく<!> quot; server1 <!> quot;の証明書を発行している<!> quot; server1 <!> quot;にユーザーを静かに渡すロードバランサ
- (コメントを編集)複数レベルに発行されたワイルドカード証明書-foo.bar.somesite.orgにアクセスしているときに* .somesite.orgに発行された
これらのほとんどは、サイトに移動し、ブラウザから表示される警告を読んで、発行された証明書を調べることで簡単に識別できます。
所属していません StackOverflow