我在GoDaddy(Apache)中有一个网站,在Amazon AWS(Apache Tomcat)中有一个应用程序。
网站域名(apache):example.com
应用程序域(apache tomcat):sub.example.com
我知道如何在GoDaddy中安装example.com的证书,我使用此应用程序生成CSR和私钥:
https://www.rapidsslonline.com/ssl-tools/csr-generator.php
我复制CSR以请求证书,最后使用私钥安装它。
我知道如何在tomcat中为sub.example.com安装证书,创建一个密钥库,然后使用生成的密钥库的csr请求签名,最后下载证书并安装它,这很容易。
但是我有一个问题,我只能使用一个解决方案:安装网站证书或安装tomcat证书,但不能同时安装两者。为什么?因为生成器生成的CSR与密钥库生成的CSR不同,我需要私钥(生成器给出)。
然后,这就是我的问题的原因,我如何使用现有的CSR文件创建密钥库?
我的想法是使用该CSR文件创建密钥库(可能存在keytool的参数),然后使用它生成新证书。在此之后我可以在Apache和tomcat中安装,我该怎么做?
也许另一个解决方案是如何获取密钥库的私钥,它也可以。
答案 0 :(得分:1)
如上所述,您的问题没有意义。这些都不涉及CSR文件。据我所知,您无法将CSR导入密钥库,即使可以,操作也没有意义。
真正发生的是您收到的PFX文件已经是密钥库,并且已经包含密钥对,签名证书和CA链。您可以直接将该文件用作Java中的PKCS#11密钥库,或者将整个文件导入到keytool
的JKS密钥库中。
您可以通过生成密钥对和CSR来从密钥库启动。然后,您可以签名并收到签名证书和CA链。然后,您可以使用与生成密钥对时相同的别名将这些内容导入密钥库。
答案 1 :(得分:0)
好的,我自己解决了:
我没有使用生成器,只需使用keytool创建密钥库,之后:
keytool
-importkeystore -srckeystore <keystorefile>
-destkeystore keystore.p12 -deststoretype PKCS12
-srcalias <jkskeyalias> -srcstorepass <passwordhere>
-srckeypass <passwordhere> -deststorepass <passwordhere>
-destkeypass <passwordhere>
然后将keystore.p12转换为私钥文件:
openssl pkcs12 -in keystore.p12 -nocerts -nodes -out private.key
我明白了:
Bag Attributes
friendlyName: tomcat
localKeyID: 54 69 6D 65 20 31 35 30 34 38 30 37 33 30 31 31 37 34
Key Attributes: <No Attributes>
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCgd4Hed6e2ArVx
bptp6zJDaAKOy4rWe4SHkjuWO7wgcxx4YoMARiIc2/xs070csTLCPXCmH+XtjX5Z
...
ej4hBu/2Bhv1QfH24gRKwHDsBAtQEa6nEn+LwPklgh5KbjY2ocSh6LIQEP4b+4CU
yneEbq6rJS6QLIhxgkEFZO6Jcw==
-----END PRIVATE KEY-----