Concatenazione certificati ed uso corretto per accreditamento canale SDI

Buongiorno, ho avuto il permesso per la fase di test per l’accreditamento del canale per SDI.
Ho scaricato i file di test che sono:

  • certificato client con estensione .cer;
  • certificato server con estensione .cer;
  • un file zip dove nella cartella certificati ci sono:
  • caentrate.cer
  • CAEntratetest.cer
  • Sectigo RSA.cer
  • servizi.fatturapa.it.cer
  • SistemaInterscambioFatturaPA.cer
  • SistemaInterscambioFatturaPATest.cer
  • testservizi.fatturapa.it.cer
  • UserTrustCA.cer
    Io sto usando google app engine su un dominio personalizzato e con la possibilità di inserire un certificato ssl.
    La prova che ho fatto è concatenare il certificato server con CAEntratetest.cer, ho controllato con i seguenti comandi:
  • openssl x509 -noout -modulus -in concat.pem | openssl md5
  • openssl rsa -noout -modulus -in server.key.pem | openssl md5
    e risultano tutti e due con lo stesso identico output.
    Quando vado ad inserirli su google cloud mi da errore “The certificate data is invalid. Please ensure that the private key and public certificate match.”, che è un errore generico, non so se questo è un problema solo di google cloud o devo concatenare altri certificati.
    Devo concatenare altri certificati?

Grazie per l’attenzione.

Non so questo può essere il problema, ma il certificato CAEntratetest.cer serve solo per validare il certificato client del SDI nell’ambiente di test.
I certificati tuoi, sia quello server che quello client, sono firmati dalla CA principale dell’AdE (caentrate.cer).
Inoltre anche il certificato server del SDI in ambiente di test (testservizi.fatturapa.it.cer) è firmato dal certificato principale (caentrate.cer) e non quello di test.

Li ho concatenati in questo modo:
cat SDI-server.pem caentrate.cer CAEntratetest.cer testservizi.fatturapa.it.pem > morecert.pem

Purtroppo non ho idea di come funzioni App Engine. Sei sicuro di dover mettere tutti i certificati in un unico file? Svolgono funzioni diverse:

  • SDI-server.pem (che assumo sia il tuo certificato server) + caentrate.cer sono quelli che il server web (o il load balancer di google) deve esporre al client di SDI. N.B. Questo deve stare su un IP dedicato e non può essere condiviso con altri domini perché il client SDI non supporta SNI (o perlomeno non lo supportava tempo fa, non so se è cambiato qualcosa).
  • testservizi.fatturapa.it.pem non serve sul lato server, ma lo può usare il tuo client per verificare il server SDI quando ci si collega (è firmato sempre caentrate.cer)
  • CAEntratetest.cer può essere usato dal tuo server per autenticare il client SDI. Il certificato client di SDI sta in SistemaInterscambioFatturaPATest.cer.

Non conosco App Engine, quindi non so se tutti questi certificati vadano caricati assieme in una sorta di certificate store, oppure le configurazioni siano separate. Hai provato a mettere solo SDI-server.pem + caentrate.cer, più la chiave privata corrispondente a SDI-server.pem, per vedere se ti dà errore?

Si ho provato e mi da lo stesso errore.
App engine da la possibilità di inserire un dominio personalizzato con un certificato personalizzato.

Ciao Antonio, controlla la mia guida se ti può essere d’aiuto!
Per qualsiasi domanda chiedi pure!

Ciao, ho provato ma non funziona con la concatenazione nel tuo tutorial.
Il file pfx non lo genero perché non mi serve.
Comunque ho anche due certificati che dovrebbero essere root e sono UserTrustCA e Sectigo RSA.
Bisogna concatenarli anche questi?

Cosa intendi per “non funziona”?

Ad essere sincero non ne so nulla di App Engine, ma a parer mio se riusciresti a crearti una virtual machine con iis sopra ti sarebbe di grande aiuto.

Come ho scritto nel mio tutorial anche io avevo provato ad utilizzare soluzioni cloud di Azure come le Web App (a naso direi che sono delle App Engine di Microsoft), piuttosto che con i docker container ma sono dovuto ritornare sui miei passi utilizzando IIS su vm come gran parte degli utenti accreditati che sono intervenuti su questo forum!

Le web app di Azure, ad esempio, non riuscivano a riconoscere (e quindi con una conseguenza impossibilità di caricamento) i certificati pfx da me generati.

In definitiva dubito fortemente che non ti servano i certificati pfx visto che devono essere utilizzati dal sistema di interscambio per riconoscere i tuoi Endpoint…