【问题标题】:What does it take to convert an http server into an https server?将http服务器转换为https服务器需要什么?
【发布时间】:2011-12-04 19:37:32
【问题描述】:

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

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

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

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

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

这是我的理解(问号表示我不知道)

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

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

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

【问题讨论】:

标签: http ssl https openssl


【解决方案1】:

查看“使用 OpenSSL 的网络安全”,因为它涵盖了这一点。就算没有书也可以翻看the code。

【讨论】:

  • 我已经这样做了一段时间,因为我没有得到任何简明的答案:) 一旦我确定发生了什么,我会回答我自己的问题。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-22
  • 1970-01-01
  • 2017-01-10
  • 2012-11-02
  • 2012-04-15
  • 2012-09-25
  • 1970-01-01
相关资源
最近更新 更多