문제

간단한 XML 기반 웹 서비스에 액세스하는 데 사용되는 PKCS#12 인증서가 발행되었습니다. PKCS#12 파일을 Windows (Vista)에로드하면 브라우저를 사용하여 서비스에 액세스 할 수 있습니다.

PKCS#12를 OS 인증서 컬렉션에로드하지 않고 애플리케이션을 통해 서비스에 액세스하려고 시도하면 다음 코드를 작성했습니다.

// The certificate i'm using can not be authenticated as it is a development one. 
// For now, just ignore it.
static bool myRemoteCertificateValidationCallback(
         Object sender,
         X509Certificate certificate,
         X509Chain chain,
         SslPolicyErrors sslPolicyErrors
)
{ return true; }

static void Main(string[] args)
{
    ServicePointManager.ServerCertificateValidationCallback = myRemoteCertificateValidationCallback;
    X509Certificate Cert = new X509Certificate(@"certificatefile.p12","medialab");
    HttpWebRequest Req = (HttpWebRequest)WebRequest.Create("https://ServiceURL");
    Req.ClientCertificates.Add(Cert);

    Stream S = Req.GetResponse().GetResponseStream();
    TextReader TR = new StreamReader(S);
    string Ret = TR.ReadToEnd();
    Console.Write(Ret);

}

안타깝게도이 코드는 실패하고 System.net.webexception을 얻습니다. 요청이 중단되었습니다. SSL/TLS 보안 채널을 만들 수 없습니다. PKCS#12 파일을 Windows에로드하면 코드가 갑자기 작동한다는 것을 알았습니다.

파일만으로도 Windows 인증서 저장소를 사용하지 않으려면 어떻게해야합니까?

고마워요, 보아스

더 많은 정보 : SP1을 Visual Studio에 적용하면 이제 다른 예외가 나타납니다. "SSPI에 대한 호출이 실패하고 내부 예외를 참조하십시오."내부 예외가있는 내부 예외를 참조하십시오. "

도움이 되었습니까?

해결책

인증서에 인증서를 설치해야합니다. 가장 쉬운 방법은 IE를 사용하고 인증서를 가져 오는 것입니다.

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