Accreditamento SDICoop: configurazione SSL su Apache

Ciao, anche io sono bloccato all’errore
javax.net.ssl.SSLHandshakeException: General SSLEngine problem
mi sembra di capire che tu abbia risolto, puoi fornirmi maggiori info o eventualmente posso contattarti in privato?
Utilizzo apache + php.

Grazie

dio mio sembra di stare nel 2003

4 Mi Piace

Ciao, visto che anche io non riesco ad inviargli ER01 nel formato corretto…potresti delucidarmi…ti ringrazio!

Ciao, io ho una classe Php, per le risposte quindi ho proceduto come segue :

class Risposta {
public $Esito = “ER01”;
}

… quindi nella procedura che viene chiamata puoi rispondere così …

$risposta = new Risposta();
$risposta->Esito = “ER01”;

return $risposta

Grazie…provo a tradurre in VB

Scusami una cortesia… il metodo del tuo Ws RicezioneFatture si chiama RiceviFatture o RiceviFattureSdI?

Il mio metodo si chiama RicezioneFatture esattamente come presente dentro il file wsdl.

RicezioneFatture è il nome del WebService è la Action è RiceviFatture!..perchè con la mia procedura non lo trova nonostante abbia importato l’interfaccia dal WSDL di riferimento. mi da l’errore
Server did not recognize the value of HTTP Header SOAPAction: http://www.fatturapa.it/RicezioneFatture/RiceviFattureSdI.

e invece se metto RiceviFattureSdi mi da errore:
Errore durante l’invio di un messaggio tramite WS - Err: NULL

ecco perchè ti chiedevo del nome del servizio e il nome della Action…

Buongiorno, Giovanni.
Mi trovo nella tua identica situazione anche io trasmetto correttamente tramite php SoapClient la fattura ma nel pannello Strumenti->gestire il canale -> Test interoperabilità -> flussi , trovo per tutti i tentativi l’errore “javax.net.ssl.SSLHandshakeException: General SSLEngine problem”. Io ho implementato il Soap Server ma anche io non vedo nessun log di tentata connessione. Sei riuscito a progredire? P.s Snche io utilizzo APACHE è ho provato varie configurazioni con i certificati (tra l’altro quando configuro quelli consegnatomi dall’Agenzia, il mio sito da browser non risulta avere una connessione sicura) Grazie.
Saluti

Ciao,
nel mio caso il problema stava nell’SNI ovvero passare il dominio quando ad un unico IP sono associati più domini con certificati installati (a quanto pare SDI non lo supporta).
Prova ad eseguire i seguenti comandi sul tuo virtual host:

openssl s_client -connect dominio.com:443 senza SNI ritorna il default del server

openssl s_client -connect dominio.com:443 -servername dominio.com richiesta con SNI

Se nel primo caso ti ritorna in output il certificato SSL di default allora ti conviene andare ad impostare i certificati su /etc/apache2/sites-available/default-ssl.conf.
Se continui ad avere problemi allora probabilmente i tuoi certificati non sono installati correttamente.
Saluti.

Grazie Giovanni della risposta. Io ho un server dedicato quindi all’IP è associato esclusivamente il mio dominio. Purtroppo il problema è l’installazione dei certificati su Apache. Ho fatto i test che mi hai suggerito e continuo a ricevere:

depth=1 C = IT, O = Agenzia delle Entrate, OU = Servizi Telematici, CN = CA Agenzia delle Entrate

verify error:num=19:self signed certificate in certificate chain

Certificate chain
0 s:/C=IT/O=Agenzia delle Entrate/OU=Fatturazione Elettronica/OU=Server/CN=XXXX.XXX
i:/C=IT/O=Agenzia delle Entrate/OU=Servizi Telematici/CN=CA Agenzia delle Entrate
1 s:/C=IT/O=Agenzia delle Entrate/OU=Servizi Telematici/CN=CA Agenzia delle Entrate
i:/C=IT/O=Agenzia delle Entrate/OU=Servizi Telematici/CN=CA Agenzia delle Entrate

Per quanto riguarda la creazione dei certificati ho seguito i suggerimenti che ho trovato in questo post, ma non sono riuscito ad arrivare ad un risultato. Riusciresti mica ad indicarmi i passaggi che hai seguito tu per arrivare al certificato server (o ai compenenti) e a indicarmi come installarlo su apache? Ti ringrazio comunque del tempo che hai dedicato a rispondermi. Saluti

Ciao,
purtroppo non ho il pannello di gestione canale sott’occhio quindi vado un pò a memoria.
La configurazione del virtual host è questa:

SSLCertificateFile SDI-XXX_SERVER.pem
SSLCertificateKeyFile fatturaelettronica.key
SSLCertificateChainFile CAEntratetest.cer
SSLVerifyClient optional
SSLVerifyDepth 5
SSLCACertificateFile CAEntrate_all.cer

Dove SDI-XXX_SERVER.pem è il certificato server disponibile al download convertito con il seguente comando:
$ openssl x509 -inform der -in SDI-XXX.cer -out SDI-XXX.pem
fatturaelettronica.key è la chiave privata utilizzata per genere le CSR fornite durante la richiesta di accreditamento.
CAEntratetest.cer è il certificato CA Test (credo all’interno dell’archivio kit firma CAEntrateTest.der) che se non ricordo male dovrebbe già essere in formato pem (basta aprire il file e convertirlo nel caso in cui sia in formato binario con il comando openssl visto sopra).
CAEntrate_all.cer contiene la concatenazione del certificato dell’autorità di certificazione dell’agenzia più il certificato dell’autorità di certificazione di test (caentrate.der + CAEntrateTest.der).
Saluti.

Grazie ancora per la risposta. Ti faccio un ulteriore domanda probabilmente banale. Io utilizzo Plesk, che ha una sezione “Certificati SSL/TLS”. Qui per l’installazione di un certificato vengono richiesti i seguenti campi:

  • Chiave privata (*.key) *
  • Certificato (*.crt) *
  • Certificato CA (*-ca.crt)
    Qui ho provato varie combinazioni di certificati e di conversioni (essendo il formato richiesto diverso da quello fornito dall’agenzia) visto che questa è la configurazione principale del server. Ma sei io cancellassi tutti i certificati su plesk e modificassi le impostazioni di apache seguendo le tue indicazioni? Ti sembra una cosa fattibile? Ti ringrazio veramente per il tempo che mi stai dedicando.

Io non conosco Plesk ma sulla base dei campi richiesti, metterei in chiave privata la chiave utilizzata per generare le CSR, certificato metterei il certificato server SDI-XXXXX in formato pem e come certificato CA metterei la concatenazione di caentrate.der+CAEntratetest.cer.
Non hai modo di verificare da linea di comando direttamente la configurazione del virtual host?
Saluti.

Sei certo che il dominio sia raggiungibile dall’esterno ed il DNS regolarmente propagato?
Sei sicuro che il dominio corrisponde effettivamente all’endpoint inserito in fase di accreditamento canale?
Saluti.

Allora, si il sito è raggiungibile, dns a posto e l’endpoint è corretto… La configurazione che hai citato l’ho già testata su Plesk ma risulta non funzionante (il sito dal browser mi è segnalato insicuro e non ricevo la notifica di scarto da parte di SDI, ma invio correttamente). Non ho mai ricevuto tentativi di connessione da parte di SDI anche se le mie connessioni a riceviFile vengono correttamente segnalate in flussi. Ho effettuato i test da linea di comando che mi hai suggerito tu prima, con risultato

depth=1 C = IT, O = Agenzia delle Entrate, OU = Servizi Telematici, CN = CA Agenzia delle Entrate

verify error:num=19:self signed certificate in certificate chain

Certificate chain
0 s:/C=IT/O=Agenzia delle Entrate/OU=Fatturazione Elettronica/OU=Server/CN=XXXX.XXX
i:/C=IT/O=Agenzia delle Entrate/OU=Servizi Telematici/CN=CA Agenzia delle Entrate
1 s:/C=IT/O=Agenzia delle Entrate/OU=Servizi Telematici/CN=CA Agenzia delle Entrate
i:/C=IT/O=Agenzia delle Entrate/OU=Servizi Telematici/CN=CA Agenzia delle Entrate

Nel frattempo in flussi continuo a vedere “javax.net.ssl.SSLHandshakeException: General SSLEngine problem". Ho contattato l’assistenza ma non mi hanno detto praticamente nulla. Ora provo a cancellare il mio certificato originale dal server e configurare tutto tramite i file di configurazione di Apache. Secondo te potrebbe essere una strada intelligente? grazie ancora della disponibilità… Saluti

Cosa intendi per certificato originale del server?
Sei sicuro di aver fatto altri tentativi di invio dopo la sistemazione dei certificati? L’SDI invia al più 4/5 volte se non erro dopo di che considera come non inviato

Che il browser ti dica che la connessione è insicura è normale se non importi il certificato CA

Sei certo che questo comando

$ openssl s_client -connect dominio.com:443 (senza l’opzione server name)

ti ritorni il certificato server SDI oppure quello di default (in genere quello autofirmato)?

Buongiono, anche noi abbiamo problemi nella ricezione delle notifiche. con errore:

javax.net.ssl.SSLException: Received fatal alert: protocol_version

L’inoltro fattura invece avviene correttamente. Siamo su macchina linux centos 7 con apache e php.
Accettiamo protocollo tls1.2. La configurazione di apache è la seguente:

SSLCertificateFile /home/sdicoop/certificates/SDI-XXX-server.pem
SSLCertificateKeyFile /home/sdicoop/certificates/server.key
SSLProtocol -all +TLSv1.2
SSLCertificateChainFile /home/sdicoop/certificates/CAEntratetest.pem
SSLVerifyClient optional
SSLVerifyDepth 5
SSLCACertificateFile /home/sdicoop/certificates/chain.pem

chain.pem è l’unione tra caentrate+caentratetest e il nostro certificato server( tanto per non far mancare niente)

Tutti i certificati sono stati installati sulla macchina linux con il comando: update-ca-trust extract. Apache lo abbiamo configurato con tutti i certificati e tutte le combinazioni possibili…

openssl s_sclient ritorna i certificati correttamente configurati ad eccezione di alcune notifiche che non ci sono chiare:
depth=0 C = IT, O = Agenzia delle Entrate, OU = Fatturazione Elettronica, OU = Server, CN = SDI-02524070600
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 C = IT, O = Agenzia delle Entrate, OU = Fatturazione Elettronica, OU = Server, CN = SDI-02524070600
verify error:num=27:certificate not trusted
verify return:1

In particolare da openssl s_client abbiamo:
Acceptable client certificate CA names
/C=it/O=Agenzia delle Entrate/OU=Servizi Telematici/CN=CA Agenzia delle Entrate Test

Certificate chain
0 s:/C=IT/O=Agenzia delle Entrate/OU=Fatturazione Elettronica/OU=Server/CN=SDI-02524070600
i:/C=IT/O=Agenzia delle Entrate/OU=Servizi Telematici/CN=CA Agenzia delle Entrate
1 s:/C=it/O=Agenzia delle Entrate/OU=Servizi Telematici/CN=CA Agenzia delle Entrate Test
i:/C=it/O=Agenzia delle Entrate/OU=Servizi Telematici/CN=CA Agenzia delle Entrate Test
2 s:/C=IT/O=Agenzia delle Entrate/OU=Fatturazione Elettronica/OU=Server/CN=SDI-02524070600
i:/C=IT/O=Agenzia delle Entrate/OU=Servizi Telematici/CN=CA Agenzia delle Entrate

Chiamando l’agenzia delle entrate ci dicono che secondo loro è tutto corretto…