This document is about: SERVER 5
SWITCH TO

수정중인 페이지 입니다.

인증서 설치

지침

보안 프로토콜을 사용하여 Photon Server를 연결하는 클라이언트를 허용하려면 다음과 같이 진행하세요.

  1. SSL 인증서 취득:
    a. 개발 목적으로, 자체 서명된 SSL 인증서를 생성할 수 있습니다.

  2. 인증서와 키를 동일한 파일 "server.pem"에 추가하세요

  3. "server.pem" 파일을 복사하여 "deploy\bin_Win64\certs"에 붙여 넣습니다.
    폴더 경로를 변경하고 싶으시면 여기를 확인해 보세요.

  4. "PhotonServer.config" 파일에 Enable 리스너의 "Secure" 속성이 'to be secured'로 사용 가능하도록 합니다.
    여기를 더 읽어 보세요.

  5. Photon Server를 다시 시작합니다. 좋습니다!
    "deploy\bin_WinXX\log\Photon-LoadBalancing-.log" 로그 파일을 열어보면, 다음과 같은 정보를 찾을 수 있습니다:

    Plain Old Text

    65896: 12:51:13.577 - Config|INFO| HTTP: 0.0.0.0:19093 (*:19093::NameServer) - uses SSL
    65896: 12:51:13.577 - Config|INFO| HTTP: 0.0.0.0:19093 (*:19093::NameServer) - Cipher list: DEFAULT
    65896: 12:51:13.577 - Config|INFO| HTTP: 0.0.0.0:19093 (*:19093::NameServer) - Server Certficate: D:\ExitGames\SDKs\Server\Photon-OnPremises-Server-Classic-SDK_v5-0-12-24441-RC1\deploy\bin_Win64\certs\server.pem
    65896: 12:51:13.578 - Config|INFO| HTTP: 0.0.0.0:19093 (*:19093::NameServer) - Server Domain Name: www.myawesomegame.com
    

보안 리스너 환경 구성

v5에서는 인증서 처리(형식, 구성 등)에 OpenSSL을 사용합니다.
리스너를 안전하게 만들려면(인증서 사용) "Secure"를 True로 설정합니다.
다른 모든 인증서 관련 설정을 사용하려면 이 설정이 필요합니다.

일반적인 속성

인증서 파일(들) 경로(들)가 기본값과 일치하는 경우 모든 설정을 건너뛸 수 있습니다.
"RootCertificates" 파일은 완전히 선택 사항이며, 이 파일 없이도 서버가 작동할 수 있으므로 생략할 수 있습니다.

암호 목록 문자열의 경우 SSLv3로 TLS >= 1.2를 권장하며 TLS 1.0 및 1.1은 더 이상 사용하지 않는 것이 좋습니다.

  • Secure: True 또는 False를 사용하며 리스너가 보안 연결을 사용하는지 여부를 정의합니다.
  • CipherList: OpenSSL의 암호 목록 문자열.
    더 상세한 내용은 OpenSSL의 암호 문서 페이지 를 참고하시고, 특히"CIPHER STRINGS" 와 "EXAMPLES" 부분을 자세히 살펴보세요.
    기본값은 "DEFAULT"입ㄴ다.
    "Secure" 가 True로 설정 되어야 합니다.
  • CertificatePath: 끝에 슬래시 문자가 없는 인증서 파일이 존재하는 디렉토리의 절대 경로
    매크로를 사용할 수 있습니다.
    "Secure"를 True로 설정이 필요합니다.
  • RootCertificates: 루트 인증서가 있는 경우 루트 인증서를 가지고 있는 파일의 이름.
    기본값은 "root.pem"입니다.
    "CertificatePath"에 폴더가 정의되어 있습니다.
    "Secure"르 True로 설정이 필요합니다..
  • MinProtocolVersion: 최소 지원되는 TLS 버전.
    예를 들어, "TLS12"로 설정할 수 있으며, 기본값은 "TLS"입니다.
  • MaxProtocolVersion: 최대 지원되는 TLS 버전.

클라이언트-서버 리스너

다음은 TCPListener, PolicyFileListener 또는 HTTPListener에 사용해야 하는 설정입니다.

  • ValidClientCertificateDomains:
  • CertificateValidationExceptions:
  • RemoteAddressRestrictions:
  • SupportClearTextConnections:
  • DefaultDomain:

서버 인증서 구성

예제:

XML

<TCPListener>
  <ServerCertificates>
    <ServerCertificate Path=""
     Certificate=""
     Key="">
    </ServerCertificate>
    <!-- add more ServerCertificate here if needed -->
  </ServerCertificates>
</TCPListener>
  • Path: 인증서 및 키 파일이 들어 있는 폴더의 경로
  • Certificate: 인증서가 들어 있는 파일의 이름
  • Key: 개인 키가 들어 있는 파일의 이름

서버-서버 리스너

다음은 S2S 또는 WebSocketS2S에 사용해야 하는 설정입니다.

  • Certificate: 인증서가 들어 있는 파일의 이름
  • Key: 개인 키가 들어 있는 파일의 이름
  • Password: 키에 대한 비밀번호

보안 포트 구성

예:

XML

<S2S>
  <SecurePorts>
    <SecurePort Port="">
    </SecurePort>
    <!-- add more SecurePort here if needed -->
  </SecurePorts>
</S2S>

자체 서명된 인증서 생성

다음은 테스트 및 개발 목적으로 자체 서명된 SSL 인증서를 빠르게 생성할 수 있는 매우 기본적이고 간단한 단계입니다.
사용된 각 방법, 단계 또는 명령에 대해 자세히 설명하지는 않습니다.
인터넷에서 더 많은 정보를 찾아보세요.

환경 변수 경로에 바이너리가 올바르게 추가된 OpenSSL을 설치해야 합니다.

  1. 환경 구성 파일을 준비합니다. 예, "req.conf" (값을 맞게 교체합니다):

    Plain Old Text

    [req]
    distinguished_name = photon_wss
    x509_extensions = v3_req
    prompt = no
    [photon_wss]
    C = DE
    ST = HH
    L = Hamburg
    O = ExitGames
    OU = Photon
    CN = www.myawesomegame.com
    [v3_req]
    keyUsage = keyEncipherment, dataEncipherment
    extendedKeyUsage = serverAuth
    subjectAltName = @alt_names
    [alt_names]
    DNS.1 = www.myawesomegame.com
    DNS.2 = photon.myawesomegame.com
    DNS.3 = *.myawesomegame.com
    
  2. 관리자 권한을 다음 명령어를 통해 인증서와 키를 생성합니다:

    Plain Old Text

    openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout cert.key -out cert.pem -config req.conf -extensions 'v3_req'
    
  3. "cert.pem" 파일과 "cert.key" 파일의 내용을 하나의 "server.pem"로 복사합니다.

문제 해결

IP 주소가 아닌 도메인 이름을 사용하세요.

클라이언트에서 연결할 서버 주소는 IP 주소가 아닌 도메인 이름이어야 합니다.

WSS 프리픽스를 사용해야 합니다.

클라이언트에서 서버로 접속하는 주서는 프리픽스 또는 스키마 "wss://"이 되어야 하며 이 프리픽스는 웹 소켓 보안 프로토콜을 사용하고 있다는 것을 나타냅니다.

올바른 포트 번호를 사용하세요

서버 연결에 사용되는 포트 번호를 다시 확인합니다.
"PhotonServer.config"에서 구성한 "Master" 애플리케이션의 WebSocket 리스너 포트와 일치해야 합니다.
위에 있는 예제("지침"의 3번째 단계)에서는 9090입니다.
Photon Cloud에서는 19090을 사용합니다.

클라이언트가 서버에 접속할 수 있어야 합니다

"ping" 명령을 사용하여 서버에 접속해 보십시오.
개발을 위해 도메인 이름이 아직 DNS를 준비하지 않은 경우 로컬 "hosts" 파일에 IP 주소를 추가할 수 있습니다.
Windows에서는, "C:\Windows\system32\drivers\etc\hosts"에 존재합니다.
<IP 주소> <도메인 이름> 형식으로 한 줄을 추가하세요.

예제:
서버와 클라이언트가 동일한 컴퓨터에 있다면 도메인이 "photon.example.com"이면 다음과 같이 추가합니다.

127.0.0.1           photon.example.com

또한, 서버에서 필요한 포트를 오픈하는 것을 잊지 마세요.
"방화벽 설정"에 대해서 더 알아보세요.

UDP 또는 TCP를 사용하여 Photon Server에 접속해 보기

클라이언트가 서버에 연결할 수 있도록 전송 프로토콜을 전환해 보십시오.

WSS를 사용하여 Photon Cloud로 접속해 보세요

클라이언트에 이상이 없는지 확인하려면 Photon Cloud에 연결하여 작동하는지 확인합니다.

크롬 콘솔 오류: ERR_CERT_INVALID_AUTHORITY

크롬에서 이 오류가 발생하면 다음 해결 방법을 사용할 수 있습니다:

서버 주소가 "wss://photon.example.com:9090"인 경우:

  1. 새로운 탭을 엽니다.
  2. "https://photon.example.com:9090" 주소 막대에서 (서버 주소를 "wss://" 에서 "https://"로 변경하고) 엔터를 누릅니다.
  3. 크롬이 해당 사이트가 안전하지 않다는 메시지가 표시됩니다.
  4. "고급"을 클릭합니다.
  5. "https://photon.example.com:9090 (안전하지 않음)으로 계속"을 클릭합니다. 이렇게 하면 크롬이 wss를 사용한 자체 서명된 인증서 사용을 받아들이게 됩니다.
  6. 크롬을 재시작 합니다.
  7. 클라이언트를 다시 테스트합니다.

크롬 콘솔 에러: ERR_CERT_COMMON_NAME_INVALID

ERR_CERT_INVALID_AUTHORITY 오류에 사용된 이전 해결 방법을 시도할 수 있습니다.
또는 인증서에 SAN(Subject Alternative Name)을 사용하는지 확인해야 합니다.
SAN를 사용하는 자체 서명된 SSL 인증서 생성 방법에 대해서"OpenSSL 사용하기"를 참고하세요.

클린 SDK에서 가이드를 사용해 보십시오.

자체 호스팅 된 Photon Server에 대해 WSS를 구성할 때 문제가 발생하면 깨끗한 SDK 버전을 다운로드하고 여기에서 제공된 단계를 따르는 것이 좋습니다.
동일한 문제가 발생하지 않는 경우 사용자 지정 설정에 어떤 문제가 있는지 확인해야 합니다.

Photon을 애플리케이션으로 시작을 해 보세요

때때로 Photon Server를 서비스로 시작하도록 구성할 때 일부 문제가 발생할 수 있습니다.
애플리케이션으로 시작된 Photon Server와 함께 여기에서 제공하는 단계를 따르는 것이 좋습니다.

서버 로그를 확인해 보세요

항상 로그를 확인하세요!
로그를 확인하세요.
서버의 로그 파일들의 위치는 여기에서 확인하실 수 있습니다.

Back to top