代码之家  ›  专栏  ›  技术社区  ›  Robert Munteanu

Jarsigner:找不到的证书链

  •  19
  • Robert Munteanu  · 技术社区  · 14 年前

    ~/.keystore

    keytool -list
    Enter keystore password:
    
    Keystore type: JKS
    Keystore provider: SUN
    
    Your keystore contains 1 entry
    
    mylyn-mantis, Jul 15, 2010, trustedCertEntry
    

    jarsigner -verbose  /home/robert/file.jar mylyn-mantis
    jarsigner: Certificate chain not found for: mylyn-mantis.  mylyn-mantis must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
    

    我怎样才能解决这个问题?

    1 回复  |  直到 14 年前
        1
  •  16
  •   Maurice Perry    14 年前

    您的密钥库似乎只包含一个证书(公钥),您需要一个完整的密钥条目、一个私钥和整个证书链才能对任何内容进行签名

        2
  •  2
  •   Atul    4 年前

    我也面临同样的问题。我有一个.p12文件颁发的CA和我试图签署jar文件。但是我得到了一个错误:

    jarsigner: Certificate chain not found for:
    

    keytool 到文本文件,然后我从那里复制别名。

    1. 发出以下命令:

      keytool-list-v-storetype pkcs12-keystore“mycertificate.p12”>证书.txt

    (这非常重要。总是重定向到txt文件。不要从控制台输出复制。它可能包含错误的字符)

    1. 使用jarsigner:

      jarsigner-storetype pkcs12-keystore“mycertificate.p12”myjarfile.jar“我的别名,a.p.s我的ca有限id”

        3
  •  1
  •   Andy Piper    4 年前

    我有这个错误,但这是另一个问题。当您向CA发送CSR时,它来自您生成的具有特定别名的特定私钥。当您再次收到证书时 否则这两个证书将无法连接在一起。

    如果您做得对,当您使用keytool-list-v时,您将看到一个别名为

    Entry type: PrivateKeyEntry
    Certificate chain length: 3
    

    为了进入。 如果你做错了,你将有两个条目

    Entry type: PrivateKeyEntry
    Certificate chain length: 1
    

    Entry type: trustedCertEntry
    
        4
  •  1
  •   Islam Ahmed    3 年前

    简短的回答

    使用别名密钥而不是密钥存储,如下所示:

    jarsigner -verbose -keystore [Your signature storage path] -signedjar [signed filename] [unsigned filename] [Your alias key]
    

    以下是解决此错误的最简单方法:

    1. 转到bin文件夹。。它可能在以下路径中:

    或此路径:

    C:\Program Files\Java\jre1.8.0\u 77\bin文件

    1. 空包装 待签署,以及 你的钥匙店 bin目录 在JDK下。

    2. 通过运行以下命令获取别名密钥:

      keytool -keystore [your key store] -list -v

    3. 最后运行以下命令:

      jarsigner -verbose -keystore [Your signature storage path] -signedjar [signed filename] [unsigned filename] [Your alias key]