Frage

Ich verstehe, dass ich, wenn ich die Authentifizierung in WCF verwenden möchte, ein Zertifikat auf meinem Server installieren muss, mit dem WCF zum Verschlüsselung von Daten zwischen meinem Server und meinem Client verwendet wird.

Zu Entwicklungszwecken glaube ich, dass ich den makecert.exe utile verwenden kann. ein Entwicklungszertifikat erstellen.

Was ist der schlechteste Das kann passieren, wenn ich dieses Zertifikat in der Produktionsumgebung verwende?

und...

Warum kann ich dieses Zertifikat nicht in der Produktionsumgebung verwenden?

und ...

Was wird das Zertifikat in diesem Szenario tatsächlich tun?

Bearbeiten: Eine weitere Frage hinzugefügt

endlich...

In einem Szenario, in dem auf der Website ein Zertifikat für den HTTPS -Support installiert ist, kann das gleiche Zertifikat auch für die WCF -Dienste verwendet werden?

Hinweis zu meiner Anwendung: Es ist ein NettCP -Client- und Serverdienst. Die Benutzer melden sich mit demselben Benutzernamen und dem gleichen Kennwort an, das sie für die Website verwenden, die in Clear -Text übergeben wird. Ich würde gerne die U/N + P/W in ClearText an WCF übergeben, aber dies ist im Rahmen nicht zulässig, und es muss ein Zertifikat vorhanden sein. Ich möchte jedoch aufgrund von Budgetbeschränkungen kein Zertifikat kaufen!

(Entschuldigung für die möglicherweise dumme Frage, aber ich verstehe das wirklich nicht, würde also einige Hilfe damit begrüßen).

War es hilfreich?

Lösung

Nun, nichts Wichtiges wird passieren, wenn Sie ein Entwicklerzertifikat in der Produktionsumgebung verwenden. Schließlich ist ein Zertifikat ein Zertifikat, und die Verschlüsselung, die es bereitstellt, entspricht jedem kommerziellen Zertifikat.

Da das Zertifikat jedoch nicht von einer vertrauenswürdigen Zertifikatsbehörde unterzeichnet wird, garantiert es dem Kunden nicht, dass du bist du. Lassen Sie mich dies anders ausdrücken: Wenn Ihr Dienst eine einfache Webseite wäre, würde der Browser sagen, dass das Zertifikat ungültig ist.

Ein Zertifikat zur Bereitstellung von SSL in einem Webserver ist ein Zertifikat, das dem Client mitteilt, dass die Domain eine vertrauenswürdige und verifizierte Domäne ist und dass die Zertifikatberechtigung dafür bürgen kann.

Also ein Zertifikat von erstellt von makecert.exe Wäre so wie Sie Ihren Namen in ein Stück Papier schreiben und einen Beamten des Gesetzes sagen, dass dies Ihr Führerschein ist.

Andere Tipps

  1. Ein Zertifikat muss von einer sogenannten Zertifikatbehörde ausgestellt werden, um vertrauenswürdig zu sein. Selbst unterschriebene Zertifikate (erstellt von MakeCert usw.) sind nicht vertrauenswürdig, und jeder, der auf Ihrer Website surft, erhält ein "ungültiges Zertifikat" (spezifischer: "Das Zertifikat ist nicht vertrauenswürdig, weil es selbstsigniert ist) Warnung. So, schlimmsten Fall, Die Leute werden nicht auf Ihre Website gehen, weil sie ihr nicht vertrauen.

  2. Sie können Ihr selbst signiertes Zertifikat in der Produktion verwenden, es ist jedoch aus oben erläuterten Gründen nicht ratsam.

  3. Das Zertifikat wird verwendet, um eine sichere Verbindung (HTTPS) zwischen dem Client und dem Server herzustellen. Daneben soll es die Identität des Servers überprüfen. Die Identität Ihres Servers kann nicht garantiert werden, wenn Ihr Zertifikat selbst signiert ist.

  4. Wenn Sie in IIS ein Zertifikat auf einer Website installieren, können alle unter dieser Website bereitgestellten WCF -Dienste das Zertifikat verwenden.

Kurz gesagt, verwenden Sie ein selbstsigniertes Zertifikat für die Entwicklung (schauen Sie sich ein Tool namens SSL -Diagnostik Für eine einfache Zertifikaterzeugung in IIS), aber verwenden Sie wirklich ein Produktionszertifikat für die Produktion!

"Was ist das Schlimmste, das passieren kann, wenn ich dieses Zertifikat in der Produktionsumgebung verwende", schlägt fehl und fehlschlägt Ihren gesamten Service.

"Warum kann ich dieses Zertifikat nicht in der Produktionsumgebung verwenden?"
Die in Ihrem generierten Zertifikat angegebene Zertifikatbehörde ist nicht von den Kunden bekannt. Daher kann das Zertifikat nicht validiert/verwendet werden.

"Was wird das Zertifikat in diesem Szenario tatsächlich tun?" Der öffentliche Schlüssel wird von Kunden verwendet, um die Kommunikation zu verschlüsseln. Dies wird garantieren, dass nur der Eigentümer des privaten Schlüssels (in diesem Fall der Server) ihn erneut entschlüsseln kann (private öffentliche Tastaturen sind asymetrische Verschlüsselung)

Hoffe das hilft,

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