2016-06-16 38 views
0

我正在使用Playframework为我构建的API解决方案。我的服务器没有提供HTML页面,只有JSON中的API查询响应。我知道playframework可以使用Dhttps.port=9443支持https和自签密钥。 它在文档中写明,仅在开发模式下使用。适用于API的HTTPS:正在生产

因为我没有提供网页(因此没有自签名密钥的浏览器警告),而且我只关心API调用的加密,我可以将它用于生产吗?或者我错过了什么?

回答

1

该文档说,如果您在prod模式下运行应用程序时未提供任何证书,Play将生成一个并运行它。这是不鼓励的,因为证书只是一个你无法控制的随机东西。

回到使用专用证书的问题,如果您在浏览器中打开该URL,它会警告用户“不可信证书”。由于您的情况并非如此,如果您的Web服务器消费者被限制为限定集,我认为您可以在产品模式下使用它。在继续之前,请考虑它的其他利弊。

如果您希望继续,您可以随时生成您自己的私人证书并使用它来运行应用程序。根据播放文档,这个命令是:

keytool -genkeypair -v \ 
-alias cert \ 
-dname "CN=<CHANGE ME>, OU=<CHANGE ME>, O=<CHANGE ME>, L=<CHANGE ME>, ST=<CHANGE ME>, C=IN" \ 
-keystore cert.jks \ 
-keypass a1AhzIabP1 \ 
-storepass a1AhzIabP1 \ 
-keyalg RSA \ 
-keysize 4096 \ 
-ext KeyUsage:critical="keyCertSign" \ 
-ext BasicConstraints:critical="ca:true" \ 
-validity 9999 

使用此命令

keytool -list -v \ 
-keystore conf/cert.jks \ 
-storepass a1AhzIabP1 

然后将其配置在application.conf这样

https.port=9443 
play.server.https.keyStore.path="conf/cert.jks" # relative path to your certificate 
play.server.https.keyStore.password="a1AhzIabP1" 

希望它可以帮助检查证书!

+0

感谢您的建议。您是否知道使用私人证书的其他利弊? – user2460477

相关问题