我正在使用playframework作为我构建的API解决方案。我的服务器没有提供HTML页面,只有JSON中的API查询响应。我知道PlayFramework可以使用 Dhttps.port=9443
使用自签名的密钥来支持HTTP。它写在文档中,仅在开发模式下使用。
既然,我没有提供网页(因此没有浏览器警告,请警告自签名键),我只对API呼叫的加密感到困扰,我也可以将其用于生产吗?还是我错过了什么?
文档说,如果您在产品模式下运行应用程序时不提供任何证书,则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"
希望它有帮助!