# Accreditamento SDICoop: configurazione SSL su Apache

**URL:** <https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314>\
**Category:** Fatturazione Elettronica\
**Created:** [14 Maggio 2018, 2:33pm UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314 "2018-05-14T14:33:01Z")\
**Posts on this page:** 20\
**Page:** 4

<div class="post-metadata">

**Author:** ![andrea.lai](https://forum.italia.it/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@andrea.lai](https://forum.italia.it/u/andrea.lai)\
**Post date:** [5 Settembre 2018, 9:03am UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/62 "2018-09-05T09:03:31Z")

</div>

Ciao Daniele, io ho scritto il mio webservice in Delphi, che è il linguaggio che prediligo.  
Il problema che ogni chiamata da parte del server delle agenzie Sogei torna con un errore " org.apache.axis2.AxisFault: HTTP ( 500 ) Internal Server Error address : [https://26.2.162.231:80](https://26.2.162.231:80) " e da qui non se ne esce. Se io testo il mio servizio con SoapUI ( per esempio ) o con altri client Soap presenti on-line tutto funziona perfettamente, compreso l’handshake dei certificati SSL.

Quello che non riesco a comprendere è dove falliscano le chiamate che arrivano dall’SdI ed il perchè falliscano ( l’assistenza da risposte vage e senza senso … purtroppo ).

Per questa ragione sto provando a scriver il servizio SOAP con Php ( di cui ho poca esperienza ma mi ci arrabbatto ).

Se potete aiutarmi Vi ringrazio per la pazienza …

---

<div class="post-metadata">

**Author:** ![walter](https://forum.italia.it/letter_avatar_proxy/v4/letter/w/85e7bf/32.png) [@walter](https://forum.italia.it/u/walter)\
**Post date:** [5 Settembre 2018, 9:08am UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/63 "2018-09-05T09:08:51Z")

</div>

Quell’errore come ti ha scritto Daniele lo da quando la tua pagina server endpoint non è raggiungibile o anche quando vi è un errore di codice (come succedeva a me). La parte server se decidi di farla in php è molto semplice, la puoi ricostruire dai messaggi delle ultime 24 ore. Per la parte client (sempre in php) io ho usato nusoap che è una libreria standalone che mi ha aiutato molto coi suoi log dettagliati. Con la libreria MTOMSoapClient o il SoapClient base del php probabilmente ci metti molto più tempo a venirne a capo

---

<div class="post-metadata">

**Author:** ![andrea.lai](https://forum.italia.it/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@andrea.lai](https://forum.italia.it/u/andrea.lai)\
**Post date:** [5 Settembre 2018, 9:24am UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/64 "2018-09-05T09:24:53Z")

</div>

Ok, ci sto provando … sul client non ho problemi infatti quello che ho scritto in Delphi funziona perfettamente ed invia i documenti … una domanda, se posso, vedo che nell’esempio sopra scritto Daniele scrisse di aver modificato il file wsdl e che l’unica variazione fatta è stata quella sulla schemalocation e sul soapbind:address location in modo che punti rispettivamente alla posizione del file xsd e all’endpoint, qui sulla posizione del file xsd si deve mettere l’indirizzo dov’è pubblicato oppure si può mettere anche la path assoluta di dove si trova il file ?

---

<div class="post-metadata">

**Author:** ![walter](https://forum.italia.it/letter_avatar_proxy/v4/letter/w/85e7bf/32.png) [@walter](https://forum.italia.it/u/walter)\
**Post date:** [5 Settembre 2018, 9:30am UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/65 "2018-09-05T09:30:58Z")

</div>

Sulla soapbind:address location ho messo l’url mentre sullo schemaLocation dell’xsd ho messo la path. In tal modo funziona

---

<div class="post-metadata">

**Author:** ![andrea.lai](https://forum.italia.it/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@andrea.lai](https://forum.italia.it/u/andrea.lai)\
**Post date:** [5 Settembre 2018, 5:04pm UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/66 "2018-09-05T17:04:42Z")

</div>

Scusate ancora … ho scritto questa procedura …

_\<?php_

\_ class TrasmissioneFatture\_  
\_ {\_

\_ private $con;\_

\_ public function _contructor(){  
\_ $this-\>con = (is\_null($this-\>con)) ? self::connect() : $this-\>con;_  
\_ }\_

\_ static function connect() {\_

\_ $con = mysql\_connect(‘10.1.1.226’, ‘root’, ‘p4llm4ll’);\_  
\_ $db = mysql\_select\_db(‘db\_fatb2b’, $con);\_

\_ return $con;\_

\_ }\_

\_ function RicevutaConsegna($obj) { \_  
\_ $array = get\_object\_vars($obj);\_  
\_ $ricevuta1 = $array[“IdentificativoSdI”].$array[“NomeFile”].$array[“File”];\_

\_ $file = ‘/opt/fattb2b/log/RicevutaConsegna.txt’;\_  
\_ file\_put\_contents($file, $ricevuta1, FILE\_APPEND | LOCK\_EX);\_  
\_ }\_

\_ … \_

\_ }\_

```
$Service = new TrasmissioneFatture();
$opts = Array();
$opts['cache_wsdl'] = WSDL_CACHE_NONE;
try{
$server = new SoapServer("TrasmissioneFatture_v1.1.wsdl", $opts); 
    $server->setObject($Service);
$server->handle(); 
} catch (Exception $ex) {
    $server->fault('Sender', $ex->getMessage());
}

```

?\>

Continuo però a ricevere l’errore HTTP ( 500 ).

Considerando che il mio endPoint registrato è [https://xxx.xx.xx/soap/TrasmissioneFatture](https://xxx.xx.xx/soap/TrasmissioneFatture) ,  
Ho messo nella mia configurazione del VirtualHost il valore

ProxyPass /soap/TrasmissioneFatture [https://xxx.xx.xx/soap/TrasmissioneFatture.php](https://xxx.xx.xx/soap/TrasmissioneFatture.php)

Mi viene però un dubbio … ma la chiamata che arriva dal SdI contiene anche la parte “TrasmissioneFatture” ??

Nel senso, viene chiamato "[https://xxx.xx.xx/soap/TrasmissioneFatture/TrasmissioneFatture](https://xxx.xx.xx/soap/TrasmissioneFatture/TrasmissioneFatture) ?

---

<div class="post-metadata">

**Author:** ![walter](https://forum.italia.it/letter_avatar_proxy/v4/letter/w/85e7bf/32.png) [@walter](https://forum.italia.it/u/walter)\
**Post date:** [5 Settembre 2018, 5:22pm UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/67 "2018-09-05T17:22:02Z")

</div>

Ciao sembrerebbe tutto ok. Hai riavviato httpd dopo aver modificato il virtual?  
L’endpoint chiamato è quello che hai registrato quindi [https://xxx.xx.xx/soap/TrasmissioneFatture](https://xxx.xx.xx/soap/TrasmissioneFatture) e a quello SDI si collega. Senza modificare il virtualhost potevi creare una cartella TrasmissioneFatture dentro soap e mettere lo script php dentro una pagina index.php

---

<div class="post-metadata">

**Author:** ![andrea.lai](https://forum.italia.it/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@andrea.lai](https://forum.italia.it/u/andrea.lai)\
**Post date:** [6 Settembre 2018, 7:35am UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/68 "2018-09-06T07:35:23Z")

</div>

Ciao Walter, ho infatti fatto come da te suggerito … stupidamente inizialmente mi ero focalizzato sul modificare il percorso … quindi dentro la cartella /soap/TrasmissioneFatture ci ho messo il mio file index.hp … ora però l’SdI però mi fornisce l’errore _org.apache.axis2.AxisFault: HTTP ( 301 ) Moved Permanently address : [https://26.2.162.231:80](https://26.2.162.231:80)_ hai idea di quale possa essere il motivo ?

Grazie mille ancora.

---

<div class="post-metadata">

**Author:** ![walter](https://forum.italia.it/letter_avatar_proxy/v4/letter/w/85e7bf/32.png) [@walter](https://forum.italia.it/u/walter)\
**Post date:** [6 Settembre 2018, 10:13am UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/69 "2018-09-06T10:13:28Z")

</div>

-il file TrasmissioneFatture\_v1.1.wsdl (modificato con schemaLocation=“TrasmissioneTypes\_v1.1.xsd” e soapbind:address location=tuo url) è nella directory TrasmissioneFatture?  
-i permessi di lettura di TrasmissioneFatture\_v1.1.wsdl sono corretti?  
-TrasmissioneTypes\_v1.1.xsd è nella directory TrasmissioneFatture?  
-i permessi di lettura di TrasmissioneTypes\_v1.1.xsd sono corretti?

---

<div class="post-metadata">

**Author:** ![andrea.lai](https://forum.italia.it/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@andrea.lai](https://forum.italia.it/u/andrea.lai)\
**Post date:** [6 Settembre 2018, 10:29am UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/70 "2018-09-06T10:29:55Z")

</div>

Si a tutte le domande …

---

<div class="post-metadata">

**Author:** ![daniele\_m](https://forum.italia.it/user_avatar/forum.italia.it/daniele_m/32/1908_2.png) [@daniele\_m](https://forum.italia.it/u/daniele_m)\
**Post date:** [6 Settembre 2018, 10:41am UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/71 "2018-09-06T10:41:31Z")

</div>

hai provato ad aprire la pagina che punta al tuo endpoint per vedere se ti da errori? riesci a vedere il file wsdl?

hai provato a creare un webservice client per inoltrare le notifiche?

---

<div class="post-metadata">

**Author:** ![andrea.lai](https://forum.italia.it/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@andrea.lai](https://forum.italia.it/u/andrea.lai)\
**Post date:** [6 Settembre 2018, 11:17am UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/72 "2018-09-06T11:17:05Z")

</div>

Si ho creato un web-service client e funziona perfettamente ( anche con SoapUI ).  
Chiaramente io provo tutto in locale e funziona perfettamente.

Se provo ad aprire il file wsdl dall’esterno sembra non si veda il contenuto ( ho potuto provare solo dal telefono ).

Ho però come l’impressione che in qualche modo non vada bene avere il wsdl in https ?

---

<div class="post-metadata">

**Author:** ![andrea.lai](https://forum.italia.it/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@andrea.lai](https://forum.italia.it/u/andrea.lai)\
**Post date:** [6 Settembre 2018, 11:31am UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/73 "2018-09-06T11:31:13Z")

</div>

Penso sia cmq un problema del browser del telefono in quanto di fatto Apache non risponde con alcun errore … Eseguendo il PhP funziona e non da errori …

---

<div class="post-metadata">

**Author:** ![daniele\_m](https://forum.italia.it/user_avatar/forum.italia.it/daniele_m/32/1908_2.png) [@daniele\_m](https://forum.italia.it/u/daniele_m)\
**Post date:** [6 Settembre 2018, 12:42pm UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/74 "2018-09-06T12:42:16Z")

</div>

devi provare dal un browser di un pc…

a me se provo andare sull’endpoint mi ritorna

```
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>Bad Request</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

```

mentre se provo a fare endopoint?wsdl =\> sottodominio.dominio.it/trasmetti?wsdl  
mi ritorna lo schema wsdl.

se a te non ritorna lo schema wsdl significa che c’è qualche errore.

---

<div class="post-metadata">

**Author:** ![andrea.lai](https://forum.italia.it/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@andrea.lai](https://forum.italia.it/u/andrea.lai)\
**Post date:** [6 Settembre 2018, 1:50pm UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/75 "2018-09-06T13:50:28Z")

</div>

Boh … a me sull’endpoint non mi rende nulla … manco in locale …

Ma quel “trasmetti” è qualcosa che hai tu implementato nella tua classe ?

```
$Service = new TrasmissioneFatture();
$opts = Array();
$opts['cache_wsdl'] = WSDL_CACHE_NONE;
try{
$server = new SoapServer("TrasmissioneFatture_v1.1.wsdl", $opts); 
    $server->setObject($Service);
$server->handle(); 
} catch (Exception $ex) {
//debug
    $server->fault('Sender', $ex->getMessage());
}

```

Ma sulla “soapAction” hai modificato qualcosa oppure hai lasciato il valore di default dell’agenzia ?

Perchè io ci ho lasciato il valore standard che è “[http://www.fatturapa.it/TrasmissioneFatture/RicevutaConsegna](http://www.fatturapa.it/TrasmissioneFatture/RicevutaConsegna)” ed ho l’impressione che vada modificato anche questo …

---

<div class="post-metadata">

**Author:** ![daniele\_m](https://forum.italia.it/user_avatar/forum.italia.it/daniele_m/32/1908_2.png) [@daniele\_m](https://forum.italia.it/u/daniele_m)\
**Post date:** [6 Settembre 2018, 2:05pm UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/76 "2018-09-06T14:05:54Z")

</div>

lo avevo già scritto sopra ma te lo riscrivo.

nel soapserver va il puntamento relativo al tuo wsdl (se si trova nella stessa cartella, basta scrivere appunto il nome del wsdl, in caso contrario devi imputare le sotto directory)

nel file wsdl devi dire dove si trova lo schema xsd.  
puoi farlo indicando il link assoluto al file (quindi compreso di https ) nello “schemalocation”

inoltre devi indicare al wsdl a quale endpoint è collegato.  
e lo puoi fare riportando il link alla voce \<soapbind:address location=

a quel punto deve andare salvo che non hai inserito qualche blocco http/https o riportato male i link

---

<div class="post-metadata">

**Author:** ![Antonio\_Raccampo](https://forum.italia.it/user_avatar/forum.italia.it/antonio_raccampo/32/11885_2.png) [@Antonio\_Raccampo](https://forum.italia.it/u/Antonio_Raccampo)\
**Post date:** [6 Settembre 2018, 10:02pm UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/77 "2018-09-06T22:02:31Z")

</div>

La configurazione apache è corretta. Se però il tuo sistena ospita più virtual host, il client SDI (che non supporta SNI) non riesce a effettuare correttamente la richiesta se il certificato da te esposto non risulta essere primario. Per ottenere questa configurazione devi accedere al primo file di configurazione per la connessione ssl che Apache carica (vedi lo schema in htppd.conf o apache2.conf a seconda della versione linux…). Nel mio caso viene caricato default\_ssl.conf (server ubuntu).  
Qui dentro devi trascrivere (copia e incolla) lo stesso blocco che hai citato sopra nella posizione della direttiva SSLEngin on. In questo modo “imbrogli” SDI che comunque accedendo trova esposto il suo certificato e può instaurare il dialogo

---

<div class="post-metadata">

**Author:** ![Antonio\_Raccampo](https://forum.italia.it/user_avatar/forum.italia.it/antonio_raccampo/32/11885_2.png) [@Antonio\_Raccampo](https://forum.italia.it/u/Antonio_Raccampo)\
**Post date:** [6 Settembre 2018, 10:17pm UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/78 "2018-09-06T22:17:06Z")

</div>

se l’endpoint che hai indicato nell’accordo stipulato è TrasmissioneFatture (senza slash finale) devi mettere nella root del tuo sito un file htaccess (o scrivere le stesse direttive nel virtualhost, meglio) che eseguano un rewrite delle richieste ^TrasmissioneFatture a TrasmissioneFatture/index.php, assumendo che il tuo script sia contenuto appunto in index.php

---

<div class="post-metadata">

**Author:** ![andrea.lai](https://forum.italia.it/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@andrea.lai](https://forum.italia.it/u/andrea.lai)\
**Post date:** [7 Settembre 2018, 7:17am UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/79 "2018-09-07T07:17:59Z")

</div>

Ciao Antonio, anch’io ho il server Ubuntu.  
Di fatto ho due virtualhost, anche se l’altro sulla porta 80 non mi serve, e quindi adesso lo tolgo.  
Il problema però non pare sia sul certificato, ed infatti mi pare vada liscio.  
Lo tolgo lo stesso per sicurezza. Ora ho aggiunto le direttive

RewriteEngine On  
RewriteRule “^/soap/TrasmissioneFatture” “/soap/TrasmissioneFatture/index.php” [R]

e sto riprovando … speriamo vada …

---

<div class="post-metadata">

**Author:** ![Antonio\_Raccampo](https://forum.italia.it/user_avatar/forum.italia.it/antonio_raccampo/32/11885_2.png) [@Antonio\_Raccampo](https://forum.italia.it/u/Antonio_Raccampo)\
**Post date:** [7 Settembre 2018, 7:45am UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/80 "2018-09-07T07:45:35Z")

</div>

> [@andrea.lai](#):
>
> soap/TrasmissioneFatture

per eliminare ogni possibile mismatch ti consiglio di rinominare la tua cartella TrasmissioneFatture in Trasmissione; quindi in htaccess devi avere qualcosa del genere:  
Options +FollowSymLinks  
RewriteEngine On  
RewriteRule ^soap/TrasmissioneFatture soap/Trasmissione/index.php

leva il flag [R] perché identifica un redirect (che non deve esserci: deve essere solo un rewrite, trasparente per chi chiama, ovvero l’url non cambia chiamando lo scripts).  
La verifica la puoi fare facendo stampare qualcosa a schermo dal tuo file index.  
La stessa cosa devi fare per il tuo endpoint in ricezione: aggiungi a seguire un’altra direttiva Rewrite analoga

---

<div class="post-metadata">

**Author:** ![andrea.lai](https://forum.italia.it/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@andrea.lai](https://forum.italia.it/u/andrea.lai)\
**Post date:** [7 Settembre 2018, 8:41am UTC](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314/81 "2018-09-07T08:41:52Z")

</div>

Che dirti Antonio … ti ringrazio immensamente perchè ora funziona perfettamente !!! 😉

Grazie mille!

[Pagina precedente](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314.md?page=3)

[Pagina seguente](https://forum.italia.it/t/accreditamento-sdicoop-configurazione-ssl-su-apache/3314.md?page=5)
