2017-09-09 1 views
0

자체 서명 된 인증서를 사용하여 서버에 연결하려고하지만 오류가 발생합니다.
E/flutter (3781) : HandshakeException : 클라이언트의 핸드 셰이크 오류 (OS 오류 :
E/플러터 (3781) : CERTIFICATE_VERIFY_FAILED : 호스트 이름 불일치 (ssl_cert.c : 345))
코드, 내가 인증서 설정 :Flutter의 자체 서명 된 인증서에서 SSL 핸드 셰이크 오류가 발생했습니다.

String path = '/storage/sdcard0/server.crt'; 
SecurityContext context = new SecurityContext(); 
context.setTrustedCertificates(path, password: 'hello'); 
_client = new HttpClient(context: context); 

무엇 내가 잘못을?

SecurityContext를 설정하지 않으면 SSL 핸드 셰이크 오류가 발생합니다.

답변

0

에서 무료로 유효한 SSL 인증서를 얻을 수 있습니다 나는 여기 HttpClient.badCertificateCallback
을 사용 된 인증서 수용 할 수있는 코드입니다

_client = new HttpClient(); 
_client.badCertificateCallback = (X509Certificate cert, String host, int port) => true; 
0
+0

감사합니다. java와 같이 "모든 인증서에 신뢰"와 같은 것을 설정하는 변형이 있습니까? –

+0

다른 대답을 참조하십시오. 내가 보안을 원하지 않는다면 왜 암호화하는지 궁금해합니다. 몇 가지 이유를 생각할 수는 있지만 질문에서 알 수는 없습니다. –

+0

나는 개발을 위해 자체 서명 한 인증서를 사용하고 있으며,이 순간에는 진짜 인증서를 사용할 필요가 없습니다. HttpClient는 유효한 인증서가있는 사이트에서 작동합니다. 문제가 없습니다. –