如何在xml中插入我的X509证书签名
我有一个包含数据的xml,但要发送到服务器,我需要它有一个x509证书(我已经在我的机器上安装了这个证书)。 问题是,我需要以与下面示例相同的格式插入它,但我是一个新手,从我的证书的细节来看,我真的不知道该怎么做如何在xml中插入我的X509证书签名,xml,certificate,x509,sign,Xml,Certificate,X509,Sign,我有一个包含数据的xml,但要发送到服务器,我需要它有一个x509证书(我已经在我的机器上安装了这个证书)。 问题是,我需要以与下面示例相同的格式插入它,但我是一个新手,从我的证书的细节来看,我真的不知道该怎么做 <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="h
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#assinar">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
<ds:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
<ds:XPath>not(ancestor-or-self::ds:Signature)</ds:XPath>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue></ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
</ds:X509Certificate>
</ds:X509Data>
<ds:KeyValue>
<ds:RSAKeyValue>
<ds:Modulus>
</ds:Modulus>
<ds:Exponent>AQAB</ds:Exponent>
</ds:RSAKeyValue>
</ds:KeyValue>
</ds:KeyInfo>
</ds:Signature>
非(祖先或自身::ds:Signature)
AQAB
在我的示例中,字段
,
,
,
是ASCII格式的(我猜),但我的字段是十六进制的
我需要转换它吗?发送到某个url并获取响应?您可以尝试对二进制数据进行base64编码,这就是电子邮件附件的工作方式。您的API提供程序没有显示任何示例吗?您可以尝试对二进制数据进行base64编码,这就是使用电子邮件附件的方式。您的API提供程序没有显示任何示例吗?将ds:X509证书定义为X.509证书的base64编码 类似地,将模和指数描述为
加密二进制
类型
表示正确的编码是将值转换为字节数组,删除任何前导的零值字节,然后对其进行base64编码。我可以从经验中说,不是所有平台都删除前导零,也不是所有平台都支持在删除前导零的情况下读取值。因此,您可以在这里定义希望如何符合规范
如果没有任何语言标记或代码,这里最好的答案是所有答案都在XML签名规范中定义:。将ds:X509证书定义为X.509证书的base64编码
类似地,将模和指数描述为加密二进制
类型
表示正确的编码是将值转换为字节数组,删除任何前导的零值字节,然后对其进行base64编码。我可以从经验中说,不是所有平台都删除前导零,也不是所有平台都支持在删除前导零的情况下读取值。因此,您可以在这里定义希望如何符合规范
如果没有任何语言标记或代码,这里最好的答案是所有答案都在XML签名规范中定义:。实际上,API提供程序文档只是说它需要签名,并提供了一个XML作为示例(我在上面发布的示例)。我有一个证书,但我不知道如何将其格式化为所需的参数(我已经编写了这四个参数)。有没有办法将我的证书自动插入到相应的xml中?实际上,API提供程序文档只是说它需要签名,并提供了一个xml作为示例(我在上面发布的示例)。我有一个证书,但我不知道如何将其格式化为所需的参数(我已经编写了这四个参数)。有没有办法将我的证书自动插入到相应的xml中?