【问题标题】:Open SSL programming in CC 中的 Openssl 编程
【发布时间】:2013-11-27 04:06:33
【问题描述】:

我正在尝试用 C 编写一个程序,其中连接到远程 SSL 服务器的 HTTPS 客户端发送加密的 HTTP 请求并打印出服务器的响应(网页)。

我正在尝试运行some examples from here

尤其是test-port-client.c

但它没有显示我期望的结果。

我通过以下命令检查了我的笔记本电脑中是否有 openssl

apt-cache search libssl | grep SSL

我得到的结果如下。

libssl-dev - SSL development libraries, header files and documentation
libssl-doc - SSL development documentation documentation
libssl1.0.0 - SSL shared libraries
libssl-ocaml - OCaml bindings for OpenSSL (runtime)
libssl-ocaml-dev - OCaml bindings for OpenSSL
libssl0.9.8 - SSL shared libraries
libsslcommon2 - enterprise messaging system - common SSL libraries
libsslcommon2-dev - enterprise messaging system - common SSL development files

我正在用 C 编译程序如下:

gcc test-port-client.c -o test-port-client

然后运行如下:

./test-port-client google.com 80 abc

但我不知道如何根据我的要求调整代码。

我的要求是这样的

"HTTPS 客户端连接到远程 SSL 服务器,发送加密的 HTTP 请求并 > 打印服务器的响应(网页)。此外,您的程序验证 > 服务器提供的 X.509 证书是有效并链接到您 > 信任的根证书。”

任何指导将不胜感激。请帮帮我。

【问题讨论】:

  • @Sergey 如何编译和运行该文件。我正在使用 ubuntu 13.0 并且 [错误是 ](shrib.com/error2)
  • 除非代码贴在这里,否则您的问题在这里毫无价值,可能会被删除。
  • 我不是想自己构建东西,只是想使用在线可用的程序,我提供了代码@EJP的链接
  • @user2888239 您应该将库添加到链接“gcc ssl-cleint1.c -lcrypt -lopenssl -o ssl-cleint1”

标签: c ssl cryptography websocket openssl


【解决方案1】:

我有点困惑。您尝试运行的代码与 SSL 无关。它看起来就像一个简单的 TCP 数据包发送方。你看到了什么,你期待看到什么?

要快速了解网络编程,请查看 Beej 的指南: http://www.beej.us/guide/bgnet/

对于 OpenSSL,这可能是一个很好的起点: http://savetheions.com/2010/01/16/quickly-using-openssl-in-c/

不过,上面的示例没有进行证书验证。但这将是一个很好的测试来验证您的库安装,并且您可以针对适当的库进行编译。

【讨论】:

  • 我正在寻找类似这样的输出 $ ./ssl www.pcwebshop.co.uk 443 证书正常:没有问题:自签名证书 证书主题:- 通用名称:Parallels Panel -组织名称:Parallels - 组织单位:Parallels Panel 证书颁发者:- 通用名称:Parallels Panel - 组织名称:Parallels - 组织单位:Parallels Panel === 因错误退出:自签名证书
  • 因此,该错误意味着它无法找到在编译时链接的库。您的机器上的 openssl 安装在哪里,是在您的 LD_LIBRARY_PATH 中吗?您也可以尝试编译静态(构建行上的-static)。
猜你喜欢
  • 1970-01-01
  • 2014-12-09
  • 1970-01-01
  • 1970-01-01
  • 2012-06-22
  • 1970-01-01
  • 2016-07-15
  • 2011-10-30
  • 1970-01-01
相关资源
最近更新 更多