Play 2.2.1 中的 SSL\TLS 支持

Posted

技术标签:

【中文标题】Play 2.2.1 中的 SSL\\TLS 支持【英文标题】:SSL\TLS support in Play 2.2.1Play 2.2.1 中的 SSL\TLS 支持 【发布时间】:2014-01-19 17:27:51 【问题描述】:

我正在玩! (2.2.1, Java) 应用程序和我想允许:

客户端证书 - 只有使用客户端证书的客户端身份验证才能使用应用程序 API。 服务器端证书 - 客户端必须能够通过其受信任的 CA 列表对服务器提供的证书进行身份验证。

什么是玩!这样做的最佳实践?

另外,你知道什么密码算法玩吗!正在使用? (TLS 1.2、1.1、1.0、SSL 3.0、SSL 2.0 等)如果不使用 TLS 1.2,我可以强制执行 Play!使用它?

当您使用 SSL/TLS 进行 Play 时!您将什么用于前端 HTTPS 服务器? Apache、nginx、Netty.IO 或 Play!建在服务器上? (因为根据官方文档,非 Play! 服务器可以更好地处理 HTTPS 请求)。

【问题讨论】:

【参考方案1】:

Play 将 JSSE 用于 TLS,因此您使用 JSSE 附带的 SSLEngine 配置 Play。如果您使用 Play 作为 HTTPS 客户端,那么 WS 将为您进行主机名验证。如果您将 Play 用作 HTTPS 服务器并需要进行客户端身份验证,则应配置自定义 SSLEngineProvider。

有一个激活器模板展示了如何使用 Play 作为 HTTPS 客户端和服务器,使用客户端身份验证:

https://github.com/typesafehub/activator-play-tls-example

【讨论】:

以上是关于Play 2.2.1 中的 SSL\TLS 支持的主要内容,如果未能解决你的问题,请参考以下文章

列出特定 OpenSSL 构建支持的 SSL/TLS 版本

System.Net.WebRequest 支持哪些版本的 SSL/TLS?

SSL / TLS证书|创建跨平台的csr / cer文件?

SSL/TLS深度解析--测试TLS/SSL加密

text 检查给定主机名支持的SSL / TLS版本

在 Tomcat 中配置 SSL/TLS 以支持 HTTPS