문제

SSL에 대한 또 다른 질문이 있습니다.

스마트 클라이언트가 있고 ClickOnce를 사용하여 배포합니다. 이 스마트 클라이언트 응용 프로그램에서는 HTTPS 웹 서비스를 호출합니다. 이 HTTPS 웹 서비스에 액세스하기 위해 신뢰할 수있는 루트 인증 당국을 설치해야합니다.

ClickOnce를 실행하는 것을 제외하고 클라이언트 컴퓨터에서해야 할 일이 없다는 것을 의미합니다. 그렇지 않지만 스마트 클라이언트 전에 설치하고 싶습니다. 나는 그것을 패키지에 포함시키고 가장 먼저 설치해야 할 것입니다.

내 문제는 다음과 같습니다.

인터넷에서 읽을 때 클라이언트 컴퓨터에 관리자 권한이 없으면 "신뢰할 수있는 루트 인증 당국"을 설치할 수있는 방법이 없습니다.

맞아?

그것이 맞다면,이 목표를 달성하기위한 또 다른 솔루션이 보이나요? 아니면 불가능합니까?

미리 당신을 미리.

도움이 되었습니까?

해결책

맞아?

그렇습니다. "그게 맞습니까?" 인증서 개념의 전체 목적을 약화시키기 때문에 관리자 권한이없는 클라이언트 시스템에 인증서를 설치할 수 없습니다. 신뢰할 수없는 인증서는 사용자의 명시 적 조치없이 마술처럼 신뢰할 수 없습니다.

이미 신뢰할 수있는 루트 인증 당국 (Thawte, ...)에있는 루트 인증 당국 중 하나로부터 CA를 받으면 효과가 있을까요?

나는 "CA"에 의해 실제로 "인증서"를 의미한다고 가정합니다. CA는 인증 기관을 나타냅니다. Thawte, Verisign 등은 인증 당국입니다. 인증 기관으로부터 인증서를 얻습니다. 그리고 그 대답은 그렇습니다. 그것은 (당신이 그것을 말 했음) 그들이 이미 세계의 거의 모든 사람들에 의해 이미 신뢰되기 때문에 효과가있을 것입니다.

다른 팁

나는 이것이 당신에게 효과가있을 것이라는 100%가 아니라 HTTPS와 웹 서비스를 통해 통신하는 단위 테스트를 위해 (Dev 기계에는 CA에서 발행되는 인증서가 없음) 다음을 수행합니다.

클라이언트에서는이 정적 방법을 호출합니다. (우리는 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

Godspeed!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top