收到致命警报:protocol_version

Received fatal alert: protocol_version

我遇到的问题是,当我在我的地方构建项目时没有出现错误。但是,当我通过配置的 GitHub 工作流程执行此操作时,出现以下错误:

Execution failed for task ':network-protocol:compileKotlin'.
> Could not resolve all files for configuration ':network-protocol:compileClasspath'.
   > Could not resolve de.bluebox.wolff:candle:1.0.0.
     Required by:
         project :network-protocol
      > Could not resolve de.bluebox.wolff:candle:1.0.0.
         > Could not get resource 'https://repo.spleef.eu/repository/spleef-public/de/bluebox/wolff/candle/1.0.0/candle-1.0.0.pom'.
            > Could not GET 'https://repo.spleef.eu/repository/spleef-public/de/bluebox/wolff/candle/1.0.0/candle-1.0.0.pom'.
               > Received fatal alert: protocol_version

整个过程运行在 public 连接上,它在我的服务器上运行。服务器接受 TLSv1.2 和 TLSv1.3 请求。

工作流程

name: Gradle CI

on: [push]

jobs:
  build:
    name: Test for ${{ matrix.java }}
    runs-on: ubuntu-latest

    strategy:
      matrix:
        java: [ 8, 9, 10, 11, 12, 13, 14 ]

    steps:
      - uses: actions/checkout@v2

      - name: Set up JDK ${{ matrix.java }}
        uses: actions/setup-java@v1
        with:
          java-version: ${{ matrix.java }}
          architecture: x64

      - name: Grant execute permission for gradlew
        run: chmod +x gradlew

      - name: Build with gradlew
        run: ./gradlew -Dhttps.protocols=TLSv1.2 build

我是漏掉了什么还是只是我的关系?

根据the Qualys SSL tester,此服务器仅支持 TLS 1.3。这意味着支持 TLS 1.2 但不支持 TLS 1.3 的 Java 的旧版本将无法工作。

如果您控制该服务器,我建议 re-adding 支持 TLS 1.2。虽然 TLS 1.3 很棒,但 TLS 1.2 仍然被认为是健壮和安全的,是一个不错的选择,所以现在没有理由禁用它。如果不这样做,您将需要与所有者合作或寻找替代方案。