Java Jboss EAP 7-REST API客户端的动态SSL身份验证

Java Jboss EAP 7-REST API客户端的动态SSL身份验证,java,ssl,wildfly-10,jboss-eap-7,Java,Ssl,Wildfly 10,Jboss Eap 7,我正试图解决一些有关SSL证书及其签名的问题 我的需要:我需要能够添加(生成?)客户端证书,以允许他们使用我的API 我的问题是:如果为了使修改可用而更改java信任库,则似乎需要重新加载Wildfly 我的理解是:这是一种错误的解决问题的方法,应该采取以下措施: 从受信任的机构获取CA证书 将此证书添加到我的密钥库 使用该证书对客户端证书进行签名 这样,只有我的CA证书需要放在我的java密钥库上,通过CA验证链,我的客户机才可以使用我的服务 问题: 我做对了吗 如果我应该为我的客户证书签名,

我正试图解决一些有关SSL证书及其签名的问题

我的需要:我需要能够添加(生成?)客户端证书,以允许他们使用我的API

我的问题是:如果为了使修改可用而更改java信任库,则似乎需要重新加载Wildfly

我的理解是:这是一种错误的解决问题的方法,应该采取以下措施:

  • 从受信任的机构获取CA证书
  • 将此证书添加到我的密钥库
  • 使用该证书对客户端证书进行签名
  • 这样,只有我的CA证书需要放在我的java密钥库上,通过CA验证链,我的客户机才可以使用我的服务

    问题:

  • 我做对了吗
  • 如果我应该为我的客户证书签名,他们应该向我发送什么才能使签名成为可能
  • 是否可以在不调用
    keytool
    实用程序的情况下执行此操作?我希望尽可能使用java来实现这一点,而不是依赖操作系统
  • 如果我的CA证书来自受信任的机构,并且我使用它对客户端证书进行签名,那么这些证书仍然算作自签名证书吗
  • 感谢您提供的所有提示。

    好的

    因为它可能会帮助其他人,我将把我的各种测试帮助我弄明白的东西放在下面:

  • 我做对了吗
  • 据我所知:是的 为什么我不能确定呢?因为我遇到了一些测试限制,这是因为我的开发环境以及我不能拥有一个真正有效的证书和一个有效的域来测试它

  • 如果我应该为我的客户证书签名,他们应该向我发送什么才能使签名成为可能
  • 因此,他们需要发送一个CSR(证书签名请求)和他们的公钥才能进行签名

  • 是否可以在不调用
    keytool
    实用程序的情况下执行此操作?我希望尽可能使用java来实现这一点,而不是依赖操作系统
  • 使用Bouncycastle库应该可以做到这一点。我之所以使用should,是因为我没有去实现它,后面会有更多关于它的内容

  • 如果我的CA证书来自受信任的机构,并且我使用它对客户端证书进行签名,那么这些证书仍然算作自签名证书吗
  • 我仍然不清楚这一点,但似乎在证书签名方面存在某种范围,可以防止任何人伪造实际的CA。任何人都可以更确定地了解这一点,这是受欢迎的

    我最终实际做了什么:

    成为我们自己的CA太难了,所以我们实际上要做的是让我们的客户从已知的CA获取他们的证书,并将这些CA证书添加到我们的信任库中。这与之前的原则相同,但我们将利用实际的CA资源,而不是扮演CA角色

    希望这有助于任何人,将一些类似的要求