GNUPG签名偶遇 CA 证书损坏,拼尽全力无法战胜(已解决,并非证书损坏)

我为git配置好了gpg签名后,它在过去的几个月内都正常工作,直到昨天使用时,它炸了。 :sob:

这似乎是gpg导致的问题,现在我无论是使用gpg进行签名还是生成新的密钥都会出现类似的错误。

> echo 114514 | gpg -bsau 2B5E49F9D88624E1831DE8F2FC6AA6571C8BC288
gpg: 签名时失败: 损坏的 CA 证书
gpg: signing failed: 损坏的 CA 证书
> gpg --generate-key
gpg (GnuPG) 2.4.5; Copyright (C) 2024 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

注意:使用 “gpg --full-generate-key” 以获得一个全功能的密钥生成对话框。

GnuPG 需要构建用户标识以辨认您的密钥。

真实姓名: 9_Extra
电子邮件地址: 77313011@qq.com
您选定了此用户标识:
    “9_Extra <77313011@qq.com>”

更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)? o
我们需要生成大量的随机字节。在质数生成期间做些其他操作(敲打键盘
、移动鼠标、读写硬盘之类的)将会是一个不错的主意;这会让随机数
发生器有更好的机会获得足够的熵。
gpg: agent_genkey failed: 损坏的 CA 证书
密钥生成失败:损坏的 CA 证书

gpg总是提示CA证书损坏,这能修吗?现在我访问https网页也是正常的啊。
求大佬捞捞。

1 Like

您好,

您遇到的证书损坏问题我们无法复现。

访问 HTTPS 页面的部分应该和 GnuPG 相关组件没有直接关系:您使用 curl/wget 下载 HTTPS 页面正常吗?

是正常的

请问你最近在使用 JetBrains 系列的 IDE 吗?

是的!确实我安装了idea和pycharm

是的,我最近安装了idea,我现在的~/.gnupg/gpg-agent.conf文件中的内容为

pinentry-program /home/yty/.gnupg/pinentry-ide.sh

而这个pinentry-ide.sh的内容为

#!/bin/sh
"/opt/idea/jbr/bin/java" -cp "/opt/idea/plugins/vcs-git/lib/git4idea-rt.jar:/opt/idea/lib/externalProcess-rt.jar" git4idea.gpg.PinentryApp

看来是idea做的改动

近期的 JetBrains IDE 更新会导致 GnuPG 无法正常工作,CA 证书并非损坏,参见此链接:
https://youtrack.jetbrains.com/issue/IJPL-173525/Git-GPG-signing-fails-with-errors-like-Bad-CA-certificate-or-failed-to-write-commit-object

1 Like

感谢大佬,解决了,这波是idea的锅。 :joy: (也有我的锅,以后再也不看到什么弹出来的按钮就去点了)