2016-06-16 39 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

相關問題