Clickonce 신뢰할 수있는 루트 인증 당국
-
03-07-2019 - |
문제
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!