2016-06-16 2 views
0

저는 제작 한 API 솔루션에 Playframework를 사용하고 있습니다. 내 서버에서 제공하는 HTML 페이지는없고 JSON의 API 쿼리 응답 만 있습니다. 플레이 프레임 워크는 을 사용하여 자체 서명 된 키를 사용하여 https를 지원할 수 있음을 알고 있습니다. 이것은 Dev 모드에서만 사용된다는 문서에 기록되어 있습니다.API 용 HTTPS : 제작 중

웹 페이지가 제공되지 않으므로 (자체 서명 키에 대한 브라우저 경고가 표시되지 않음) API 호출에 대한 암호화에만 신경을 쓰고 있습니다. 프로덕션에도이 코드를 사용할 수 있습니까? 또는 나는 무엇인가 놓치고 있냐?

답변

1

설명서에 따르면 응용 프로그램을 찌르기 모드로 실행할 때 인증서를 제공하지 않으면 Play에서 하나를 생성하고 실행합니다. 이것은 인증서가 통제력이없는 무작위적인 물건이기 때문에 바람직하지 않습니다.

브라우저에서 URL을 열면 개인 인증서 사용과 관련된 질문에 따라 "신뢰할 수없는 인증서"가 사용자에게 경고됩니다. 이것은 당신에게 해당하지 않으며 웹 서버 소비자가 제한된 세트로 제한되어 있다면, 당신은 찌르기 모드로 사용할 수 있다고 생각합니다. 진행하기 전에 다른 찬반 양론을 고려하십시오.

계속 진행하려면 개인 인증서를 생성하고 앱을 실행하는 데 사용할 수 있습니다. 이것에 대한 문서를 플레이에 따라 명령은 다음과 같습니다

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 

이 명령 그런 다음이

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

는 희망이 도움이처럼 application.conf에서 그것을 구성

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

를 사용하여 인증서를 확인하라!

+0

제안 해 주셔서 감사합니다. 개인 인증서를 사용하는 다른 장단점에 대해 알고 있습니까? – user2460477