首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重复X509Certificate

重复X509Certificate
EN

Stack Overflow用户
提问于 2017-07-19 04:58:31
回答 2查看 744关注 0票数 1

我正在尝试对一个XML文件进行签名,出于某种原因,它在<X509Data>标记下添加了两个<X509Data>标记。标记中的值并不相同。(见下文示例)

代码语言:javascript
复制
<KeyInfo>
  <X509Data>
    <X509Certificate>KJASHDJASHAHDJA</X509Certificate>
    <X509Certificate>ASJKLDJASDJASDJKLASJDASJKDASA</X509Certificate>
  </X509Data>
</KeyInfo>

这种情况发生在我必须在旧证书过期后更改它(代码在此之前运行良好)之后。

用于获取密钥信息节点的代码:

代码语言:javascript
复制
private KeyInfo getKeyInfo()
{
  KeyInfo keyInfo = new KeyInfo();
  KeyInfoX509Data keyInfoX509Data = new KeyInfoX509Data(this.certificate, X509IncludeOption.ExcludeRoot);
  keyInfo.AddClause(keyInfoX509Data);
  return keyInfo;
}

如果您需要我发布更多的信息,请告诉我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-19 14:54:15

如果要消除输出中的中间证书,请更改

代码语言:javascript
复制
new KeyInfoX509Data(this.certificate, X509IncludeOption.ExcludeRoot);

代码语言:javascript
复制
new KeyInfoX509Data(this.certificate, X509IncludeOption.EndCertOnly);

然后,它将只编写签名证书,而不是链(除了根)。

票数 1
EN

Stack Overflow用户

发布于 2017-07-19 05:36:45

在XML签名中,需要包括签名证书和证书链,以便收件人能够验证信任直到根CA证书。

请参阅XMLDsig标准

4.4.4 X509Data元素 X509Data元素中出现的所有证书必须通过包含验证密钥或作为包含验证密钥的证书终止的证书链的一部分与验证密钥相关联。

如果新证书的证书链包含一个中间证书,直到根证书,则在X509Data中看到两个证书是正常的。

代码语言:javascript
复制
 root
   --intermediate1
       --leaf 

您可以检查它,用编辑器打开证书(在windows中双击)

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

https://stackoverflow.com/questions/45181313

复制
相关文章

相似问题

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