mmc를 통해 로컬 인증서를 설치 한 API에 액세스하려고 시도합니다. 서비스를 테스트 할 수 있도록 로컬 컴퓨터에서 수행했습니다. 나는 테스트를 위해 간단한 winforms 앱을 사용하고있다. 내가 dev에 목적을 위해 예외를 우회하기를 바라고있어 이것이 자기 서명 된 인증서 서버 쪽이라고 가정합니다.SSL HttpWebRequest 문제
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(postData);
req.Method = "POST";
req.ContentType = "application/x-www-form-uriencoded";
req.KeepAlive = true;
req.AllowAutoRedirect = false;
X509Store store = new X509Store(StoreName.Root,StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
X509Certificate cert = new X509Certificate();
for (int i = 0; i < store.Certificates.Count; i++)
{
if (store.Certificates[i].SerialNumber == "XXXX")
{
cert = store.Certificates[i];
}
}
req.ClientCertificates.Add(cert);
req.PreAuthenticate = true;
try
{
using (WebResponse resp = req.GetResponse())
{
Stream responseStream = resp.GetResponseStream();
using (StreamReader responseStreamReader = new
StreamReader(responseStream, new ASCIIEncoding()))
{
respString = responseStreamReader.ReadToEnd();
}
}
}
catch (Exception ex)
{
// there is a problem
}
나는 시도 캐치에 다음과 같은 예외를 받고 있어요 : 기본 연결이 닫혔습니다 다음 SSL/TLS 보안 채널에 대한 트러스트 관계를 설정할 수 없습니다.
- 는 내가 진행하고 데이터를 얻을 수 있습니다 그럼 내가 경고주의를 얻을 브라우저의 API를 URL로 이동하지만 때 변수 "인증서"
- 의 인증서 개체가 않습니다.
예외를 억제하는 등의 stackoverflow에서 권장되는 다른 수정 프로그램을 시도했습니다.
ServicePointManager.ServerCertificateValidationCallback = 새로운
RemoteCertificateValidationCallback ( 대리인 {true를 반환} )를;
나는 이와 비슷한 질문을 꽤 많이하고 있으며, 나는 그들 모두를 읽었습니다. 감사하는 제안을 해주셔서 감사드립니다.