Pergunta

Eu migth tenho outra pergunta sobre SSL.

Eu tenho um Smart Client e eu implantá-lo usando ClickOnce. Nesta aplicação Smart Client, eu chamar um serviço Web HTTPS. Eu preciso de modo a instalar um de Certificação Raiz Confiáveis ??Autoridades para dar acesso a este serviço Web HTTPS.

Vamos dizer que eu quero mantê-lo totalmente "ClickOnce", o que significa que eu não quero ter nada a fazer na máquina do cliente, exceto executar o ClickOnce = Eu não quero ter que instalar o certificado na máquina cliente manualmente (ou não) mas eu quero tê-lo instalar antes do Smart Client. Eu incluí-lo no pacote e vai ser a primeira coisa a ser instalado.

O meu problema é:

Como eu li na internet, não há nenhuma maneira que eu poderia instalar um "Certificação Raiz Confiáveis ??Autoridades" sem ter direitos de administrador na máquina do cliente

é certo?

se é certo, você vê outra solução para alcançar este objetivo ou que não é apenas possível?

Thx antecipadamente.

Foi útil?

Solução

é certo?

Sim, supondo que você quer dizer "que é correto?" Você não pode instalar certificados em uma máquina cliente sem direitos de administrador, porque isso prejudicaria todo o propósito do conceito certificado. certificados não confiáveis ??não podem magicamente se tornar confiável sem ação explícita do usuário.

Eu acho que, se eu conseguir um CA de um dos Autoridades de Certificação Raiz que já estão na Raiz Confiável Autoridades de Certificação (Thawte, ...) , Ele deve funcionar?

Estou assumindo por "CA" você "certificado." Realmente significa CA significa Autoridade de Certificação. Thawte, Verisign, etc, são Autoridades de Certificação. Você obter certificados de Autoridades de Certificação. E a resposta é sim, que vai funcionar porque (você disse que) eles já são confiáveis ??por todos praticamente no mundo.

Outras dicas

Eu não estou 100% de que isso vai funcionar para você, mas para os nossos testes de unidade em que comunicam através do nosso serviço web com https (que nas máquinas dev não tem uma cert que é emitido por uma CA), nós faça o seguinte:

No cliente, nós chamamos este método estático: (Estamos usando serviços web com WSE3, não sei se isso depende de que)

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

duplo controlo com MSDN I foud que eu era uma vez levou este código diretamente a partir daqui: http://msdn.microsoft.com/en- us / library / system.net.security.remotecertificatevalidationcallback.aspx

Godspeed!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top