このページは編集中です。更新が保留になっている可能性があります。
server | v5 switch to v4  

証明書の設定

目次

ガイド

次の方法で、クライアントがPhotonサーバにセキュアプロトコルで接続できるようにします。

  1. SSL証明書を取得します:
    a. 開発用に、自己署名入りのSSL証明書を生成することができます。

  2. 証明書と鍵を同じファイル "server.pem "に追加します。

  3. "deploy\bin_Win64\certs"の下にある「server.pem」をコピーして貼り付けます。 フォルダのパスを変更したい場合は、こちら(#securelistenerconfiguration)をご覧ください。

  4. PhotonServer.config "で、セキュリティを確保するリスナーの "Secure "属性を有効にします。 詳しくはこちらをご覧ください。

  5. Photonサーバを再起動すると完成です。 ログファイルを開いてみましょう。"deploy\bin_WinXX\log\Photon-LoadBalancing-.log"を開くと、以下のようになっています。

        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を使用しています。 以下は、該当するリスナー(TCPListener、S2S、HttpListener、WebSocketS2S)に使用する設定です。 リスナーをセキュアにする(証明書を使用する)ためには、"Secure "をTrueに設定する必要があります。 これは、他のすべての証明書関連の設定を有効にするために必要です。

トップに戻る

共通の属性

証明書ファイルのパスがデフォルトの期待値と一致していれば、すべての設定を省略できます。 "RootCertificates "ファイルは完全に任意なもので、これがなくてもサーバーは動作しますので、省略できます。

暗号リストの文字列については、SSLv3、TLS 1.0および1.1が非推奨となるため、TLS >= 1.2を推奨します。

  • Secure: TrueまたはFalseで、このリスナーが安全な接続を使用するかどうかを定義します。
  • CipherList: OpenSSLのサイファーリストの文字列です。 詳しくはOpenSSLのサイファードキュメントページを参照してください。特に "CIPHER STRINGS "と "EXAMPLES "に詳細が記載されています。 デフォルトは "DEFAULT" です。 "Secure"は "True "である必要があります。
  • CertificatePath: 証明書ファイルを格納するディレクトリの絶対パスで、末尾のスラッシュは含みません。 macrosを使用することもできます。 "Secure"は "True "である必要があります。
  • RootCertificates: ルート証明書がある場合は、そのファイルの名前です。 デフォルトは "root.pem "です。 フォルダは "CertificatePath "で定義されます。 "Secure"は "True "である必要があります。

    • MinProtocolVersion: サポート対象のTLS最低バージョンです。 デフォルトは「TLS」ですが、たとえば「TLS12」等に設定できます。
    • MaxProtocolVersion: サポート対象のTLS最高バージョンです。

    ### クライアントからサーバーリスナー

    以下はTCPListener、PolicyFileListener、またはHTTPListenerに必要な設定です。

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

    #### サーバー証明書の設定

    例:

  <TCPListener>
    <ServerCertificates>
      <ServerCertificate Path=""
       Certificate=""
       Key="">
      </ServerCertificate>
      <!-- add more ServerCertificate here if needed -->
    </ServerCertificates>
  </TCPListener>
  • Path: 証明書とキーファイルを含むフォルダへのパス。
  • Certificate: 証明書を含むファイルの名前。
  • Key: プライベートキーを含むファイルの名前。

    ### サーバーからサーバーリスナー

    以下は、S2SまたはWebSocketS2Sに必要な設定です。

  • Certificate: 証明書を含むファイルの名前。

  • Key: プライベートキーを含むファイルの名前。
  • Password: キーのパスワード。

    #### セキュアなポートの設定

    例:

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

## 自己署名証明書の生成

以下は、テストや開発のために自己署名入りのSSL証明書をすばやく生成するための、ごく基本的でシンプルな手順です。 ここでは、使用する各方法、手順、コマンドについての詳細は説明しません。 ここで紹介していない方法やツールを使っても構いません。 インターネットで情報を集めてみてください。

OpenSSLをインストールし、バイナリを環境変数のパスに適切に追加する必要があります。

  1. req.confなどの設定ファイルを用意します(値は任意のものに置き換えてください)。

        [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
    1. 管理者権限で以下のコマンドを実行し、証明書と鍵を生成します。
        openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout cert.key -out cert.pem -config req.conf -extensions 'v3_req'
    1. "cert.pem"と "cert.key"の内容を1つのファイル "server.pem"にコピーします。

トップに戻る

トラブルシューティング

IPアドレスではなくドメイン名を使用

クライアントから接続するサーバーのアドレスは、IPアドレスではなく、ドメイン名である必要があります。

トップに戻る

WSSプレフィックスを使用する

クライアントからの接続先サーバーアドレスには、WebSockets Secure プロトコルを使用していることを示す「wss://」という接頭辞またはスキームが必要です。

トップに戻る

正しいポート番号の使用を確認する

サーバーへの接続に使用するポート番号を再確認してください。 これは、"PhotonServer.config "で設定された "Master "アプリケーションのWebSocket Listenerのポートと一致する必要があります。 上の例(「Guide」のステップ3)では、9090です。 Photon Cloudでは19090を使用しています](~/realtime/current/connection-and-authentication/tcp-and-udp-port-numbers)です。

トップに戻る

クライアントがサーバーに到達できるか確認

"ping"コマンドでサーバーに到達してみてください。 開発目的で、ドメイン名がまだ DNS に対応していない場合は、ローカルの「hosts」ファイルに IP アドレスを追加します。 Windowsの場合は、「C:\Windows\system32\drivers\etc\hosts」の下にあります。 次のフォーマットの行を追加します。 <ドメイン名>`.

* 例:* サーバーがクライアントと同じマシン上にあり、ドメインが "photon.example.com "の場合

127.0.0.1           photon.example.com

Aまた、サーバーから必要なポートを開くことも忘れないでください。 詳しくは「ファイアウォールの設定」をご覧ください。

トップに戻る

UDPまたはTCPでPhotonサーバに接続してみる

トランスポートプロトコルを切り替えてみて、クライアントがサーバーに接続できることを確認してください。

トップに戻る

WSSを使用してPhoton Cloudへの接続を試みる

クライアントに問題がないことを確認するために、Photon Cloudに接続して動作するかどうかを確認します。

トップに戻る

Chromeのコンソールエラー ERR_CERT_INVALID_AUTHORITY

Chromeでこのエラーが発生した場合は、以下の回避策をご利用ください。

サーバーアドレスが「wss://photon.example.com:9090」の場合。

  1. 新しいタブを開きます。
  2. アドレスバーに「https://photon.example.com:9090」(サーバーアドレスの「wss://」を「https://」に置き換えてください)と入力し、エンターキーをクリックします。
  3. Chromeは、サイトが安全でないことを訴えます。
  4. Advancedをクリックします。
  5. "Proceed to https://photon.example.com:9090 (unsafe) "をクリックします。これにより、Chromeはwssを使った自己署名証明書を受け入れるようになります。
  6. Chromeを再起動します。
  7. クライアントを再度テストします。

トップに戻る

Chromeコンソールエラー: Errcertcommonnameinvalid

以前、ERR_CERT_INVALID_AUTHORITYエラーで使用した回避策を試すことができます。 または、証明書にSAN(Subject Alternative Names)が使用されていることを確認する必要があります。 SANを使用する自己署名SSL証明書を生成する方法については、「OpenSSLの使用」を参照してください。

トップに戻る

クリーンなSDKのガイドを試す

自己ホスティングしているPhotonサーバーのWSSの設定で問題が発生した場合は、まず、SDKのクリーンバージョンをダウンロードして、そのSDKに記載されている手順を実行することをお勧めします。 同じ問題が発生しない場合は、お客様のカスタム設定に問題がないことを確認する必要があります。

トップに戻る

アプリケーションとしてPhotonを起動してみる

Photonサーバをサービスとして起動するように設定した場合、いくつかの問題が発生することがあります。 アプリケーションとして起動した場合の手順はこちら を参照してください。

トップに戻る

サーバのログを読む

必ずログを確認してください。 サーバーのログファイルの場所は こちらを参照してください。

ドキュメントのトップへ戻る