在本教程中,我们将学习如何通过使用不同的客户端使我们的Java应用程序能够使用mTLS。我们将使用将mTLS添加到Nginx实例的现有示例。
假设我们有一个Nginx实例,使用SSL还有。如果使用Java与使用mTLS保护的服务进行交互,则需要对代码库进行一些更改。在本教程中,我们将使Java应用程序能够使用不同客户端的mTLS。
要快速入门,我们可以使用现有的示例添加MTLS一个Nginx实例。我们的java mTLS配置将使用用于将mTLS添加到Nginx的证书和密钥。
为了为我们的Java客户端进行SSL配置,我们需要首先设置一个SSLContext。这简化了一些事情,因为SSLContext可以用于现有的各种http客户机。
因为我们有客户端的公钥和私钥,所以我们需要将私钥从PEM格式转换为der。
kcs8 -topk8 -inform PEM -outform PEM -in /path/to/generated/client.key -out /path/to/generated/client.key.pkcs8 -nocrypt
复制代码
通过在本例中使用本地Nginx服务,我们需要禁用主机名验证。
final Properties props = System.getProper