openssl客户端和服务器通信交换证书,服务器无法获得客户端的证书

freestack 2013-11-27 07:08:23
我客户端和服务器都用如下代码设置证书,但是客户端能够获取服务器的证书,而服务器不行,服务器用请求获取之后报错说客户端没有提供证书,但是我明明设置了证书
if(SSL_CTX_use_certificate_file(ctx,certf,SSL_FILETYPE_PEM)!=1)//设置客户端证书 成功返回1
{
ERR_print_errors_fp(stderr);
exit(3);
}
char prikey[]="sslclientkey.pem";
SSL_CTX_set_default_passwd_cb(ctx,my_pem_password_cb);//设置默认密码,用到了回调函数my_pem_password_cb
if(SSL_CTX_use_PrivateKey_file(ctx,prikey,SSL_FILETYPE_PEM)!=1)//设置客户端私钥
{
ERR_print_errors_fp(stderr);
exit(4);
}
if(!SSL_CTX_check_private_key(ctx))//检查公私钥是否匹配
{
fprintf(stderr,"key does not match\n");
exit(5);
}
...全文
112 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
freestack 2013-12-06
  • 打赏
  • 举报
回复
我找到问题了,是因为服务器无法验证客户端的证书,把客户端的证书颁发机构填入服务器的信任域中,我的问题就解决了
安靜DE發狂者 2013-12-06
  • 打赏
  • 举报
回复
帮顶,我也出现同样的状况。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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