验证 OpenSSL 中证书的域

2024-03-22

我需要使用 C-land OpenSSL 验证 X509 证书的域。

我的理解是,该库不会为我执行此操作,并且我必须大致实现以下算法:

  1. 如果 subjectAlternativeName 扩展的 dnsName 字段存在,则设置name到那个值。
  2. 否则,设置name到主题的 CN 字段。
  3. Compare name针对请求的主机名,允许每个星号匹配 [A-Za-z0-9_]+,但不匹配“点”(.)。

在我看来,应该有很多代码可以做到这一点,但我还没有找到。

谁能找到这样的例子吗?或者,对我的算法进行健全性检查?

编辑:这就是我想出的:https://gist.github.com/2821083 https://gist.github.com/2821083。 OpenSSL 将其留给调用代码,这似乎很奇怪。


尽管要注意主题备用名称、原始 IP 地址和 FQDN,但您的思路非常准确。你可能想偷

BOOL SSL_X509_getIDs(apr_pool_t *p, X509 *x509, apr_array_header_t **ids)

以及来自的相关朋友http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/ssl/ssl_util_ssl.c http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/ssl/ssl_util_ssl.c以及 ssl_engine_init.c 中的被调用者(顺便说一下,服务器端)的所有选项。

当您对 openssl 回调执行操作时 - 如果您尚未在 CTX 中提供,还请考虑日期和时间以及链。

Dw.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

验证 OpenSSL 中证书的域 的相关文章

  • Python - 套接字错误,地址正在使用

    我目前正在尝试在 Xubuntu 12 10 x64 上设置 SiriServer 这不是重点 当我运行服务器时 python 返回错误 socket error Errno 98 Address already in use 默认情况下
  • 在 ASP.NET 自托管 Web API 上配置 SSL

    我正在创建自托管 Web API 服务 为了确保它的安全 我研究并实施了this http www codeproject com Articles 630986 Cross Platform Authentication With ASP
  • 将 SSL 与 MAMP PRO 4 结合使用

    由于我已更新到 chrome 63 我在 localhost 中的网站被重定向到 https 因此我决定将 SSL 与 MAMP PRO 一起使用 但我无法使其工作 chrome 说您的连接不是私有的 在 MAMP 的 SSL 面板中 我生
  • 在 XCode 中静态链接 OpenSSL

    我正在尝试链接libssl a and libcrypto aXCode 命令行项目中的静态库 在 Link Binary With Libraries 下 我已在搜索路径中包含 Openssl 头文件 编译成功但执行失败dyld Libr
  • ./manage.py 使用 https 运行服务器

    manage py 运行服务器 0 0 0 0 8000 我使用上面的行作为我从 github 借用的代码的一部分 https github com ribeiroit boh puppet https github com ribeiro
  • 了解 C# 中的自签名证书

    最近我遇到了这个c 代码 var dn new X500DistinguishedName CN appSettings CommonName OU appSettings OrganizationalUnit X500Distinguis
  • 在SSL模式下使用apache kafka

    我正在尝试在 SSL 1 way 模式下设置 kafka 我已经阅读了官方文档并成功生成了证书 我将记下两种不同情况的行为 此设置只有一名经纪人和一名动物园管理员 案例 1 经纪人间通信 明文 我的相关条目server properties
  • QWebView / Qt WebKit 不会打开某些 SSL 页面;不允许重定向?

    在带有 Visual C 2008 SP1 的 Windows 7 上全新安装 Qt SDK 1 1 4 我正在使用 Qt Creator 为什么此代码无法加载某些网页 include
  • “访问此资源所需的证书无效”

    XMLHttpRequest Network Error 0x800c0019 Security certificate required to access this resource is invalid 我已经找到解决方案了 首先 我
  • 为 MoonAPNS 创建 p12 文件时卡住了

    我在创建 p12 证书时遇到一些问题 我之前创建了一个带有推送通知的应用程序 效果很好 应用程序获取用户设备 ID 并将其保存到数据库中 我已将代码添加到我的新应用程序中 并进行了与新应用程序一起使用的修改 从日志来看 它的工作方式似乎与我
  • 如果Jetty的密钥库中有多个证书,它如何选择?

    我们的系统中有一些代码用于自动将自签名证书生成到密钥库中 然后由 Jetty 使用 如果给定主机的密钥已经存在 那么什么也不会发生 但如果它不存在 我们会生成一个新密钥 如下所示 public void generateKey String
  • 如何通过 SSL 将文件直接上传到 S3?

    我已经使用基于浏览器的 Amazon S3 直接 POST 上传有一段时间了 最 近想开始通过 HTTPS 发布 普通的 HTTP 帖子就可以正常工作 但是 当我将相同的表格发布到https s3 amazonaws com https s
  • SSL 到底如何工作?

    SSL 是如何工作的 证书安装在客户端 或浏览器 和服务器 或Web服务器 的哪里 当您在浏览器中输入 URL 并从服务器获取页面时 信任 加密 身份验证过程如何启动 HTTPS协议如何识别证书 当证书负责所有信任 加密 身份验证工作时 为
  • 如何在不更改源代码的情况下禁用 TLSv1?

    我编写了一个测试代码 不是 HTTPS 来使用 JDK8 测试 TLS 当测试代码运行时 我使用nmap工具扫描并得到结果如下 D softwares nmap 7 12 gt nmap p xxxx script ssl x x x x
  • 如何修改s_client的代码?

    我正在玩apps s client c in the openssl源代码 我想进行一些更改并运行它 但是在保存文件并执行操作后 我的更改没有得到反映make all or a make 例如 我改变了sc usage函数为此 BIO pr
  • WebView ssl 错误

    对不起我的英语不好 我需要加载 url https 我有一些问题 当我尝试加载页面时 webView 给我错误 primary error 3 certificate Issued to CN my site com Issued by C
  • 如何使用 rustls 库建立 TLS 连接?

    The 文档 https docs rs rustls 0 10 0 rustls 提供了一个例子 不幸的是它不能编译 很多东西都被重命名了 界面也被重命名了ClientSession构造函数改变了 我设法将错误修复到可以编译的程度 但没有
  • Curl 和 Php 5.3.3 中的 SSL 连接错误

    我的网站自 3 年来一直运行良好 代码如下 现在突然从 2 天开始出现以下错误 SSL 连接错误 在 Curl error 中 下面是我的代码
  • 双向 SSL 说明

    我对双向 SSL 的工作原理有些困惑 客户端如何创建其证书以发送到服务器 是从服务器生成并分发给客户端吗 另外 双向 SSL 相对于单向 SSL 有何优势 两个证书在连接之前都应该存在 它们通常由证书颁发机构创建 不一定相同 在其他情况下
  • openssl_crypt 中初始化向量的使用

    我看了一下this https stackoverflow com questions 1391132 two way encryption in php问题 并想为自己做 当我运行这段代码时 直接取自这个答案 https stackove

随机推荐