¿Cómo cambio el certificado de un proveedor de servicios Shibboleth? Tengo un proveedor de identidad (IDP) y un proveedor de servicios (SP) y necesito reemplazar el certificado con un certificado firmado por Verisign. Estoy probando con un certificado autofirmado creado con Shibboleth, etc / shibboleth / keygen.bat.
He añadido el nuevo certificado & clave como un CredentialResolver de reserva en shibboleth2.xml para el SP:
<CredentialResolver keyName="Standby" type="File" key="D:/tmp/sp-key-qa.pem" certificate="D:/tmp/sp-cert-qa.pem"/>
He actualizado los metadatos para el IDP agregando el certificado en el archivo de metadatos:
relying-party.xml:
<metadata:MetadataProvider id="CMSMd" xsi:type="metadata:ResourceBackedMetadataPro$
<metadata:MetadataResource xsi:type="resource:FilesystemResource" file="/usr/s$
</metadata:MetadataProvider>
metadata.xml:
<KeyDescriptor>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>
MIIDMDCCAhigAwIBAgIJAJ1BXaNNWMHhMA0GCSqGSIb3DQEBBQUAMCAxHjAcBgNV
...
Y funciona hasta ese punto. Sin embargo, cuando comento el antiguo certificado de los metadatos en el IDP y reinicio, entonces falla.
metadata.xml:
<!-- Old cert
<KeyDescriptor>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIFjjCCA3agAwIBAgICAsowDQYJKoZIhvcNAQEFBQAwgaAxCzAJBgNVBAYTAlVT
...
Cuando intento acceder a la URL protegida, se redirige correctamente al IDP, me autentico, se redirige al SP en la URL /Shibboleth.sso/SAML2/Artifact?SAMLart=AAQAAilR ... y falla con 'Internal Error del Servidor. Por favor contacte al administrador del sitio.' en el navegador
En el registro de IDP, dice
10: 14: 12.124 - ERROR [org.opensaml.ws.security.provider.ClientCertAuthRule: 156] - Falló la autenticación a través del certificado del cliente para la ID de entidad del presentador de contexto urna: compañía: cms
10: 14: 12.154 - DEBUG [PROTOCOL_MESSAGE: 64] -
<?xml version="1.0" encoding="UTF-8"?><soap11:Envelope xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/">
<soap11:Body>
<saml2p:ArtifactResponse xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" ID="_6cbe5f5c3327d6bea5223322eb637a75" InResponseTo="_d7eda74f5805219b22c4e5be2fe8bbb7" IssueInstant="2012-07-17T14:14:12.143Z" Version="2.0">
<saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">urn:company:sso:idp</saml2:Issuer>
<saml2p:Status>
<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Responder">
<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:RequestDenied"/>
</saml2p:StatusCode>
<saml2p:StatusMessage>Message did not meet security requirements</saml2p:StatusMessage>
</saml2p:Status>
</saml2p:ArtifactResponse>
</soap11:Body>
</soap11:Envelope>
En el registro de SP, dice:
<13>Jul 17 10:13:38 CMSMACHINE01 [apache-error]: [Tue Jul 17 10:13:38 2012] [error] [client 172.17.87.25] client denied by server configuration: D:/Packages/Apache2.2/htdocs/favicon.ico
<-5>[shibd] ERROR [[1]] OpenSAML.SOAPClient - SOAP client detected a SAML error: (urn:oasis:names:tc:SAML:2.0:status:Responder) (Message did not meet security requirements)
<-5>[apache-shibd] ERROR [[9888] shib_handler] Shibboleth.Listener - remoted message returned an error: Identity provider returned a SAML error in response to artifact.
<-5>[apache-shibd] ERROR [[9888] shib_handler] Shibboleth.Apache - Identity provider returned a SAML error in response to artifact.
<-5>[apache-shibd] ERROR [[9888] shib_handler] Shibboleth.ServiceProvider - sendError could not process error template ()
<13>Jul 17 10:14:12 CMSMACHINE01 [apache-error]: [Tue Jul 17 10:14:12 2012] [error] [client 172.17.87.25] Identity provider returned a SAML error in response to artifact., referer: https://sso.dev.company.com/idp/Authn/BB
Por favor ayuda. Tengo la sensación de que hay una configuración de política de seguridad en algún lugar, pero no puedo encontrar ninguna documentación ni ninguna configuración en los archivos de configuración.