SAML2 -使用中间证书升级SP



我正在尝试升级Shibboleth服务提供商(sp)上面向浏览器的证书。现有的设置在shibboleth2.xml和sp-metadata.xml中都有一个证书。实现的代码片段如下:

shibboleth2.xml:

<CredentialResolver type="Chaining">
   <CredentialResolver type="File" key="sp-key.pem" certificate="sp-cert.pem"/>
</CredentialResolver>

sp-metadata.xml:

<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:KeyName>sp.com</ds:KeyName>
        <ds:X509Data>
            <ds:X509SubjectName>CN=sp.com,C=US</ds:X509SubjectName>
        <ds:X509Certificate>ABCxyz
                    az1234
        </ds:X509Certificate>
    </ds:X509Data>
</ds:KeyInfo>

文件sp-cert。shibboleth2.xml中提到的Pem如下所示:

-----BEGIN CERTIFICATE-----
ABCxyz
az1234
-----END CERTIFICATE-----

现在我已经生成了一个新的证书,其中包括sp.com的域名证书(sp-cert-dom.pem)和中间证书(sp-cert-int.pem),如下所示:

sp-cert-dom.pem

-----BEGIN CERTIFICATE-----
abcdef
123456
-----END CERTIFICATE-----

sp-cert-int.pem

-----BEGIN CERTIFICATE-----
UVWXYZ
xa9900
-----END CERTIFICATE-----

我将这两个证书合并成一个文件(sp-cert1.pem),如下所示:

-----BEGIN CERTIFICATE-----
abcdef
123456
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
UVWXYZ
xa9900
-----END CERTIFICATE-----

然后我更新了shibboleth2.xml(在通知所有涉众有关更改之后)以指向新的证书:

<CredentialResolver type="Chaining">
   <CredentialResolver type="File" key="sp-key1.pem" certificate="sp-cert1.pem"/>
</CredentialResolver>

然而,我一直在试图找出如何用新的证书更新sp-metadata.xml。现在我有以下问题:

1。我真的必须提供域名和中间证书的详细信息还是域名证书应该足够了?

2。如果答案是"both",我的sp-metadata.xml在以下选项中应该是什么样子?

(a)同一个ds:KeyInfo元素对应多个ds:X509Certificate元素。

<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:KeyName>sp.com</ds:KeyName>
        <ds:X509Data>
            <ds:X509SubjectName>CN=sp.com,C=US</ds:X509SubjectName>
        <ds:X509Certificate>abcdef
                    123456
        </ds:X509Certificate>
        <ds:X509Certificate>UVWXYZ
                    xa9900
        </ds:X509Certificate>
    </ds:X509Data>
</ds:KeyInfo>

(b)多个ds:KeyInfo元素。

<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:KeyName>sp.com</ds:KeyName>
        <ds:X509Data>
            <ds:X509SubjectName>CN=sp.com,C=US</ds:X509SubjectName>
        <ds:X509Certificate>abcdef
                    123456
        </ds:X509Certificate>
    </ds:X509Data>
</ds:KeyInfo>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:KeyName>Symantec Class 3 Secure Server CA - G4</ds:KeyName>
        <ds:X509Data>
            <ds:X509SubjectName>CN=sp.com,C=US</ds:X509SubjectName>
        <ds:X509Certificate>UVWXYZ
                    xa9900
        </ds:X509Certificate>
    </ds:X509Data>
</ds:KeyInfo>

提前感谢。

PS:我确实看了一下验证签名没有中间证书,但没有得到一个明确的答案我的问题。

SP不关心面向浏览器的证书。面向浏览器的证书(和密钥)是通过Apache httpd[1]或IIS[2]管理的。Shibboleth SP软件使用的密钥和证书通常是自签名的,因为它实际上只是用作存储公钥的工具,因此它通常是10-20年的证书。

[1] https://httpd.apache.org/docs/2.4/ssl/
[2] https://technet.microsoft.com/en-us/library/cc732230 (v = ws.10) . aspx

最新更新