我编写了一个在tomcat服务器上运行的RestFul Web服务和一个用于与服务进行交互的泽西 2.x 休息客户端。 客户端认证由基于证书的相互认证方法执行。我在服务器上配置了CA证书,我有.PEM格式的客户端证书,我以Base64编码格式提供给java客户端
base64encodedCert = new String(Files.readAllBytes(Paths.get("path/to/cert_for_clientA.base64")));
// ClientBuilder
// Client initialization
Response response = target.request().header("X-AUTH-TOKEN", base64encodedCert).accept(MediaType.APPLICATION_XML).get();
身份验证是基于自定义令牌的类型,即 标题(" X-AUTH-TOKEN",base64encodedCert)。
但是这个身份验证不起作用(HTTP错误500?)。所以我进口了
使用keytool -import command
将相同的客户端证书放入服务器truststore.jks并重新部署应用程序,并且客户端已成功通过身份验证。
问题是我每次发布新的客户端证书时都必须更新我的服务器的truststore.jks,这不是理想的做法。
所以,我想知道是否有办法在服务器的信任库中避免这种重复更新,并为客户端证书身份验证进行一次性设置。
**这是我的组织工作区的一个项目,我们有自己的PKI基础设施,用于颁发证书,不确定这是否会产生影响