Frage

I migth eine andere Frage über SSL hat.

Ich habe einen Smart Client und ich bereitstellen es Clickonce verwenden. In dieser Smart Client-Anwendung, nenne ich einen HTTPS-Web-Service. Ich brauche so eine vertrauenswürdigen Stammzertifizierungsstellen installieren Zugriff auf diesen HTTPS-Web-Service zu geben.

Lassen Sie uns sagen, dass ich will, es halten voll „Clickonce“, was bedeutet, dass ich nicht wollen, etwas haben, auf dem Client-Rechner zu tun, außer die Clickonce-run = Ich möchte nicht, das Zertifikat auf dem Client-Rechner installieren müssen manuell (oder nicht), aber ich mag es den Smart Client vor installieren. Ich würde es in dem Paket enthalten und wird das erste, was installiert werden.

Mein Problem ist:

Wie ich im Internet gelesen, es gibt keinen Weg ich eine „Vertrauenswürdige Stammzertifizierungsstellen“ installieren konnte, ohne auf dem Client-Rechner Administratorrechte mit

ist es richtig?

Wenn es richtig ist, sehen Sie eine andere Lösung dieses Ziel zu erreichen oder es ist einfach nicht möglich?

Thx Sie im Voraus buchen.

War es hilfreich?

Lösung

  

ist es richtig?

Ja, vorausgesetzt, Sie bedeuten, „ist das richtig?“ Sie können keine Zertifikate auf einem Client-Rechner ohne Admin-Rechte installieren, weil das den ganzen Zweck des Zertifikats Konzepts untergraben würde. Nicht vertrauenswürdige Zertifikate können nicht auf magische Weise ohne explizite Aktion von dem Benutzer vertraut sind.

  

Ich denke, wenn ich ein CA von einem der erhalten   Stammzertifizierungsstellen die   ist bereits in der Trusted Root   Zertifizierungsstellen (Thawte, ...)   , Es sollte funktionieren?

Ich gehe davon durch „CA“ Sie eigentlich bedeuten „Zertifikat“. CA steht für Certificate Authority. Thawte, Verisign usw. Zertifizierungsstellen. Sie erhalten Zertifikate von Zertifizierungsstellen. Und die Antwort ist ja, das wird funktionieren, weil (Sie es gesagt hat), sind bereits von nahezu jedem in der Welt vertraut.

Andere Tipps

Ich bin nicht 100%, dass dies für Sie arbeitet, aber für unsere Unit-Tests, wo wir mit https (das auf den Entwickler-Maschinen hat kein Zertifikat, das von einer Zertifizierungsstelle ausgestellt wird) über unseren Web-Service kommunizieren, wir dies tun:

Im Client wir diese statische Methode aufrufen: (Wir verwenden Web-Service mit WSE3, nicht sicher, ob dies auf das hängt)

    private static void DisableCertificateChainCheckingForTestCertificateCompatibility()
    {
        ServicePointManager.ServerCertificateValidationCallback = 
           new RemoteCertificateValidationCallback(
              ValidateServerCertificate);
    }

    internal static bool ValidateServerCertificate(
        object sender,
        X509Certificate certificate,
        X509Chain chain,
        SslPolicyErrors sslPolicyErrors)
    {
        if (sslPolicyErrors == SslPolicyErrors.None)
        {
            return true;
        }

        //Allow untrusted machines
        if (sslPolicyErrors == SslPolicyErrors.RemoteCertificateChainErrors)
        {
            return true;
        }

        // Do not allow this client to communicate with unauthenticated servers.
        return false;
    }

Doppelte Kontrolle mit MSDN ich foud heraus, dass ich es war einmal diesen Code nahm gerade von hier: http://msdn.microsoft.com/en- us / library / system.net.security.remotecertificatevalidationcallback.aspx

Godspeed!

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