首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证远程网站的SSL证书

验证远程网站的SSL证书
EN

Stack Overflow用户
提问于 2013-04-23 14:10:11
回答 1查看 561关注 0票数 0

我有一个用C编写的OpenSSL客户端(多线程)。这个客户端连接到许多HTTPS网站,并执行类似于典型浏览器的操作。为了确保客户端连接到真正的web服务器,我已经将其设置为使用ca-Cericates.crt与典型的SSL_CTX_load_verify_locations (ctx,“ca-Cericates.crt”,NULL)方法。

要生成“ca-testicates.crt”文件,我安装了mono /mozroot,并执行了以下操作:

代码语言:javascript
复制
mozroots --pkcs7 moz.p7b
openssl pkcs7 -inform DER -in moz.p7b -print_certs -out ca-certificates.crt

到目前为止,事情正在按预期运行,并使用:

代码语言:javascript
复制
SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL);
SSL_CTX_set_verify_depth(ctx, 4);

然后是SSL_get_verify_result(ssl);生成警报,以防我连接到某个“不真实”的HTTPS网站。

我的OpenSSL客户端目前处理大约100个网站,通过一些进一步的优化,我希望能实现更多。

我想进一步优化我的客户,以便我能够:

  1. 我认为openssl将调用一些底层方法来执行磁盘I/O来使用“ca-证书.ca”,对吗?有没有一种方法可以将这个“ca-证书.ca”加载到内存中,并使用一些openssl来访问这个内存位置?会不会让我的客户更快一点?
  2. 典型的浏览器如何访问“信任商店”?我认为他们使用更有效的方法访问内存中的“信任存储”?我说的对吗?有人能在这里给我提供一些好的建议吗?
EN

回答 1

Stack Overflow用户

发布于 2013-04-23 14:26:47

请看一下这个伟大的教程如何验证远程SSL证书:https://github.com/iSECPartners/ssl-conservatory/blob/master/openssl/everything-you-wanted-to-know-about-openssl.pdf

在同一个gitHub存储库中也有一个演示应用程序:https://github.com/iSECPartners/ssl-conservatory/tree/master/openssl

希望它能帮到你!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16171571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档