首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用xmlsec1进行XML签名

使用xmlsec1进行XML签名
EN

Stack Overflow用户
提问于 2015-03-14 15:05:04
回答 2查看 1.5K关注 0票数 4

我尝试使用以下命令使用P12私钥对我的测试xml进行签名,得到以下错误:

代码语言:javascript
运行
复制
xmlsec1 --sign --output tested.payload.xml --pkcs12 SenderCert/sender.p12 --pwd password tested.xml 

Error: failed to find default node with name="Signature"
Error: failed to load template "tested.xml"
Error: failed to sign file "tested.xml"

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2015-03-16 21:26:55

您的Header标记中应该有一个Security标记,其结构与SOAP消息中的结构大致相同:

代码语言:javascript
运行
复制
<soapenv:Header>
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="X509-A64424329E443DAEFE14265088735561">CERTIFICATE_HERE</wsse:BinarySecurityToken>
    <ds:Signature Id="SIG-A64424329E443DAEFE14265088736534" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:SignedInfo>
            <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                <ec:InclusiveNamespaces PrefixList="raad soapenv" xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
            </ds:CanonicalizationMethod>
            <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
            <ds:Reference URI="#id-15652DE155DD8DFF971422029213153243">
                <ds:Transforms>
                    <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                        <ec:InclusiveNamespaces PrefixList="raad" xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                    </ds:Transform>
                </ds:Transforms>
                <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                <ds:DigestValue/>
            </ds:Reference>
        </ds:SignedInfo>
        <ds:SignatureValue/>
        <ds:KeyInfo Id="KI-A64424329E443DAEFE14265088736252">
            <wsse:SecurityTokenReference wsu:Id="STR-A64424329E443DAEFE14265088736273">
                <wsse:Reference URI="#X509-A64424329E443DAEFE14265088735561" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/>
            </wsse:SecurityTokenReference>
        </ds:KeyInfo>
    </ds:Signature>
</wsse:Security>
</soapenv:Header>

xmlsec1不插入新标签,而是用值填充必要的标签

票数 2
EN

Stack Overflow用户

发布于 2017-12-05 11:41:30

我刚刚遇到了同样的问题。我通过添加<samlsig:Signature>标签来解决这个问题,这是OASIS中的标准SAML,然后就没问题了。

但问题是,我需要简化<samlp:AuthnRequest>来调整IDP,这与SAML标准并不是100%相同。我不知道如何解决这种情况。有人知道吗?

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

https://stackoverflow.com/questions/29046409

复制
相关文章

相似问题

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