Certificate Setup
指南
要讓您的客戶使用安全協議連接您的Photon伺服器,步驟如下。
獲得一個SSL認證。
**a.**出於開發目的,您可以生成一個自簽名的SSL認證。- 參見"生成自簽名認證 "部分。
- 確保伺服器可以被客戶端訪問。
- 確保認證被安裝到正確的認證庫中。
b. 對於生產伺服器,獲得由受信任的認證頒發機構簽署的認證。
將認證和密鑰添加到同一個文件 "server.pem "中。
復制/貼上 "server.pem "文件到 "deploy\bin_Win64\certs "下。
如果您想改變文件夾路徑,請看點此。在 "PhotonServer.config "中為 'to be secured' 監聽啟用 "安全 "屬性。
閱讀更多信息點此。重新啟動您的Photon伺服器...... voilà!
如果您打開日誌文件。"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來處理認證(格式、配置等)。
為了使監聽安全(使用認證),將 "安全 "設置為True
。
所有其他與認證有關的設置都需要這樣才能生效。
共同屬性
如果認證文件的路徑符合默認的預期值,您可以跳過所有設置。
"RootCertificates "文件可以跳過,因為它是完全可有可無的,沒有它伺服器也可以運作。
對於密碼列表字符串,我們推薦TLS >= 1.2,因為SSLv3,TLS 1.0和1.1應該被廢棄。
- Secure:
True'或
False'來定義該監聽器是否使用安全連接。 - CipherList:OpenSSL的密碼列表字符串。
更多信息,特別是 "CIPHER STRINGS "和 "EXAMPLES "部分,請參見OpenSSL的密碼器文檔頁。
默認為 "DEFAULT"。
要求 "安全 "為True
。 - CertificatePath:包含認證文件的目錄的絕對路徑,沒有尾部斜線。
您可以使用 macros 。
要求 "安全 "為True
。 - RootCertificates:包含根認證的文件的名稱(如果有的話)。
默認為 "root.pem"。
文件夾由 "CertificatePath "定義。
要求 "安全 "為True
。 - MinProtocolVersion:支援的最小的TLS版本。
例如,可以設置為 "TLS12",默認為 "TLS"。 - MaxProtocolVersion:最大支援的TLS版本。
客戶端到伺服器監聽
以下是TCPListener、PolicyFileListener或HTTPListener應該使用的設置。
- ValidClientCertificateDomains:
- CertificateValidationExceptions:
- RemoteAddressRestrictions:
- SupportClearTextConnections:
- DefaultDomain:
伺服器認證配置
Example:
XML
<TCPListener>
<ServerCertificates>
<ServerCertificate Path=""
Certificate=""
Key="">
</ServerCertificate>
<!-- add more ServerCertificate here if needed -->
</ServerCertificates>
</TCPListener>
- Path:包含認證和私鑰文件的文件夾的路徑。
- Certificate:包含認證的文件的名稱。
- Key:包含私鑰的文件名。
伺服器到伺服器監聽
以下是應該用於S2S或WebSocketS2S的設置。
- Certificate:包含認證的文件名。
- Key:包含私鑰的文件名。
- Password:私鑰的密碼。
安全端口配置
Example:
XML
<S2S>
<SecurePorts>
<SecurePort Port="">
</SecurePort>
<!-- add more SecurePort here if needed -->
</SecurePorts>
</S2S>
生成自簽名認證
以下是為測試和開發目的快速生成自簽名SSL認證的非常基本和簡單的步驟。
我們不會對每個方法、步驟或命令的使用進行詳細說明。
請隨意在網路上查找更多信息。
您需要安裝OpenSSL,並在環境變量路徑中正確添加二進制文件。
準備一個配置文件,例如 "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
用管理權限執行以下命令,生成認證和私鑰:
Plain Old Text
openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout cert.key -out cert.pem -config req.conf -extensions 'v3_req'
將 "cert.pem "和 "cert.key "的內容復制到文件 "server.pem "中。
問題排除
確保使用域名而非 IP 地址
從客戶端來看,要連接的伺服器地址應該是一個域名,而不是IP地址。
確保使用 WSS Prefix
在客戶端,要連接的伺服器地址應該有Prefix或方案 "wss://",這表明您正在使用WebSockets Secure協議。
確保使用正確的端口號
仔細檢查用於連接到伺服器的端口號。
它需要與 "PhotonServer.config "中配置的 "Master "應用程序的WebSocket監聽的端口一致。
在上面的例子中("指南 "的第3步),它是9090。
在Photon Cloud上我們使用19090。
確保客戶端可以索取伺服器
試著用 "ping "命令索取伺服器。
為了開發的目的,如果域名還沒有被DNS准備好,您可以把IP地址添加到您的本地 "hosts "文件中。
在Windows上,它位於 "C:\Windows\system32\drivers\etc\hosts "下。
添加一行格式的文件:<IP Address> <domain name>
。
Example:
如果伺服器與客戶端在同一台機器上,並且您的域名是 "photon.example.com"
127.0.0.1 photon.example.com
另外,別忘了從伺服器上打開所需的端口。
閱讀更多關於"防火牆設置"。
嘗試使用UDP或TCP連接到Photon伺服器
嘗試切換傳輸協議,確保客戶端可以連接到伺服器。
嘗試使用WSS連接到Photon Cloud
為了確定客戶端沒有問題,請連接到PhotonCloud,看看是否能正常工作。
Chrome Console Error: ERR_CERT_INVALID_AUTHORITY
如果您在Chrome瀏覽器中遇到這個錯誤,您可以使用以下解決方法:
如果您的伺服器地址是 "wss://photon.example.com:9090":
- 打開一個新的標簽。
- 在地址欄中輸入 "https://photon.example.com:9090"(將伺服器地址中的 "wss://"替換為 "https://")並重新點擊。
- Chrome會提醒該網站不安全。
- 點擊 "進階"。
- 點擊 "進入https://photon.example.com:9090(不安全)"。這將使Chrome接受您使用wss的自簽名認證。
- 重新啟動Chrome瀏覽器。
- 再次測試您的客戶端。
Chrome 控制台錯誤: ERR_CERT_COMMON_NAME_INVALID
您可以嘗試之前用於處理ERR_CERT_INVALID_AUTHORITY
錯誤的解決方法。
或者您需要確保您的認證使用主題替代名稱(SAN)。
參見"使用OpenSSL",了解如何生成一個使用SAN的自簽名SSL認證。
Try Guide From Clean SDK
如果您在為自己的Photon伺服器配置WSS時遇到問題,我們建議您先下載一個乾淨的SDK版本,並按照上面提供的步驟進行操作點此。
如果您沒有遇到同樣的問題,那麼您需要找出您自己的自定義設置中的問題。
嘗試將Photon作為一個應用程序啟動
有時,當Photon伺服器被配置為一個服務啟動時,可能會遇到一些問題。
我們建議您按照點此提供的步驟,將Photon伺服器作為一個應用程序啟動。
閱讀伺服器日誌
總是必須!
檢查日志。
伺服器的日誌文件的位置可以在點此找到。