OpenSSL s_server和http服务器有什么区别?

时间:2015-07-01 20:58:27

标签: openssl

我的问题的背景是我试图从我们的代码库中删除一个http / s服务器组件,特别是我们的需求非常有限。 (我们不打算支持完整的网页浏览)。

为了不重新发明轮子,我搜索了一个允许许可证的开源https服务器组件,该组件能够正确执行正确的SSL终止。那时我遇到了OpenSSL的s_server和s_client。

有人可以帮我理解上面的s_server&假设所有正确的证书都已到位,s_client就足以作为https服务器的构建块了吗?示例代码或教程非常棒。

谢谢!

1 个答案:

答案 0 :(得分:0)

This answer会很好地帮助你开始运作。

基本上问题的关键是将-HTTP或-WWW传递给openssl s_server电话:
openssl s_server -key key.pem -cert cert.pem -WWW

所有-HTTP / -WWW do都是“./”以响应GET请求:

 -WWW          - Respond to a 'GET /<path> HTTP/1.0' with file./<path> 
 -HTTP         - Respond to a 'GET /<path> HTTP/1.0' with file ./<path>
                  with the assumption it contains a complete HTTP response.

你是对的,它可以用于一个简单的服务器。这可能足以满足您的所有需求。

从文档中看,OpenSSL实现似乎不支持这些功能,您可能会错过这些功能:

  • 返回各种各样的哑剧类型
  • 提供200/404以外的错误代码
  • 状态更改(POST等请求)
  • 动态内容(尽管您可以在后台运行cron或您自己的应用程序,以一定的时间间隔更新静态文件)