如何将HTTP服务器转换为HTTPS服务器?

4
这个问题与开始使用OpenSSL类似,但更具体和详细,所以我认为问一下是公平的。
假设我有一个简单的HTTP服务器,在成功的GET场景中执行以下操作:
- 创建一个侦听套接字 - 客户端连接 - 通过recv读取数据 - 解析GET请求,现在它知道要返回哪个资源 - 通过send写入响应 - 关闭套接字
这个服务器是在Linux上用C ++编写的。
我的问题是,将此服务器转换为最小的HTTPS服务器需要什么?(特别是使用OpenSSL,但一般意义上的答案也可以。)
以下是我的理解(问号表示我不知道):
- 初始化库 - 读取服务器证书、私钥和其他配置 - 创建一个普通的侦听套接字(?) - 客户端连接 - 通过库函数进行握手(?) - 握手完成 - 在开始接收和发送数据之前,是否需要特殊步骤? - 通过库函数读取数据(?) - 此时数据看起来是否完全像HTTP GET? - 如果是,解析GET并获取资源 - 通过库函数写回数据(?) - 通过库函数关闭连接(?)
总之,我希望它只需要在当前代码中添加一些额外的步骤,并且不影响HTTP解析。这个假设是正确的吗?
非常感谢能填补空白的任何人。

一个最小的SSL服务器在问题7080958的答案中列出。 - Witness Protection ID 44583292
1个回答

0

请查看“使用OpenSSL进行网络安全”一书,因为它涵盖了此内容。即使您没有这本书,也可以查看代码


我已经做了一段时间了,因为我没有得到任何简明的答案 :) 我会在确定情况后回答自己的问题。谢谢! - Russell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接