【发布时间】:2021-03-17 16:48:10
【问题描述】:
我想了解 Java 运行时对 SSL 证书存储的一般要求。 我知道它可以复制到主机的 /etc/ssl/certs 文件夹,但对于 Java,它是否需要导入到特定的密钥库才能使运行时能够在应用程序的任何 SSL 验证过程中使用和消费? 例如。 如果我有一个 JRE 客户端需要打包根/中间证书以在 site1.foo.com 内部创建 Web 客户端,我将需要依赖于链的根证书和中间证书来验证请求。
对于其他各种运行时环境,我似乎可以将它们放在 /etc/ssl/certs 文件夹中: NodeJS => How to add custom certificate authority (CA) to nodejs 去=>Where is Golang picking up root CAs from?
但是,大概是为了在 Java 中使用,我需要采取额外的步骤并使用 keytool 并导入到特定的 Keystore 中? 据推测,它不能只从上面的公共目录中获取? 希望我的问题有意义。
【问题讨论】:
-
是的。 Java 需要一个密钥库。支持多种不同的格式,包括 PKCS#12。
-
Java 不依赖操作系统来处理证书,它有自己的认证根证书列表。它们存储在
JRE_HOME/lib/security文件夹中名为cacerts的文件中。