【问题标题】:What is the Character Encoding of x509 certificates?x509 证书的字符编码是什么?
【发布时间】:2020-09-10 06:58:00
【问题描述】:

我正在实现一个 SCEP 服务器来分发客户端证书。根据protocol,对于来自设备的GetCACert请求,响应头的content-type应该是application/x-x509-ca-cert

我的问题是,默认情况下,我的应用程序的过滤器将每个响应的字符编码设置为UTF-8,因此响应变为application/x-x509-ca-cert;charset=UTF-8。设备不喜欢这个字符编码部分并拒绝响应。

我怀疑设备可能会尝试将响应从 UTF-8 格式转换,因此我尝试将响应编码为 UTF-8,但设备仍然不接受我的响应。

然后我将 burp 代理设置为设备并从响应头中删除 charset=UTF-8 部分并且设备接受了响应。

通过谷歌搜索,我发现证书是用DER 编码的,但是当我给DER 作为字符编码时,java 说unknown-encoding 并且IANA 字符编码没有@987654331 @ 在他们的官方字符集中。

我的问题是“可用于定义 x509 证书字符编码的官方字符集名称是什么?”。

【问题讨论】:

    标签: certificate java x509 encoding scep


    【解决方案1】:

    证书是二进制的。它们没有字符编码,因为这些不是字符而是普通的八位字节(字节)。如果您尝试使用某些字符编码对这些非字符进行编码,这将无济于事。相反,您需要省略 charset 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-28
      • 2017-02-18
      • 1970-01-01
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      相关资源
      最近更新 更多