如何在Spring-Boot中使用SSL证书并为Android客户端生成公钥

2020年12月1日 58点热度 0条评论

我从sslforFree.com获得了一个证书,其中包含3个文件:
1-ca_bundle.crt
2证书
3个私钥
我可以使用由Java密钥工具创建的自签名证书来配置Spring-Boot应用程序,现在的问题是如何使用这三个文件?
我希望应该只有一个文件可以放入我的Keystore中,但是现在只有3个文件,我不知道如何使用它们。
另一方面,我将android应用程序作为客户端。它需要一个 .pem 文件作为证书,其中包含如下格式的公钥(我的意思是标签的值):

<pin-set>
<pin digest="SHA-256">k3XnEYQCK79AtL9GYnT/nyhsabas03V+bhRQYHQbpXU=</pin>
</pin-set>

现在如何生成包含此格式公钥的
.pem 文件?

我进行了搜索,还找到了一些命令来连接
.crt
.key 文件,结果是
.pem ,但是它包含一些Base64文本,该文本在文件的开头和结尾处包括以下内容:

----- BEGIN证书-----

xxxxxx

-----结束证书-----

----- BEGIN RSA私钥-----

xxxxxx

-----结束RSA私钥-----

如何为客户创建公钥?

我是否需要将该
.pem 文件放入我的密钥库?

任何帮助,将不胜感激!!

解决方案如下:

您应该执行与使用自签名证书相同的操作。
使用keytool将三个文件导入密钥库。 certificate.crt 是一个包含您的带有证书数据的公钥的文件, ca_bundle.crt 是一个包含对您的证书进行认证的证书颁发机构的公钥的文件-这称为证书链, private.key 是包含密钥对私钥(公钥是证书的一部分)的文件,该文件用于在SSL连接的特定阶段加密数据。
服务器部分
在服务器端,您需要创建一个密钥库,其中将包含您的私钥,您的证书(带有公钥)和证书链。 Here you can find the command that fits your case
客户部分
在您的客户端,您可以将任何证书/密钥固定在根到叶子的链中。您固定的钥匙越接近叶子,您将获得越安全的解决方案。缺点是叶子证书的寿命通常很短,因此,当您更新服务器证书时,也将必须升级客户端引脚。
可以在this SO answer中找到有关如何生成sha256摘要的良好说明。