有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在tomcat中安装java GoDaddy SSL证书。。。没有与私钥匹配的证书

生成Tomcat密钥库

keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA -keystore
    tomcat.keystore

生成证书密钥库

keytool -genkey -alias tomcatCert -keyalg RSA -keystore tomcat.keystore

生成密钥

keytool -certreq -alias tomcat -file csr.txt -keystore tomcat.keystore -storepass pa$$word

合并证书

cat mydomain.crt gd_bundle-g2-g1.crt > combinedcerts

创建P12密钥库

keytool -importkeystore -srckeystore tomcat.keystore -destkeystore tomcatkey.p12 -deststoretype PKCS12 -storepass pa$$word

生成质子交换膜

openssl pkcs12 -in tomcatkey.p12 -out tomcatkey.pem -nodes

正在将剩余的CRT文件导出到密钥库

openssl pkcs12 -export -chain -CAfile gd_bundle-g2-g1.crt -in combinedcerts -inkey tomcatkey.pem -out new.tomcat.keystore -name tomcat -passout pass:pa$$word

在最后一步中,我得到了以下错误:“没有与私钥匹配的证书。”

这和几年前的步骤一样,服务器也是一样的。。。只有JDK是以前的8u131 vs 8u45

有人能告诉我我做错了什么吗?谢谢大家!


共 (1) 个答案

  1. # 1 楼答案

    Generate the Tomcat KeyStore

    keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA -keystore
    tomcat.keystore
    

    不需要。这一步创建了密钥库文件,但更重要的是,它创建了RSA类型的密钥对

    Generate the Certificate KeyStore

    keytool -genkey -alias tomcatCert -keyalg RSA -keystore tomcat.keystore
    

    否。此步骤不会“生成证书密钥库”,不管它是什么。它除了在相同的密钥库中的另一个别名下创建另一个密钥对之外,什么也不做,并且在剩余的过程中,该别名保持未使用状态。通过检查,它与上一步是相同的,除了别名更改(这是毫无意义的)和缺少的密钥大小(这使它变得无用)之外。省略

    Generate the Keys

    keytool -certreq -alias tomcat -file csr.txt -keystore tomcat.keystore -storepass pa$$word
    

    您已经在第一步中生成了密钥。此步骤生成证书签名请求(CSR)

    Merge certs

    cat mydomain.crt gd_bundle-g2-g1.crt > combinedcerts
    

    这里缺少一个步骤,您提交了CSR并得到了签名。大概这个过程的结果是mydomain。crt和Godaddy包文件

    Create P12 keystore

    keytool -importkeystore -srckeystore tomcat.keystore -destkeystore tomcatkey.p12 -deststoretype PKCS12 -storepass pa$$word
    

    为什么??如果需要P12密钥库,可以在步骤1和后续步骤中使用-storetype PKCS12。这里缺少一个步骤,将连接的证书导入到原始密钥库中

    Generate PEM

    openssl pkcs12 -in tomcatkey.p12 -out tomcatkey.pem -nodes
    

    为什么?

    Exporting remaining CRT files to keystore...

    openssl pkcs12 -export -chain -CAfile gd_bundle-g2-g1.crt -in combinedcerts -inkey tomcatkey.pem -out new.tomcat.keystore -name tomcat -passout pass:pa$$word
    

    为什么?

    我不知道你为什么要做这些OpenSSL步骤。Tomcat已经可以处理tomcat.keystoretomcat.p12

    And in this last step I'm getting the following error: "No certificate matches private key"

    我不知道你为什么要做这些步骤中的大部分。你从来没有使用过tomcatCert别名,你把一个已经完全足够的tomcat.keystore文件通过了不是一个而是三个无意义的步骤

    This same steps worked a couple of years ago, server is the same... only JDK is 8u131 vs 8u45 from before.

    我对此表示怀疑。它们被贴错标签、重复、不完整、完全不连贯。更有可能的是,有人只是无助地四处挥舞,直到有什么东西起作用,然后尽可能多地记下来。根本不需要使用OpenSSL工具。您所需要的只是:

    1. 生成密钥对:keytool -genkey
    2. 生成CSR:keytool -certreq
    3. 签署CSR
    4. 连接证书,首先连接新签名的证书,然后连接捆绑包
    5. 使用与(1)和(2)相同的别名将连接的文件导入相同的密钥库