gpt4 book ai didi

apache - 从 PEM 文件中获取 ASN.1 发行人字符串?

转载 作者:行者123 更新时间:2023-12-04 07:12:31 28 4
gpt4 key购买 nike

我最近遇到了 Windows 2003 的一个问题(显然它也存在于其他版本中),如果 SSL/TLS 服务器正在请求客户端证书身份验证并且它有超过 16KB 的可信证书 DN,Internet Explorer(或任何其他应用程序) schannel.dll) 无法完成 SSL 握手。 (简而言之,根据 RFC 2246 sec. 6.2.1,服务器将消息分成 2^14 字节的块,但 Schannel 并未支持该消息。我已从 Microsoft 支持人员那里得到确认,这是一个Schannel 中的缺陷,他们正在考虑在 future 的版本中修复它。)

所以我试图找到一种方法来轻松解析我的受信任证书(我使用 Apache 作为我的服务器,所以它们都是 PEM 格式)以获得 DN 的总 ASN.1 格式长度(这就是它们在握手期间通过电线发送),从而查看我是否太接近极限。不过,我还没有找到一种方法来做到这一点:OpenSSL asn1parse 函数很接近,但它似乎没有提供一种方法来仅获取颁发者名称的 ASN.1 序列,这就是我需要。

有什么建议?

最佳答案

由于 ASN.1 是自描述的,因此编写 ASN.1 解析器相当容易。您可能知道,ASN.1 数据包含一个值树,其中每个值类型由一个全局分配的 OID(对象 ID)标识。您可以在以下位置找到带有源代码的免费 ASN.1 解码器: http://www.geocities.co.jp/SiliconValley-SanJose/3377/asn1JS.html .它是用 javascript 编写的,因此您可以直接在浏览器中使用它。

至于你的确切问题 - 我会:

  • 使用提供的解析器,找到另一个解析器或编写我自己的
  • 查找可信 DN 的 OID(检查规范或使用提供的 ASN.1 解码器页面简单地解码证书)
  • 结合以上两者以提取证书内受信任 DN 的大小。
  • 关于apache - 从 PEM 文件中获取 ASN.1 发行人字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72237/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com