SSL with the .NET Compact Framework 연결이 끊어졌습니다.

최근 프로젝트에 문제가 발생했습니다. 서버 측의 SSL 인증서가 바뀌었습니다.암호화 키의 길이는 1024비트에서 2048비트로 업그레이드됩니다.문제가 생겼어요.클라이언트의 마지막 통신은 모두 서버를 연결할 수 없다.그래서 해결했지, 해결하는 도중에 더 헷갈렸어.당초 웹 서비스 성명을 할 때 VS2005의 웹 인용을 통해 웹 서비스가 자동으로 생성됩니다.하지만 할 때 사용하는 자신의 기계,svr.url = http://XXX.XXX.XXX.XXX/webservice.aspx, 배치할 때 이svr.url이 svr로 바뀌었습니다.url=https://www.XXXXXX.com/webservice.aspx테스트를 통해 시뮬레이터든 휴대전화든 모두 순조롭게 통과되었지만 http와 https가 얼마나 다른지 고려하지 않았다.문제가 생기면 왜 인증서가 바뀌면 https가 서버에 연결되지 않는지 고민하기 시작합니까?자료 찾기http://msdn.microsoft.com/en-us/library/bb738067.aspx이 자료에 따르면 해당 플랫폼은 Windows Mobile 6 Professional Windows Mobile 6 Standard Windows Mobile 6 Classic Microsoft Visual Studio입니다.® .NET 2005            Microsoft .NET Compact Framework version 2.0은 나에게 완전히 어울린다. 아주 좋은 쓸데없는 말을 한 후에 마침내 SSL with the 를 보았다.NET Compact Framework 요점입니다. 보시면 However, in a.NET Compact Framework application you will not automatically get this option to confirm the use of a certificate with a problem. 가슴이 한바탕 싸늘하구나.라고 위에서 말했다.net Compact Framework 응용 프로그램은 인증서를 자동으로 받을 수 없습니다.어적신아...우리의 이전 소스는 어떻게 인증서를 검증하고 HTTPS에 연결했습니까?이 문제는 줄곧 원인을 찾지 못했다.나중에야 웹 참조 인용 성명 웹 서비스를 할 때라고 생각했어요.net Compact Framework가 무슨 일을 했는지 구체적으로 무슨 일을 했는지 모르겠어요.그러나 분명히 내가 본 그 문장이 말한 현상과 맞지 않는다.이 글은 CSDN에서 문제를 제기했습니다.http://topic.csdn.net/u/20100621/08/771fa62d-4f30-4ad8-acde-1be5486a9585.html그러나 아직까지 마땅한 대답을 얻지 못했다.자, 먼저 문제를 가장하기 전에 링크를 얻을 수 있는 것은 나와 반 푼의 관계가 없다.어쨌든 먼저 고객을 연결시키세요. 어떻게 처리합니까?아니면 그 글에서 한 사람이 블로그에서 해결 방법을 언급했는데 (마이크로소프트 공식이 이런 방법에 찬성하는지 모르겠지만 왜 다른 사람의 블로그를 인용하여 해결 방안을 설명해야 하는지) 이 사람이 ICertificatePolicy 인터페이스를 다시 실현했다. 이 인터페이스는 인증서 인증
public class TrustAllCertificatePolicy : ICertificatePolicy
{
    public TrustAllCertificatePolicy()
    {
    }
 
    public bool CheckValidationResult(ServicePoint sp,
        X509Certificate cert, WebRequest req, int problem)
    {
        return true;
    }
}
 
Public Class TrustAllCertificatePolicy  Implements System.Net.ICertificatePolicy
    Public Sub New()
    End Sub
    Public Function CheckValidationResult(ByVal sp As ServicePoint, _
 ByVal cert As System.Security.Cryptography.X509Certificates.X509Certificate, _
ByVal req As WebRequest,  _
ByVal problem As Integer) As Boolean Implements ICertificatePolicy.CheckValidationResult
        Return True
    End Function
End Class
 
을 한 후에 웹 서비스가 호출되기 전에이 Trust AllCertificatePolicy 클래스로 인증서 인증 처리를 관리합니다. 
system.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();
     system.Net.ServicePointManager.CertificatePolicy = new Trust AllCertificatePolicy () 이렇게 하면 인증서의 잘못된 문제를 피하고 인증서의 존재 여부나 정확성을 무시하고 인증서 검증을 통해 https의 암호화 전송을 할 수 있습니다.OK, 연결됐지.내 문제가 또 왔다. 인증서도 없는데 https는 어떻게 암호화를 하는지, 이 통신 연결은 도대체 암호화되었습니까?암호화 안 하면 https로 뭐해?고객의 데이터는 안전은 말할 것도 없고verisign에 SSL 인증서를 신청하는 돈은 물거품이 되지 않습니까?(본말이 좀 뒤바뀌었어, 가가) Https의 검증 문제를 해결하려면 링크가 암호화되어 있다는 것도 보증해야 하는 거지?그러면 https는 어떤 절차를 통해 암호화의 목적을 달성했습니까?질문이 있으면 구글에게 물어보고, 질문이 없으면 구글에게도 물어보세요.(왜 저탄소가 하나도 안 돼! 화합&조화 사회를 만들어야 되는 거 아니야?)HTTPS가 어떻게 연결되는지 오리지널을 조사해 보겠습니다. 만약에 전재된다면 출처를 밝히십시오.별: 전재를 환영합니다!   

좋은 웹페이지 즐겨찾기