2012-12-16 4 views
4

.NET 4.0 프레임 워크를 사용하여 서버를 HTTPS SOAP 서비스 호출 서버로 만들려고합니다. 클라이언트 측 서버에서 로컬 SSL 인증서를 추가하여 전화를받는 서버가 나를 식별 할 수 있도록하려고합니다..NET SOAP 클라이언트 요청에 SSL 인증서 추가

내가 추가하려고하는 인증서가 로컬 컴퓨터의 저장소에 있지 않습니다 (문제가 지속되는 경우에도 문제가 계속 발생 함). 내 컴퓨터에 로컬 파일로 배치 된 .cer 파일.

코드가 제대로 작동하고 인증서를 추가하는 것처럼 보일 수 있지만 내 System.Net.trace.log 파일은 모든 호출에 다음 오류를 계속 추가합니다. "LocalMachine 저장소 또는 CurrentUser 저장소에서 인증서를 찾을 수 없습니다. " 내가 요청하려고하는 서버가 내 요청에 첨부 된 인증서가 없다는 것을 계속 알려줍니다. 내가 얻는 마지막 WebException은 다음과 같습니다. "요청이 중단되었습니다. SSL/TLS 보안 채널을 만들 수 없습니다." 내 GetCertificate 기능 :

private X509Certificate2 GetCertificate() 
{ 
    X509Certificate2 cert; 
    try 
    { 
     cert = new X509Certificate2("MyCertificateFoder\\MyCertificate.cer"); 
    } 
    catch (Exception ex) 
    { 
     throw; 
    } 
    return cert; 
} 

서비스 전화 번호 :

X509Certificate2 cert = GetCertificate(); 
ServiceClient.ClientCertificates.Add(cert); 
serviceMethodResponse = ServiceClient.ServiceMethod(serviceMethodRequest); 

어떤 조언을 주셔서 감사합니다.

감사

답변

1

주요 여기 실수 클라이언트 인증과 SSL을 사용하는 경우, (클라이언트 개인 키, 인증서, 인증서 체인, 루트 권한 인증서 포함) .pfx 파일을 사용해야한다는 것입니다.

.cer 파일이 아닙니다.

이것은 오류의 원인입니다.