java - Play Framework : Keystore for internal web services

标签 java playframework ssl-certificate

我们正尝试让 Play 设置与我们的内部 CRM 对话。我们之前所有的应用程序都是用一个过分杀伤力的 JSF 框架 (ICEfaces) 编写的——但它们在与我们的 CRM 对话时运行良好,因为 JSF 应用程序部署在一个 glassfish 盒子上,我们在其中安装了 glassfish 能够与之通信的证书我们的 CRM 网络服务。

现在我们正试图让 play 做同样的事情,但我们遇到了一些困难,因为我们想在 netty 上运行 play 应用程序。我们如何将证书导入 keystore (或类似库)以便它们可以与我们的 CRM 通信?由于 CRM 是我们公司内部的,因此证书是自签名的,并根据需要分发。

我已经在 Play 配置文件中尝试了以下内容 - 但我不确定这个,因为这些配置属性似乎更多地用于 Play 服务器本身,而不是 Play 应用程序与其他服务进行通信。

# Keystore 
trustmanager.algorithm=jks
ssl.KeyManagerFactory.algorithm=SunX509
keystore.algorithm=jks
keystore.password=changeit
keystore.file=conf/cacerts.jks

我们的一位其他开发人员能够让它工作,但我们不得不将它直接放在我们的代码中,这并不理想。

System.setProperty("javax.net.ssl.trustStore", "C:/webapps/playapp1/cacerts.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
System.setProperty("javax.net.ssl.keyStoreType", "jks");
System.setProperty("javax.net.ssl.keyStore", "C:/webapps/playapp1/keystore.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "changeit");

请注意,我们的 CRM 构建了一个 jar 文件,我们将其放入 JSF 或 Play 为我们包装网络服务的应用程序,因此我们不必为每个服务构建客户端代码(类似于您下载的 jar例如,Amazon 的 S3 服务)。该服务 jar 在下面使用 Jersey 通过 XML/Rest 与我们的服务进行通信。当我们不使用 SSL 时,它在 Play Framework 中工作得很好。

最佳答案

您使用的是什么版本的游戏? 我知道我实际上必须重新编译 playframework,因为它禁用了安全支持。 但我认为那是 1.1 版

关于java - Play Framework : Keystore for internal web services,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10609019/

相关文章:

playframework - 玩 2.0,获取事件路由/url/调用?

json - 创建一个通用的 Json 序列化函数

c++ - 创建自己签名的 OpenSSL 证书

Java,为JButton设置ID

java - 在列表框中选择多个值

java - Play 框架占用磁盘空间

ubuntu - letsencrypt certbot 超时错误

java - Stomp 拦截器不工作

java - 像 Atomikos 这样的 JTA 提供者和像 HikariCP 这样的连接池之间有什么关系?

SSL 和公钥安全