将http服务器转换为https服务器需要什么?

时间:2011-10-10 20:24:27

标签: http ssl https openssl

这个问题类似于 Starting to use OpenSSL 但更具体和详细,所以我认为这是公平的。

假设我有一个简单的http服务器,它在成功的GET场景中执行以下操作

  • 创建一个侦听套接字
  • 客户端连接
  • 通过recv
  • 读取数据
  • 解析GET请求,现在知道要返回哪个资源
  • 通过发送
  • 写回复
  • 关闭套接字

此服务器在linux上用c ++编写。

我的问题是,将此服务器转换为最小的https服务器需要什么? (特别是使用OpenSSL,但一般意义上的答案是受欢迎的。)

这是我的理解(问号意味着我不知道)

  • 初始化库
  • 读取服务器证书和私钥及其他配置
  • 创建一个普通的侦听套接字(?)
  • 客户端连接
  • 通过库函数(?)
  • 进行握手
  • 握手完成
  • 在开始接收和发送数据之前是否需要特殊步骤?
  • 通过库函数(?)
  • 读取数据
  • 此时数据看起来与HTTP GET完全相同吗?
  • 如果是,则解析GET并获取资源
  • 通过库函数(?)
  • 写入返回数据
  • 通过库函数(?)
  • 关闭连接

总之,我希望它只需要在当前代码中添加一些额外的步骤,而不会影响HTTP解析。这个假设是否正确?

非常感谢任何可以填补空白的人。

1 个答案:

答案 0 :(得分:0)

通过“使用OpenSSL的网络安全”查看,因为它涵盖了这一点。即使您没有这本书,也可以查看the code