我有以下文件:
我已经从CA收到了这些文件,包括证书链。 我需要生成“ keystore.p12”以使用以下信息为春季启动应用程序配置SSL。
server:
port: 443
ssl:
key-store: keystore.p12
key-store-password: <your-password>
keyStoreType: PKCS12
keyAlias: <my alias>
有人可以帮助我生成“ keystore.p12”吗?
答案 0 :(得分:0)
文件扩展名实际上并不控制文件的格式或内容,尽管通常它们应该应该至少提供 partial 描述。类似地,基名称(在扩展名之前)应该描述文件中的内容,但不一定总是正确。重要的是文件中的内容。
.key
通常用于一个单独的私钥,但是请确保使用该私钥,并要确定它的格式,因为它有很多。您应该从不从CA获取您的私钥;它应在本地生成,通常在将使用它的计算机上生成,至少应由该计算机的“所有者”或管理员生成。如果您谈论的是公司,组织,代理机构或办公室内部的CA,则可能会出现某种例外情况-在这种情况下,运行CA的人可能是负责所有计算机安全性的人-或反之亦然,这取决于您的观点-对他们而言,既生成密钥又生成证书可能是有意义的。
.pem
用于PEM format中的很多内容,该文件的内容是(或现在)是什么,而不是它是PEM。查看第一行-----BEGIN (somewords)-----
,看看什么是字。应该紧跟在base64中的数据(由字母,数字和特殊字符+/-组成的实心块)之后,或者紧跟几行标题行之后,然后是匹配的-----END (somewords)-----
行。如果在END行后接另一个或多个类似的块,请查看所有这些块。
.cer
通常用于“ DER”(二进制)或“ PEM”(如上所述)格式的证书。 .p7b
类似地用于包含证书(特别是链中使用的证书)的DER或PEM中的“虚拟” PKCS7消息。更重要的是,p7b有时用于整个链包括终端实体(服务器)证书,有时用于链的其余部分 EE证书,这很重要哪一个。如果您拥有OpenSSL(或者可以通过OpenSSL获得(例如,通过安装软件包或对于Windows,我建议从http://www.slproweb.com/products/Win32OpenSSL.html下载安装程序)),或者可以将数据移动到具有它的计算机上,则可以:
# if the p7b file is in PEM format (you can see ----BEGIN PKCS7----- line)
openssl pkcs7 -in file.p7b -print_certs
# if the p7b file is in DER format (looks like garbage in a text editor or display)
openssl pkcs7 -in file.p7b -inform der -print_certs
# for now look only at the subject= and issuer= lines to see
# for each cert in the file who it is for, and if/how they chain
然后:
如果.key
文件是OpenSSL支持的PEM格式之一的私钥,则可以使用它;否则,如果.key
是某种其他格式的私钥,或者.pem
是或包含某种格式的私钥,则需要转换和/或提取它:向我们详细说明这些文件的外观喜欢。
如果.p7b
文件为PEM或DER格式,则将其扩展输出(从上方)放入文件中。如果其中包括EE证书,请跳过下一步。
如果.p7b
文件不包含EE证书,但是.cer
文件就是该证书,如果采用PEM格式,只需将其附加到包含.p7b
的文件中输出;如果为DER格式,请用openssl x509 -in file.cer -inform der
进行转换,然后附加 that 。
如果您现在拥有OpenSSL支持的一种PEM格式的私钥,以及包含PEM格式的EE证书的证书链,请
openssl pkcs12 -export -in chain.pem -inkey key.pem -out newfile.p12 [-name x]
# the -name option provides the 'alias' used by Java
# if not specified it defaults to the numeral 1 (one)