首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在服务器中配置附加信任库

在服务器中配置附加信任库
EN

Stack Overflow用户
提问于 2022-04-06 20:04:21
回答 2查看 1K关注 0票数 1

我有一个spring引导客户端应用程序和一个服务器应用程序。我正在实现MTLS客户端认证部分。我有一个自签名的客户端证书,这需要添加到服务器中的自定义信任库中。基本上,我正在寻找一种机制来添加我的自定义信任库在运行时。

我希望默认的信任库和自定义信任库被选中。我使用TomcatServletWebServerFactory实现了这一点,但是我没有任何运气。有人能帮忙吗。我正在寻找一个程序化的解决方案。

我不想更改默认的java信任库。我还是需要那个。

EN

回答 2

Stack Overflow用户

发布于 2022-04-06 21:50:10

因为您不想用自定义的信任库来替换现有的信任库(可以通过使用几个系统属性来运行JVM来实现),所以需要添加一些代码,如果内置或自定义信任器批准了客户机,则需要添加信任对等程序的代码。

为此,您需要创建并安装自己的Trustmanager。参见这里的一个示例:https://community.oracle.com/tech/developers/discussion/1535342/java-ssl-trustmanager

如果checkClientTrustedcheckServerTrusted方法不引发异常,则证书被批准。将方法保持为空甚至会关闭任何证书验证--不推荐。

票数 0
EN

Stack Overflow用户

发布于 2022-04-07 05:53:58

为了在Spring客户端应用程序和Spring服务器应用程序之间建立带有客户端证书的SSL连接,需要注意以下几点:

涉及信托商店

在这种情况下,有两个非常不同的信任存储:

  1. 客户端用于确定是否可以信任服务器的SSL证书的信任存储。当对客户端请求使用java.net包时,信任存储是通过JVM属性"javax.net.ssl.trustStore“配置的-参见https://docs.oracle.com/javadb/10.8.3.0/adminguide/cadminsslclient.html
  2. Tomcat使用的信任存储( Spring Boot在其默认配置中使用的底层servlet容器),以确定它是否应该信任客户端。这是通过spring应用程序属性"server.ssl.trust-store“配置的-请参阅https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties.server.server.ssl.trust-store

在Spring服务器应用程序的上下文中,第一个应用程序与服务器与第二个服务器的连接相关--因此,只有当服务器也充当客户端时--例如,充当代理服务器时。

第二个信任存储与服务器与其客户端之间的连接相关。这是你需要处理的问题。

Tomcat信任商店中的证书

Tomcat使用的信任存储不包含客户端证书。相反,它必须包含已签署客户端证书的证书颁发机构的证书。因此,在使用自签名证书时,需要安装您自己生成的CA证书。

这样做的最大优点是,当您授予对新客户端的访问权限时,不需要更改服务器信任存储。

缺点是,您必须处理证书吊销。CRL (证书吊销列表)也存储在信任存储中。请参见:

CRL解释:什么是证书撤销列表?

合并默认信任存储和自定义信任存储

正如现在应该清楚的那样,这不是一个好主意,它将构成一个主要的安全缺陷,因为它将允许任何在默认信任存储区(可以很容易获得)中由CA签名的证书的客户端连接到服务器。服务器信任存储只能包含用于签署客户端证书的证书!

没有必要将两者合并,因为这是完全独立的信托商店,功能完全不同。

但是,当然,合并信任商店在技术上是可行的。这一切都可以通过关键工具-见下文。

管理信托商店

添加、删除、导出、列出和打印证书和CRL都可以通过作为OpenJDK一部分的Oracle命令行工具"keytool“完成。看见

键工具参考

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71772975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档