用OpenSSL实现HTTPS 客户端

sitanda 2009-01-06 05:51:32
我要用openssl实现一个支持https下载的客户端软件。现在存在几个问题,希望大虾们指点:
如何像IE访问https://gmail.com一样知道该网站不受信任,是不是要找到IE中的“受信任的根证书颁发机构”,然后依次判断?如果是,请问如何得到这些证书的路径?

最好有完整实现的源码,谢谢!
...全文
803 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mrdone 2011-08-02
  • 打赏
  • 举报
回复
木有看懂。。。
Flood1984 2009-01-09
  • 打赏
  • 举报
回复
哦,不好意思,没看清,以为你是做服务端的。

如果是客户端的验证。
那就按照上面的三点来依次做就行了。
证书的验证是:查看当前证书的“名称”和“颁发者”。
如果颁发者是自己,那就是根证书,如果不是,就去找颁发者来认证;
验证颁发者,就要找颁发者的颁发都来认证,直到找到根证书。

实现方法:
如果是Windows,有一系列的API可能用来验证。
比如:
CertOpenSystemStore
CertEnumCertificatesInStore
CertGetNameString
等,你参考一下MSDN。
在Linux上,Openssl应该也有一套验证证书有效性的库。
Flood1984 2009-01-09
  • 打赏
  • 举报
回复
受信任的根证书颁发机构。
这个框弹出来的原因有三个:
1.证书不受信任
2.证书的是否有效
3.证书上的名称和网站名是否相同。

解决每个问题方法如下:
1.证书不受信任
一般来说自己做的证书都是根证书,只要将这个根证书安装到本机的受信任根证书中即可。
如果证书不是根证书,那就要将从CA开始到本证书的一系列证书都安装到本机。
2.证书的是否有效
这个一般不会有什么问题,注意一下证书有效时间就行。
3.证书上的名称和网站名是否相同
颁发证书时,填写的证书的所有者,一定要和网站的名称相同。
sitanda 2009-01-08
  • 打赏
  • 举报
回复
找来找去都是这几个相同的答案,看来只能靠自己了
  • 打赏
  • 举报
回复
up
fandh 2009-01-07
  • 打赏
  • 举报
回复
我也是这么认为!算是帮顶了!
星羽 2009-01-07
  • 打赏
  • 举报
回复
xiaopoy 2009-01-07
  • 打赏
  • 举报
回复
(MS RSABASE CSP情况):
Documents and Settings\特定用户\Application Data\Microsoft\SystemCertificates木录下
sitanda 2009-01-07
  • 打赏
  • 举报
回复
我看了一些关于openssl的例子,好像都是利用的pem文件,请问客户端如何生成这个pem文件呢?谢谢!
blackcat242 2009-01-06
  • 打赏
  • 举报
回复
系统的证书都放到固定的路径了吧

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧