This document is about: SERVER 4
SWITCH TO

보안 웹소켓 셋업

'wss://...' 으로 보안 웹 소켓을 이용하여 클라이언트를 Photon 서버에 접속 하도록 하려면 다음 단계를 따라서 합니다.

  1. SSL 인증서를 받습니다.

1.1. 개발 목적으로는 자체-사인된 SSL 인증서를 생성할 수 있습니다. IIS7 이 설치된 개발 서버가 있으면 다음 단계를 따라 합니다. https://technet.microsoft.com/en-us/library/cc753127%28v=ws.10%29.aspx

"friendly name"은 웹 클라이언트가 서버에 접속하는데 사용하는 이름과 같아야 합니다. 예:photon.example.com

완료 후, 인증서가 올바른 인증 저장소에 설치 되었는지 확인 하세요.

  • 커맨드 라인에 "mmc.exe" 를 입력 하여 Microsoft Management Console을 오픈 합니다.
  • "파일" 메뉴에서 "스냅인 추가/제거"를 선택 합니다.
  • "인증서" -> "추가" -> "컴퓨터 계정" -> "로컬 컴퓨터" -> "마침" 순으로 진행 합니다.

  • 왼쪽의 "인증서" -> "개인용" -> "인증서"를 노드를 확장합니다.
  • 인증서가 다음과 같이 표시 되어야 합니다:

인증서를 보기 위하여 Management Console 사용 법에 대한 상세한 설명은 다음 링크를 통해 알아 보세요: https://msdn.microsoft.com/en-us/library/ms788967.aspx

1.2. II7 이 설치된 개발 서버가 없다면 자체-사인된 SSL 인증서를 생성하는 다양한 인터넷 튜토리얼 중 하나를 따라 해 보세요

인증서를 발급 받았다면 1.1 에 설명한 대로 "로컬 컴퓨터"에 저장된 인증서를 오픈 합니다.

"개인용"을 우측 마우스로 클릭하여 , "모든 작업" -> "가져오기"를 선택 합니다. 인증서를 가져오는 위자드를 따라 진행 합니다.

1.3. 출시 서버에 대해서는 자체 서명된 인증서 대신 신뢰 할 수 있는 인증 기관으로 서명 받은 인증서를 발급 받으시기 바랍니다. 1.2 단계 부터 따라하여 서버에 "로컬 컴퓨터" 인증 저장에 설치 하시기 바랍니다.

  1. PhotonServer.config 에 WebSocket 리스너 속성을 추가 합니다:

    속성 디폴트값 설명
    Secure TRUE True 이면 SSL에 의해 보안화된 리스너입니다.
    StoreName MY 인증서가 위치한 저장소 이름 입니다. "개인" 저장소에 인증서를 설치 하였다면,위에서 설명한것과 같이 값을 "MY" 로 설정합니다. (또는 StoreName 설정을 생략하여 기본 값을 사용하도록 합니다).
    CertificateName Photon 인증서 이름. 인증서 저장소(단계1을 보세요)'IssuedTo' 필드의 값을 입력 합니다."Friendly Name" 이 아닙니다.
    UseMachineStore FALSE 머신 저장소("로컬 컴퓨터 저장소")가 사용될 때 정의 합니다. 위에서 언급된 바와 같이 머신 저장소에 인증서를 설치하고 값을 "TRUE"로 설정 하는 것을 권장 합니다. 이렇게 하는 이유는 어떤 계정으로 어디에서 Photon 이 실행되는 것에 관계없이, 그리고 Photon 이 어플리케이션 또는 서비스로 시작되는 것에 관계없이 사용할 수 있도록 하기 위함입니다. 이 값이 "FALSE" 이면, Photon 을 어플리케이션으로 시작 하면 "현재 사용자"의 인증서 저장소에서 인증서를 찾을 것이며 서비스로 시작 되면 "서비스" 인증서 저장소와 연관된 장소에서 찾을 것 입니다.
  2. Photon 서버를 재시작 하세요... 어떤가요!


보안 웹소켓의 Photon 서버 환경설정의 예 입니다:

XML


...
<WebSocketListeners>
    
    <-- Web Sockets Listener with SSL -->
    <WebSocketListener
        IPAddress="0.0.0.0"
        Port="9091"
        DisableNagle="true"
        InactivityTimeout="10000"
        OverrideApplication="Lite"
        Secure = "true"
        StoreName = "My"
        CertificateName = "server1.example.com"
        UseMachineStore = "true">      
    </WebSocketListener>
    
</WebSocketListeners>
...

Back to top