2013-10-14 2 views
0

서비스가 있습니다. HTTPS 프로토콜을 통해 연결하고 POST 메서드를 통해 데이터를 업로드 한 다음 결과를 다운로드해야합니다. 연결은 * .p12 형식의 사용자 개인 인증서로 인증됩니다.HTTPS 연결이 사용자 인증서로 서명되었습니다 - 다른 시스템에서 예기치 않은 동작이 발생했습니다.

나는 그것을 달성하기 위해 다음과 같은 기능을 작성했습니다 :

static public string PostLPDA(string fileName, string URL, string certificateFile) 
    { 
     X509Certificate cert = new X509Certificate(certificateFile); // importing certificate from file <===== 1 

     StreamReader sr = new StreamReader(fileName); 
     string postString = string.Format("Query={0}", sr.ReadToEnd()); // preparing data to send 

     const string contentType = "application/x-www-form-urlencoded"; 
     System.Net.ServicePointManager.Expect100Continue = false; 

     CookieContainer cookies = new CookieContainer(); 
     HttpWebRequest webRequest = WebRequest.Create(URL) as HttpWebRequest; 
     webRequest.Method = "POST"; 
     webRequest.ContentType = contentType; 
     webRequest.CookieContainer = cookies; 
     webRequest.ContentLength = postString.Length; 
     webRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1"; 
     webRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; 
     webRequest.ClientCertificates.Add(cert); //adding certificate 
     System.Net.ServicePointManager.ServerCertificateValidationCallback = 
      ((sender, certificate, chain, sslPolicyErrors) => true); // ignore untrusted site error <===== 2 

     StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream()); // <===== 3 
     requestWriter.Write(postString); 
     requestWriter.Close(); 

     StreamReader responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream()); 
     string responseData = responseReader.ReadToEnd(); 

     responseReader.Close(); 
     webRequest.GetResponse().Close(); 
     return responseData; 
    } 

모두 내 컴퓨터에서 작동 확인 - 예외, 오류가 없는지, 데이터가 성공적으로 업로드되고, 서비스의 적절한 응답이.

요청이 중단되었습니다 : SSL/TLS 보안 채널을 생성 할 수 없습니다

그러나 다른 모든 PC에 메시지 < ====== 3으로 표시 줄에 예외가,이

.

동일한 인증서 파일, 동일한 주소 및 동일한 데이터를 사용하고 있습니다. 결과는 오류이며 무엇이 잘못 되었는가를 판단 할 수 없습니다.

누군가 도움이 되십니까?

+0

certificateFile - 다른 컴퓨터에도 존재합니까? –

+0

일리아 : 예. 인증서 파일에 액세스 할 때 문제가 발생하면 오류가 발생했습니다 <===== 1 –

답변

0

그래, 해결책을 찾는다.

OS에 등록해야합니다. 그렇지 않으면 작동하지 않습니다.

어쨌든, 감사합니다.