代码之家  ›  专栏  ›  技术社区  ›  silverfighter

在企业环境中使用x509证书签署git commit

  •  8
  • silverfighter  · 技术社区  · 7 年前

    我从文档中了解到,可以签署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证书是如何做到这一点的?实现这样的东西需要什么,需要什么?

    2 回复  |  直到 7 年前
        1
  •  7
  •   dcoles j7nn7k    6 年前

    GitHub提供了一些关于 specifying signing keys 包括如何使用X.509证书签名 smimesign 在Windows和Mac上。

    对于Git版本2.19及更新版本

    $ git config --global gpg.x509.program smimesign
    $ git config --global gpg.format x509
    

    对于Git 2.18及更高版本

    $ git config --global gpg.program smimesign
    

    在Linux上,您可以使用 gpgme 相反将您的证书添加到 gpgme --import cert.p12 。您可能还需要在之前导入根证书和任何中间证书 gpgme 会让你签任何东西。

        2
  •  4
  •   VonC    6 年前

    Git 2.19(2018年第3季度)应该更容易实现,因为“ git tag -s “etc.现在有一些配置变量( gpg.format 可设置为“ openpgp “或” x509 “”和 gpg.<format>.program 用于指定使用什么程序来处理格式),以允许通过“CMS”使用x.509证书 gpgsm “用于代替 openpgp通过“ gnupg “。

    看见 commit 53fc999 (2018年7月20日), commit 1e7adb9 ,则, commit b02f51b ,则, commit 42149d7 ,则, commit 58af57e ,则, commit 57a8dd7 (2018年7月17日),以及 commit 1865a64 (2018年7月18日) Henning Schild ( henning-schild )
    (合并人 Junio C Hamano -- gitster -- 在里面 commit 3ec5ebe 2018年8月15日)

    这涉及以下变化:

    gpg-interface :添加新配置以选择如何签署提交

    添加“ gpg。总体安排 “其中,用户可以指定要执行的签名类型 用于提交。

    gpg接口 :引入多个gpg格式的抽象

    创建一个保存受支持格式的格式详细信息的结构。
    此提交为引入更多格式做了准备,这些格式可能会使用其他程序并匹配其他签名。

    gpg接口:不再硬编码键字符串len

    gnupg公司 打印keyid,后跟空格,然后是签名者。 同样的模式也用于 gpgsm ,但密钥长度将是40而不是16。

    不要硬编码预期的长度,而是找到第一个空格并计算它。
    现在将忽略与预期格式不匹配的输入,然后跳转到查找到+17,它可能位于意外字符串的末尾之后。