飞镖酒吧获得 CERTIFICATE_VERIFY_FAILED

dart pub get CERTIFICATE_VERIFY_FAILED

我最近将一个项目从 1.22.1 升级到 1.24.3。随后,pub get 失败了

Handshake error in client (OS Error: CERTIFICATE_VERIFY_FAILED: self signed certificate in certificate chain(ssl_cert.c:345))

Handshake error in client (OS Error: error:1000007d:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED)

我发现了关于出现此错误的类似线程,但这些线程中提供的 none 解决方案似乎已经解决了该问题。我 运行 pub --trace --verbosity 都按照这些线程中的要求获取,输出 here

Webstorm 控制台的较不详细的输出是

    Working dir: C:\SGGDev\pearls\client
    C:\DevTools\dart-sdk-1-24-3\bin\pub.bat get
    Resolving dependencies...
    Downloading uuid 0.5.3...
    Downloading convert 2.0.1...
    Downloading charcode 1.1.1...
    Downloading crypto 2.0.2+1...
    Downloading collection 1.14.3...
    Downloading typed_data 1.1.5...
    Downloading xml 2.6.0...
    Downloading petitparser 1.6.1...
    Downloading matcher 0.12.1+2...
    Downloading stack_trace 1.8.0...
    Downloading path 1.4.2...
    Handshake error in client (OS Error: 
        CERTIFICATE_VERIFY_FAILED: self signed certificate in certificate chain(ssl_cert.c:345))
    Process finished with exit code 1

之前我删除了appdata中的pub cache,一个建议的解决方案,在第一次或第二次打包之后几乎立即遇到了同样的错误。

您是否正在 Windows 并使用卡巴斯基反病毒软件?我不知道所有的技术细节,但这种防病毒软件会以某种方式影响握手。禁用它应该会有所帮助。

另一种解决方法是设置以下环境变量:

PUB_HOSTED_URL=https://pub.flutter-io.cn FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

虽然我猜这不是 Dart SDK 问题,但这里也跟踪了这个问题:https://github.com/dart-lang/sdk/issues/32131

对我来说,错误是由我的防病毒软件引起的,我不得不禁用它以使 Dart 正常工作。