0

http에서 https로 내 전체 Rest 서비스를 전달하려고합니다.Xamarin PCL 자체 서명 인증서 Android 및 IOS

자체 서명 인증서를 만들었습니다. IIS Express에 자체 인증서가 있습니다. Chrome에서 유효성을 검사하면 우편 배달부와 완벽하게 작동합니다. 내 휴식 서비스는 http 및 https에서 작동합니다.

PCL 프로젝트 (IOS 및 Android)를 사용하여 모든 것이 http 요청과 함께 정상적으로 작동하지만 https 요청에 예외가 있습니다. 예외 메시지는 널입니다.

Visual Studio 2015에서 직접 테스트 인증서를 만들려고했으나 속성 -> 서명에서이 단추를 사용할 수 없습니다.

또한 자체 서명 인증서를 신뢰할 수있는 루트로 설치하려고했지만 내 시뮬레이터와 나머지 서비스 간의 통신에는 성공하지 못했습니다.

public partial class MainPage : ContentPage 
{ 
    private string url = string.Empty; 
    private HttpClient _client; 


    public MainPage() 
    { 
     InitializeComponent(); 
     switch (Device.RuntimePlatform) 
     { 
      case Device.iOS: 
       _client = new HttpClient(new NSUrlSessionHandler()); 
       break; 
      case Device.Android: 
       _client = new HttpClient(); 
       break; 
     } 
     _client = new HttpClient(); 
     test(); 


    } 

    private async void test() 
    { 
     //url = "http://192.168.1.106:9630/PrototypeB.svc/Test"; 
     url = "https://192.168.1.106:44301/PrototypeB.svc/Test"; 
     try 
     { 
      var _content = await _client.GetStringAsync(url); 
      List<Test> _posts = JsonConvert.DeserializeObject<List<Test>>(_content); 
     } 
     catch (HttpRequestException e) 
     { 
      string test = e.Message; 
     } 
     catch (Exception e) 
     { 
      string test = e.Message; 
     } 
    } 
} 

가 어떻게 HTTPS 및 자체 서명 인증서를 사용하여 내 안드로이드와 IOS 시뮬레이터와 통신 할 수 있습니다 내 코드?

+0

https://stackoverflow.com/questions/45856383/how-can-i-add-a-ssl-certificate-on-my-apk/45875458#45875458 –

답변

-2

ServicePointManager을 사용하면 인증서 유효성 검사를 무시할 수 있습니다.

이처럼 iOS 및 Android 플랫폼에서 코드를 실행합니다

System.Net.ServicePointManager.ServerCertificateValidationCallback += (se, cert, chain, sslerror) => { 
         return true; 
        }; 

참고 :

ModernHttpClient Pro 또한이 기능을 제공하지만 무료는 아닙니다.