我从文档中了解到可以签署git标签和提交。
git config --global user.signingkey 0A46826A
文件:https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work
这适用于GPG。有人用X509用户证书做过这样的事吗?
看起来GPG与x509 pki证书不兼容或不可互换。由于这是在企业环境中,因此GPG不是一种选择。
如果有人可以分享关于如何使用x509证书进行思考或体验的话会很棒吗?需要什么以及实现这样的东西需要什么?
使用Git 2.19(Q3 2018)应该会更容易,因为“git tag -s
”等现在有一些配置变量(可以设置为“gpg.format
”或“openpgp
”的x509
,以及用于指定要使用的程序的gpg.<format>.program
)处理格式)允许通过“gpgsm
”使用CMS的x.509证书而不是通过“gnupg
”使用openpgp。
参见commit 53fc999,commit 1e7adb9(2018年7月20日),commit b02f51b,commit 42149d7,commit 58af57e,commit 57a8dd7,commit 1865a64(2018年7月17日)和Henning Schild (henning-schild
)(2018年7月18日)。
(由Junio C Hamano -- gitster
--合并于commit 3ec5ebe,2018年8月15日)
这包括以下变化:
gpg-interface
:添加新配置以选择如何签署提交添加“
gpg.format
”,用户可以在其中指定要用于提交的签名类型。
gpg-interface
:介绍多种gpg格式的抽象创建一个结构,其中包含支持的格式的格式详细信息。 此提交准备引入更多格式,可能使用其他程序并匹配其他签名。
gpg-interface:不再对密钥字符串len进行硬编码
gnupg
确实打印了keyid,接着是一个空格,然后是签名者。在gpgsm
中也使用相同的模式,但密钥长度为40而不是16。而不是硬编码预期的长度,找到第一个空格并计算它。 现在,在我们跳转到找到+17之前可能已经在意外字符串结尾之后,将忽略与预期格式不匹配的输入。
GitHub提供了一些有关specifying signing keys的有用说明,包括如何在Windows和Mac上使用smimesign
使用X.509证书进行签名。
$ git config --global gpg.x509.program smimesign
$ git config --global gpg.format x509
$ git config --global gpg.program smimesign
在Linux上,您可以使用gpgme
代替。使用gpgme --import cert.p12
添加证书。在gpgme
允许您签署任何内容之前,您可能还需要导入根和任何中间证书。