Quarkus实战:专为Kubernetes而优化的Java解决方案
上QQ阅读APP看书,第一时间看更新

3.8 使用SSL进行安全连接

问题

如何保护连接,以防止攻击者窃取敏感信息?

解决方案

启用Quarkus使用SSL来保护连接。

当要传输的信息是敏感信息(密码、账号、健康信息等)时,确保客户端和应用程序之间的通信安全是非常重要的。因此,使用SSL来保护服务之间的通信是非常重要的。

为了保证通信的安全,必须提供两个元素:证书和相关的密钥文件。这两个元素可以单独提供,也可以以keystore(密钥库)的形式提供。

配置Quarkus来使用一个包含证书条目的keystore:

❶设置HTTPS端口

❷keystore的类型和相对于src/main/resources的位置

❸打开keystore的密码

启动应用程序并向HTTPS端点发送请求:

由于证书是自签的,所以提供--insecure标志来跳过证书验证。在一个证书不是自签的例子中,不应该提供insecure标志。为了简单起见,在这个例子中使用了这个标志。

在配置文件中以纯文本的形式提供密码是不好的做法。可以通过使用环境变量QUARKUS_HTTP_SSL_CERTIFICATE_KEY_STORE_PASSWORD来提供,就像你在本书开头介绍MicroProfile Config规范时读到的那样。

讨论

对于忙碌的开发人员来说,可以这样为Quarkus生成自己的密钥证书:

1.进入src/main/resources

2.执行以下命令:

另见

要了解如何生成证书、密钥存储和信任存储,请参阅以下网页。

·Oracle:Java Platform,Standard Edition Tools Reference:keytool(https://oreil.ly/mwOSH