Confermo quel che scrive Andrea: inserire i clientCertificate e serviceCertificate nella sezione serviceCredentials non serve a niente. Va bene il web.config postato da lui poco sopra (ne abbiamo usato uno praticamente uguale anche noi).
Il “General SSLEngine problem” che Marco riscontra ha sicuramente a che fare con il certificato installato sul server che riceve le chiamate.
Perché l’autenticazione tramite certificato funzioni, è necessario procedere creando il pfx che riconcilia csr, private key e certificati forniti da Sogei in fase di accreditamento, come spiegato in altro post su questo forum (qui: Installazione certificati canale SDICOOP), e installare questo pfx sul server. Non basta installare sul server i certificati ricevuti in fase di accreditamento.
Inoltre - questo non mi sembra di averlo letto altrove nel forum, magari si dà per scontato - è necessario impostare in IIS un binding sul sito che utilizzi (di norma è il il Default Web Site), sulla porta 443, selezionando come “SSL certificate” il certificato installato (tramite pfx) sul server (dopo averlo installato, apparirà fra quelli presenti nel menu a tendina della configurazione del binding). Se utilizzi un altro certificato SSL (pur valido), o provi a impostarne due utilizzando lo SNI (Server Name Indication), non riuscirai a ricevere i messaggi dallo SDI.
O per lo meno così ha funzionato per noi.