
上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)