2011-10-10 149 views
4

這個問題類似於 Starting to use OpenSSL 但更具體和詳細,所以我認爲這是公平的問。將http服務器轉換爲https服務器需要什麼?

假設我有,做一個成功的GET場景

  • 下一個簡單的HTTP服務器創建一個監聽套接字
  • 客戶端連接
  • 通過的recv
  • 讀取數據解析GET請求,現在它知道哪個資源返回
  • 通過發送寫入響應
  • 關閉soc 012

此服務器是在Linux上用C++編寫的。

我的問題是,需要將此服務器轉換爲最小的https服務器? (特別是使用OpenSSL,但在一般意義上的答案是受歡迎的。)

這是我的理解(問號的意思是我不知道)

  • 初始化庫
  • 讀取服務器證書和私鑰以及其他配置
  • 創建一個普通的監聽套接字(?)
  • 客戶端連接
  • 通過庫函數做握手(?)
  • 握手完成
  • 在開始接收和發送數據之前,我需要一個特殊的步驟嗎?
  • 通過庫函數(?)讀取數據
  • 數據看起來和HTTP GET完全一樣嗎?
  • 如果這樣做,解析GET和獲取資源通過圖書館功能
  • 寫回的數據(?)
  • 關閉通過庫函數的連接(?)

總之,我希望它只需要向當前代碼添加一些額外的步驟,而不會影響HTTP解析。這個假設是否正確?

非常感謝任何能夠填補空白的人。

+0

的最小SSL服務器在列出[答覆問題7080958] [1] [1]:HTTP://計算器。com/questions/7080958/openssl-code-works-on-xp-but-hangs-forever-in-vista-and-up –

回答

0

查看「使用OpenSSL的網絡安全」,因爲它涵蓋了這一點。即使你沒有這本書,你也可以看看the code

+0

已經這樣做了一段時間,因爲我沒有得到任何簡潔的答案:)我會一旦我確定發生了什麼,回答我自己的問題。謝謝! – Russell

相關問題