我们有一个Web应用程序,其中SSL证书每100天过期一次并自动更新。每当碰巧选择新更新的证书时,我们都必须重新启动服务器。 证书更新时,tomcat java进程可以通过任何方式自动获取新证书。 集群中有数千台计算机。
答案 0 :(得分:0)
是的,有一种方法可以借助代码自动加载证书。您要做的就是从主机下载证书,然后将该证书导入到Tomcat服务器的Connector(可以在server.xml中找到)指向的密钥库中。这可以借助称为 keytool 的工具来完成。
keytool -importcert -file mycertfile.pem -keystore keystore.jks -alias "Alias" -storepass <PASSWORD>
将证书添加到密钥库后,您可以初始化SSLContext并将其传递以从服务器进行其他后续调用。
SSLContext sslContext = SSLContexts.custom()
.loadTrustMaterial(new TrustStrategy() {
@Override
public boolean isTrusted(X509Certificate[] chain, String authType) throws
CertificateException {
return true;
}
})
.loadKeyMaterial(<Keystore-loaded with certificate>,<password of the keystore>)
.build();
Config config = Config.newConfig();
config.withSSLContext(sslContext);`
此 config 对象可以作为参数传递给函数 .withConfig(config),以创建客户端调用。