Frage

Ich versuche, einen SSL-Aufruf HTTPWebRequest zu machen und seine ständig versagt sagen, es ist kein Vertrauen aufbauen kann. Ich habe einen Rückruf hinzugefügt ServicePointManager.ServerCertificateValidationCallback und Rückkehr true funktioniert immer. Allerdings würde ich gerne Dinge ein wenig sicherer als das sein. Mit Blick auf die SslPolicyErrors in der Validierungsmethode scheint es, dass ich ein RemoteCertificateNameMismatch Fehler. Was ist nicht richtig passende bis diese Art von Fehler zu verursachen?

(edit: siehe Kommentare in der Antwort) Die Seite, die ich Anwendungen Httpbasic über SSL und eine URL so etwas wie v1.api.serviceprovider.com bin Zugriff mit einem Zertifikat ausgestellt * .serviceprovider.com.

War es hilfreich?

Lösung

Allgemeines Zertifikat Themen:

  • Zertifikat nicht von einem anerkannten Zertifizierungsanbieter ausgestellt (muss in der Vertrauenskette sein)
  • Zertifikat abgelaufen

Dieser spezifische Fehler bedeutet in der Regel, dass das Zertifikat nicht für die Website ausgestellt wird Sie schlagen. Beispiele:

  • Unterschied zwischen „www.yoursite.com“ und „yoursite.com“ (sie sind unterschiedlich, einige große Namen dieses falsch, was mich wirklich ärgert ...)
  • als IP-Adresse Zugriff anstelle des Namens auf dem cert; oder v / v
  • eine Ausgleichslast Umleitung Sie auf "server1, yoursite.com" aber Sie das CERT von "yoursite.com"
  • geben
  • ein Load-Balancer vorbei Sie lautlos auf „server1“, die Zertifikate für „server1“, nicht die Website
  • ist die Ausstellung
  • ( Bearbeiten siehe Kommentar ) ein Wildcard-Zertifikat für mehrere Ebenen ausgegeben - das heißt, erteilt an * .somesite.org, wenn Sie schlagen foo.bar.somesite.org

Die meisten davon sind leicht erkennbar durch auf der Website navigieren und die Warnungen zu lesen, die Ihr Browser Sie und Inspizieren das Zertifikat gibt, die ausgegeben wurde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top