簡體   English   中英

創建一個SSL服務器套接字終止符

[英]Create an SSL server socket terminator

我需要將EPP(基於會話的協議-https: //tools.ietf.org/html/rfc5734 )轉換為基於HTTP請求/響應的協議(JSON)。 JSON部分已經被編碼,並且正在與一些客戶端一起工作。

我看過使用websockets的nginx,但是websockets對於原始EPP協議來說顯得太高了。

我需要解決以下過程:

  1. nginx終止SSL TCP連接
  2. 讀取EPP請求(XML)-最好在PHP中
  3. 轉換為JSON並將其發送到HTTP服務器
  4. 讀取結果
  5. 轉換為XML並將其發送回EPP連接

nginx中是否有推薦的技術來實現這一目標? 我可以編寫PHP套接字服務器而不必太麻煩。

那么您正在構建EPP服務器嗎? 歡迎來到EPP世界,從誕生之日甚至更早之前就處於某個人之中:-)

EPP是使用TLS上的XML的“簡單”協議(通常,某些實例是通過HTTPS進行的,在起草期間,它們是諸如SMTP或BXXP上的其他提議)。

因此,作為服務器,您需要能夠處理TLS終止並讀取XML的內容。 這在任何語言中都是可能的,而不是火箭科學。 當然,魔鬼在於細節。 而且您沒有提供足夠的詳細信息/上下文來確切地了解您可能遇到的約束或特定問題。 因此,您在這里可能沒什么意思,因為如果您希望有人幫助您,那么編寫一個處理TLS和讀取XML的簡單服務器將需要在此處顯示為代碼。

請確保多次閱讀RFC 5734 ,以了解特定的傳輸注意事項。 當然,您需要記住它是一個有狀態協議,因此,如果您通過無狀態協議在內部“轉發”請求,則需要進行某種身份驗證。

您不需要websocket,實際上我不明白您為什么要談論它們。 您只需要TLS終止,而不需要HTTPS終止。

也看一下HAProxy ,它是類似的流行處理程序。

但是同樣,根據您的特定(未知)約束(特別是客戶端數量,查詢量,所需的SLA等),像stunnel這樣簡單的事情就足夠了。

請注意,您具有適用於Apache的mod_epp 也許生活不再那么美好,但可以給您一些想法。 當服務器收到EPP幀而不是HTTP幀時,它允許使用Apache下的任何CGI程序。

附帶說明一下,除了安全性(但應該在RFC5734中涵蓋)之外,我建議您在編碼,XML名稱空間方面要格外小心,並避免在同一流中使用多種序列化機制(XML內的JSON本身是一個壞主意) JSON中的XML,但我不知道您的“轉換”部分是如何工作的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM