小编one*_*eak的帖子

在 github 操作中使用 openssl

我想将 github 操作的工件发布到特定的更新存储库,以便我的软件可以使用它来更新自身。为了验证本地更新过程中的更新,我想签署此工件。我现在选择将更新本身和签名存储在单独的文件中。

我的 github 操作将获取压缩的工件,并应使用给定的 RSA4096 私钥对其进行签名,并应使用 SHA512 作为摘要。

我的 github 操作如下所示:

- name: Sign release
  run: |
    echo $PRIVATE_KEY > privatekey.pem
    openssl dgst -sha512 -sign privatekey.pem -out latest.sig latest.zip
    env:
      PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
Run Code Online (Sandbox Code Playgroud)

此 github 操作应该从存储库的机密中获取我的私钥,将其放入环境变量中,然后将其放入本地文件中,以便以下 openssl 命令可以使用此私钥对其进行签名。我这样做是为了阻止私钥本身被回显到日志中。

私钥值如下:(这当然不是实际的私钥,而是我仅出于测试目的而创建的私钥,直到此 github 操作正常工作为止。这个私钥只有 1024 位,而不是上面提到的 4096 位。我将以后就不再使用这个私钥了。)

- name: Sign release
  run: |
    echo $PRIVATE_KEY > privatekey.pem
    openssl dgst -sha512 -sign privatekey.pem -out latest.sig latest.zip
    env:
      PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
Run Code Online (Sandbox Code Playgroud)

问题是执行这一步时github操作的日志输出如下:

-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgGwdzKeZPLdOHV+/iDpHHtEk7kephhI5eythCfmoqzy5CSx+GZ6X
Z1GiIzII+CtyN69cOgyzO99uPvquBkbo3lHL5+jZnOEue8nMub8iwPXZgDB6s8BV
sFevjLENx4LWJSZSo8rUn6al3bfoWJUySzkla9xc4g0GiO1K81zGeRH9AgMBAAEC
gYBTZbUs/vYny5i69+pkUeICoEMxgiHKQw6win0AWMwl3fGmoWqvu8hV3wTZHrQY …
Run Code Online (Sandbox Code Playgroud)

openssl rsa github github-actions

5
推荐指数
1
解决办法
3736
查看次数

标签 统计

github ×1

github-actions ×1

openssl ×1

rsa ×1