有没有用openssl写的https客户端程序例子?谢谢

baojian88888 2006-10-04 05:25:44
我想基于openssl写socket程序模拟浏览器,访问https的网站

比如访问招商银行:https://pbsz.ebank.cmbchina.com
怎么判断服务器发过来的证书的有效性?
我知道理论上是通过操作系统中安装的“根证书”,但是实际做的时候我发现它是有一个中间证书的,相当于有一个证书链,服务器发过来的证书并不是直接由根证书来验证,如何获取这个中间的证书?系统中预置的那个是过期了的

有没有做过的朋友,麻烦指点迷津,或者能够提供一个简单的例子更好,我在网上找了很长时间也没找到,谢谢!
...全文
470 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
baojian88888 2007-04-27
  • 打赏
  • 举报
回复
没有特别有价值的回复。结贴。
仰望星空WU 2007-03-14
  • 打赏
  • 举报
回复

有OPENSSL的SSL安全实现,下面是个DEMO_CERt
#include <stdio.h>

#include <string.h>

#include <stdlib.h>



#include <openssl/pem.h>

#include <openssl/x509.h>



#define root_cert "cacert.pem" // '1

#define user_cert "u1.pem" // '2



main()

{

BIO *fcert1, *fcert2;

X509 *x1, *x2;

EVP_PKEY *k1, *k2;



SSL_load_error_strings(); /* readable error messages */

SSL_library_init();



fcert1 = BIO_new(BIO_s_file());

fcert2 = BIO_new(BIO_s_file());

BIO_read_filename(fcert1, root_cert);

BIO_read_filename(fcert2, user_cert);



x1 = PEM_read_bio_X509_AUX(fcert1, NULL, NULL, NULL);

x2 = PEM_read_bio_X509_AUX(fcert2, NULL, NULL, NULL);


#define show_hehe(x) \
printf("ver = %d\n", X509_get_version(x)); \
\
puts("issuer:"); \
{ char buf[1000]; \
X509_NAME *a = X509_get_issuer_name(x); \
X509_NAME_oneline(a, buf, 1000); \
puts(buf); \
} \
\
puts("subject:"); \
{ char buf[1000]; \
X509_NAME *a = X509_get_subject_name(x);\
X509_NAME_oneline(a, buf, 1000); \
puts(buf); \
}

show_hehe(x1);
show_hehe(x2);
k1 = X509_get_pubkey(x1);
k2 = X509_get_pubkey(x2);

#if 0 // 这一部分还有错误,可能是思路不对,请做为练习改之。
// 现在ok了。
ret = X509_verify(x1, k1); // 返回1

ret = X509_verify(x2, k1); // 1

ret = X509_verify(x1, k2); // 0

ret = X509_verify(x2, k2); // 0


#endif


if (X509_verify(x1, k1)>0) // 返回1
if (X509_verify(x2, k1)) // 1
puts("all ok");
// 这说明这个用户(user_cert)的证书

// 确实是这个中心(root_cert)签发的



return 0;

}
tfp 2006-10-26
  • 打赏
  • 举报
回复
cert?
gb123456 2006-10-11
  • 打赏
  • 举报
回复
看一下msdn里以cert开始的函数!!
mLee79 2006-10-07
  • 打赏
  • 举报
回复
X509_verify_cert ......

用证书链的后一个证书验证前一个, 用根证书验证最后一个....

4,450

社区成员

发帖
与我相关
我的任务
社区描述
云计算 云安全相关讨论
社区管理员
  • 云安全社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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