简体   繁体   English

DioError HandshakeException:客户端握手错误(操作系统错误:CERTIFICATE_VERIFY_FAILED:证书已过期(handshake.cc:393))

[英]DioError HandshakeException: Handshake error in client (OS Error: CERTIFICATE_VERIFY_FAILED: certificate has expired(handshake.cc:393))

E/flutter (17310): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: DioError [DioErrorType.other]: HandshakeException: Handshake error in client (OS Error: E/flutter (17310): CERTIFICATE_VERIFY_FAILED: certificate has expired(handshake.cc:393)) E/flutter (17310): Source stack: E/flutter (17310): #0 DioMixin.fetch (package:dio/src/dio_mixin.dart:488:35) E/flutter (17310): #1 DioMixin.request (package:dio/src/dio_mixin.dart:483:12) E/flutter (17310): #2 DioMixin.get (package:dio/src/dio_mixin.dart:61:12) E/flutter (17310): #3 getState (package:land_resource_inventory/modules/home/view/home_page.dart:355:28) E/flutter (17310): #4 _onTileClicked (package:land_resource_inventory/modules/home/view/home_page.dart:345:7) E/flutter (17310): #5 _MyHomePageState.build.<anonymous closure>.<anonymous closure> (package:land_resource_inventory/modules/home/view/home_page.dart:232:40) E/flutter (17310): #6 _InkResponseState.handleTap (package:flutter/src/material/ink_well.dart:1072:21) E/flutter (17310): #7 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:253:24) E/flutter (17310): #8 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:627:11) E/flutter (17310): #9 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:306:5) E/flutter (17310): #10 BaseTapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:276:7) E/flutter (17310): #11 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:163:27) E/flutter (17310): #12 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:464:20) E/flutter (17310): #13 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:440:22) E/flutter (17310): #14 RendererBinding.dispatchEvent (package:flutter/src/rendering/binding.dart:337:11) E/flutter (17310): #15 GestureBinding._handlePointerEventImmediately (package:flutter/src/gestures/binding.dart:395:7) E/flutter (17310): #16 GestureBinding.handlePointerEvent (package:flutter/src/gestures/binding.dart:357:5) E/flutter (17310): #17 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:314:7) E/flutter (17310): #18 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:295:7) E/flutter (17310): #19 _invoke1 (dart:ui/hooks.dart:167:13) E/flutter (17310): #20 PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:341:7) E/flutter (17310): #21 _dispatchPointerDataPacket (dart:ui/hooks.dart:94:31) E/flutter (17310): E/flutter (17310): #0 DioMixin.fetch.<anonymous closure> (package:dio/src/dio_mixin.dart:643:7) E/flutter (17310): #1 _RootZone.runBinary (dart:async/zone.dart:1658:54) E/flutter (17310): #2 _FutureListener.handleError (dart:async/future_impl.dart:162:22) E/flutter (17310): #3 Future._propagateToListeners.handleError (dart:async/future_impl.dart:778:47) E/flutter (17310): #4 Future._propagateToListeners (dart:async/future_impl.dart:799:13) E/flutter (17310): #5 Future._completeError (dart:async/future_impl.dart:574:5) E/flutter (17310): #6 _SyncCompleter._completeError (dart:async/future_impl.dart:51:12) E/flutter (17310): #7 _Completer.completeError (dart:async/future_impl.dart:23:5) E/flutter (17310): #8 Future.any.onError (dart:async/future.dart:617:45) E/flutter (17310): #9 _RootZone.runBinary (dart:async/zone.dart:1658:54) E/flutter (17310): #10 _FutureListener.handleError (dart:async/future_impl.dart:162:22) E/flutter (17310): #11 Future._propagateToListeners.handleError (dart:async/future_impl.dart:778:47) E/flutter (17310): #12 Future._propagateToListeners (dart:async/future_impl.dart:799:13) E/flutter (17310): #13 Future._completeError (dart:async/future_impl.dart:574:5) E/flutter (17310): #14 Future._asyncCompleteError.<anonymous closure> (dart:async/future_impl.dart:665:7) E/flutter (17310): #15 _microtaskLoop (dart:async/schedule_microtask.dart:40:21) E/flutter (17310): #16 _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)

I have already tried: https://stackoverflow.com/a/61312927/1776243我已经尝试过: https ://stackoverflow.com/a/61312927/1776243

Although this is not recommended in production scenarios, you can accept any certificates by overriding the HttpClient that dio uses by providing a onHttpClientCreate, like the following:尽管在生产场景中不建议这样做,但您可以通过提供 onHttpClientCreate 覆盖 dio 使用的 HttpClient 来接受任何证书,如下所示:

(dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate  = (client) {
  client.badCertificateCallback=(X509Certificate cert, String host, int port){
      return true;
  };
};

Again, only use this for debugging and development purposes.同样,仅将其用于调试和开发目的。 In production, you should use a valid SSL certificate.在生产环境中,您应该使用有效的 SSL 证书。

Documentation for onHttpClientCreate onHttpClientCreate的文档

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM