Java Play框架:内部web服务的密钥库

Java Play框架:内部web服务的密钥库,java,playframework,ssl-certificate,Java,Playframework,Ssl Certificate,我们正在尝试让播放设置与我们的内部CRM对话。我们之前的所有应用程序都是在一个overkill JSF框架(ICEfaces)中编写的,但是它们在与我们的CRM对话时工作得很好,因为JSF应用程序部署在一个glassfish盒子上,我们在那里安装了glassfish证书,以便glassfish能够与我们的CRM web服务通信 现在我们正试图让play做同样的事情,我们有点困难,因为我们想在netty上运行play应用程序。我们如何将证书导入密钥库(或类似库),以便它们能够与我们的CRM通信?由

我们正在尝试让播放设置与我们的内部CRM对话。我们之前的所有应用程序都是在一个overkill JSF框架(ICEfaces)中编写的,但是它们在与我们的CRM对话时工作得很好,因为JSF应用程序部署在一个glassfish盒子上,我们在那里安装了glassfish证书,以便glassfish能够与我们的CRM web服务通信

现在我们正试图让play做同样的事情,我们有点困难,因为我们想在netty上运行play应用程序。我们如何将证书导入密钥库(或类似库),以便它们能够与我们的CRM通信?由于CRM是我们公司内部的,因此证书会根据需要进行自签名和分发

我在play config文件中尝试了以下内容-但我不确定这一点,因为这些配置属性似乎更适合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应用程序中,为我们包装Web服务,这样我们就不必为每个服务构建客户机代码(类似于您为Amazon的S3服务下载的jar)。该服务jar使用XML/Rest与我们的服务通信。当我们不使用SSL时,它在play框架中工作正常。

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