【问题标题】:Handshake error while running flutter pub upgrade command运行颤振发布升级命令时握手错误
【发布时间】:2021-11-17 11:04:46
【问题描述】:

运行 flutter pub upgrade 命令时发生握手错误。

正在运行 pub 升级...

客户端握手错误(操作系统错误: CERTIFICATE_VERIFY_FAILED: 无法获取本地颁发者证书(../../third_party/boringssl/src/ssl/handshake.c c:359))

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 好吧,“我们不建议第三方依赖它。这样做可能会令人沮丧,因为无法保证 API 或 ABI 的稳定性。”这是我从他们的自述文件中读到的。那么它的目的是什么?

标签: flutter dart


【解决方案1】:

如果是letsencrypt and dart http issue,是低版本的Android没有X1证书造成的,Android认为证书是自签名的。 更多细节: https://www.catchpoint.com/blog/lessons-from-an-internet-outage-issues-caused-by-lets-encrypt-dst-root-ca-x3-expiration

有很多解决方案;您可以通过here 探索它们。

下载isrgrootx1.pem

在 main.dart 中

final ByteData data = await rootBundle.load('assets/certificates/isrgrootx1.pem');
HttpOverrides.global = CustomHttpOverrides(data);
runApp(...)

在 CustomHttpOverrides.dart 中

import 'dart:io';
import 'dart:typed_data';

class CustomHttpOverrides extends HttpOverrides {
  ByteData data;
  CustomHttpOverrides(this.data);

  @override
  HttpClient createHttpClient(SecurityContext? context) {
    final SecurityContext clientContext = SecurityContext()..setTrustedCertificatesBytes(data.buffer.asUint8List());
    return super.createHttpClient(clientContext);
  }
}

【讨论】:

    猜你喜欢
    • 2022-08-05
    • 2018-12-24
    • 2018-06-18
    • 2021-10-31
    • 2019-11-03
    • 2020-06-20
    • 2021-06-06
    • 2018-09-04
    • 1970-01-01
    相关资源
    最近更新 更多