質問

SSLに関する別の質問があります。

スマートクライアントがあり、ClickOnceを使用して展開します。このスマートクライアントアプリケーションでは、HTTPS Webサービスを呼び出します。このHTTPS Webサービスへのアクセスを許可するには、信頼されたルート証明機関をインストールする必要があります。

「ClickOnce」を完全に維持したい、つまり、ClickOnceを実行する以外はクライアントマシンで何もしたくない=クライアントに証明書をインストールする必要がない手動で(またはそうではない)マシンをインストールしますが、Smart Clientの前にインストールする必要があります。パッケージに含めると、最初にインストールされます。

私の問題は:

インターネットで読むと、「信頼されたルート証明機関」をインストールする方法がありません。クライアントマシンの管理者権限を持たない

正しいですか?

それが正しい場合、この目標を達成するための別の解決策がありますか、それとも不可能ですか?

事前にお願いします。

役に立ちましたか?

解決

  

正しいですか?

はい、「それは正しいですか?」管理者権限がないとクライアントマシンに証明書をインストールできません。これは、証明書の概念の全体的な目的を損なうためです。信頼できない証明書は、ユーザーの明示的な操作なしに魔法のように信頼されることはありません。

  

私は、私が   ルート証明機関   すでに信頼されたルートにある   認証局(Thawte、...)   、それは動作するはずですか?

「CA」によって仮定しています;実際には「証明書」を意味します。 CAは認証局の略です。 Thawte、Verisignなどは認証局です。認証局から証明書を取得します。答えは「はい」です。(あなたが言ったように)彼らはすでに世界中のほぼ全員から信頼されているからです。

他のヒント

これがあなたのために働くというのは100%ではありませんが、https(開発マシンではCAによって発行された証明書がない)を使用してWebサービスを介して通信するユニットテストでは、これを行います:

クライアントでは、次の静的メソッドを呼び出します。 (私たちはWSE3でWebサービスを使用していますが、これに依存するかどうかはわかりません)

    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;
    }

MSDNでの二重チェック私は、むかしむかし、このコードをここからまっすぐに取ったことを知っています。 http://msdn.microsoft.com/en- us / library / system.net.security.remotecertificatevalidationcallback.aspx

Godspeed!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top