Доверенные корневые центры сертификации ClickOnce

StackOverflow https://stackoverflow.com/questions/801183

  •  03-07-2019
  •  | 
  •  

Вопрос

У меня может возникнуть еще один вопрос по поводу SSL.

У меня есть Smart Client, и я развертываю его с помощью ClickOnce.В этом приложении Smart Client я вызываю веб-службу HTTPS.Мне нужно установить доверенные корневые центры сертификации, чтобы предоставить доступ к этой веб-службе HTTPS.

Допустим, я хочу сохранить его полностью «ClickOnce», то есть я не хочу ничего делать на клиентском компьютере, кроме запуска ClickOnce = Я не хочу устанавливать сертификат на клиентском компьютере вручную (или нет), но я хочу, чтобы он был установлен до установки Smart Client.Я бы включил его в пакет, и он будет установлен в первую очередь.

Моя проблема:

Как я читал в Интернете, я не могу установить «Доверенные корневые центры сертификации», не имея прав администратора на клиентском компьютере.

это правильно?

если это правда, видите ли вы другое решение для достижения этой цели или это просто невозможно?

Заранее спасибо.

Это было полезно?

Решение

это правильно?

Да, если вы имеете в виду "это правильно?" Вы не можете установить сертификаты на клиентскую машину без прав администратора, потому что это подорвало бы всю цель концепции сертификата.Недоверенные сертификаты не могут волшебным образом стать доверенными без явных действий со стороны пользователя.

Я предполагаю, что если я получу CA от одного из органов по сертификации Root, которые уже находятся в доверенных коррекционных органах (Thawte, ...), это должно работать?

Я предполагаю, что «CA» вы на самом деле имеете в виду «сертификат». CA означает полномочия по сертификатам.Thawte, Verisign и др.ЯВЛЯЮТСЯ центрами сертификации.Вы получаете сертификаты от центров сертификации.И ответ — да, это сработает, потому что (вы это сказали) им уже доверяют практически все в мире.

Другие советы

Я не на 100% уверен, что это сработает для вас, но для наших модульных тестов, в которых мы общаемся через наш веб-сервис с https (у которого на машинах разработчиков нет сертификата, выданного центром сертификации), мы делаем следующее:

В клиенте мы вызываем этот статический метод:(мы используем веб-сервисы с WSE3, не уверен, зависит ли это от этого)

    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

Боже мой!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top