Error: the metadata signature must be valid

Nella validazione del metadata tramite spid validator otteniamo il seguente errore:

the metadata signature must be valid - TR pag. 19 stderr:func=xmlSecOpenSSLEvpDigestVerify:file=digests.c:line=274:obj=sha256:subj=unknown:error=12:invaliddata:data and digest do not match stderr: FAIL stderr: SignedInfo References (ok/all): 0/1 stderr:Manifests References (ok/all): 0/0 stderr: Error: failed to verify file"./data/https___spid_lautotrasportosicura_it/sp-metadata.xml"

Dopo aver ricontrollato i dati e rigenerato il metadata con 2 metodi:

Otteniamo sempre lo stesso errore, come se il certificato non venisse firmato correttamente.

XML: https://spid.lautotrasportosicura.it/metadata_unsigned-signed.xml

Qualche indicazione per poter risolvere?

Anche noi abbiamo lo stesso problema, hai poi risolto?

Idem. Qualcuno ha risolto?

Idem ci sono novità?

Anche io ho lo stesso problema.
Qualcuno ha risolto?

Stesso problema anche qui.
Nessuno ha qualche idea?

Salve a tutti,
anche io ho riscontrato lo stesso problema:

the metadata signature must be valid - TR pag. 19 stderr: func=xmlSecOpenSSLEvpSignatureVerify:file=evp_signatures.c:line=370:obj=rsa-sha256:subj=unknown:error=18:data do not match:details=EVP_VerifyFinal: signature does not verify stderr: FAIL stderr: SignedInfo References (ok/all): 1/1 stderr: Manifests References (ok/all): 0/0 stderr: Error: failed to verify file “./data/https___magazzino_ioapt_it/sp-metadata.xml”

Il metadata (https://magazzino.ioapt.it/metadata.xml) è stato firmato usando il software: https://github.com/italia/spid-metadata-signer

Qualcuno è riuscito a firmare questi file XML?

Usate questo per generare i certificati https://github.com/italia/spid-compliant-certificates/
e firmate poi Xmlsectool 3.0.0 così ./xmlsectool.sh --sign --inFile miometadata.xml --outFile miometadata-signed.xml --certificate certificato.crt --keyFile privkey.pem

Ciao, grazie per il suggerimento! Ho generato un nuovo metadata (disponibile qui: https://magazzino.ioapt.it/metadata.xml) che ho verificato usando questo tool online (Chilkat Tools).

In questo strumento online il metadata viene validato. Usando invece SPID SAML Check ho sempre questo errore:

the metadata signature must be valid - TR pag. 19 stderr: func=xmlSecOpenSSLEvpSignatureVerify:file=evp_signatures.c:line=370:obj=rsa-sha256:subj=unknown:error=18:data do not match:details=EVP_VerifyFinal: signature does not verify stderr: FAIL stderr: SignedInfo References (ok/all): 1/1 stderr: Manifests References (ok/all): 0/0 stderr: Error: failed to verify file “./data/https___magazzino_ioapt_it/sp-metadata.xml”

Ho risolto il problema, era colpa della formattazione che applicava il mio IDE.

Prendendo il file generato dal comando e mettendolo sul server tramite FTP la validazione va a buon fine anche su SPID SAML Check.

1 Mi Piace

anche nel mio caso il mancato riconoscimento era solo dovuto ad un errore di formattazione dell xml ,
i miei certificati erano già ok e non ho avuto necessità di rigenerarli, come da tool consigliati da Claudio P;
Per chi invece ha necessità di generarli da zero mi sembra un ottimo modo!

Ciao @ClaudioP sto validando il mio Metadata SP (https://test-metadata-url.herokuapp.com/metadata) scaricato da Salesforce e integrato con le regole tecniche per SPID ma ho il tuo stesso errore. Non ho usato una chiave PEM ma una KEY (quella di test di agid-test-cert-nopass.key), non vorrei dovermene generare una io perchè magari quella di agid-test-cert-nopass.key non è più valida. Per il certificato invece, ho un Self Signed generato da Salesforce che dovrebbe essere corretto. In fase di validazione il Test #6 fallisce con questo dettaglio:

the metadata signature MUST be valid stderr: func=xmlSecOpenSSLEvpDigestVerify:file=digests.c:line=279:obj=sha256:subj=unknown:error=12:invalid data:data and digest do not match FAIL SignedInfo References (ok/all): 0/1 Manifests References (ok/all): 0/0 Error: failed to verify file "/tmp/tmpzprwitq4.xml"

Come posso risolvere il problema?

Ciao Gianluca
come hai risolto poi il problema che hai segnalato? Io ho il medesimo.

grazie

Ciao @g.fabrizi sono andato avanti, riuscendo a generare un Metadata SP che passa tutti i test (https://test-metadata-url.herokuapp.com/sapiolife-metadata-sp-signed).

Adesso sto tentando di sottomettere questa AuthNRequest (https://test-metadata-url.herokuapp.com/auth-n-request-signed) ma purtroppo mi fallisce il test #28.

La cosa strana è che quando firmo la mia AuthNRequest con XmlSecTools la signature viene posta sopra il tag saml:Issuer e questo crea un po di scompiglio, se guardi a come deve essere costruita da specifiche: Regole tecniche | Single Sign-On

Manca veramente poco, e non saprei come preseguire.

Se hai qualche consiglio, sono ben accetto a riceverne :slight_smile: