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.
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
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
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:
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…