#SpringBoot Feign Client : Access INTRANET HTTPS REST Service

5 views
Skip to first unread message

Giuseppe Coniglio

unread,
Oct 13, 2024, 10:22:10 AM10/13/24
to JUG Torino - JVM User Group Torino

Ciao a tutti, 
ho un microservizio che deve eseguire una POST su un'api rest esposta su Intranet via https.
Ho verificato il file di properties ed ho :
feign.httpclient.disable-ssl-validation=true
feign.httpclient.disableSslValidation=true
La mia interfaccia è annotata con @FeignClient ed il metodo con @PostMapping(produces = {"application/json"}):
OutputDTO performCall(URI uri, @RequestBody InputDTO dataInput);
Non utilizzo quindi alcun certificato , ma quando dal mio server il modulo invoca https://service.thirdparty.com nel mio file di log vedo:
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Ma avendo disabilitato il check SSL nel file yml e non usando alcun certificato come mai esce questo errore?

Il mio microservizio client sta su un server Linux con Jdk 17, lato server anche loro hanno Jdk 17 ma non so con che tecnologia hanno sviluppato l'api rest provider

Any idea ? :-)
Googlando ho trovato questo articolo https://www.baeldung.com/spring-resttemplate-secure-https-service , ma credo parli di server to server via Internet e con utilizzo di certificati.

Ho provato anche con Chat GPT :-D

è possibile usare https tra api rest passando su Intranet?

Sì, è possibile utilizzare HTTPS tra API REST su un'intranet. Anche se le comunicazioni avvengono all'interno di una rete locale, HTTPS offre vantaggi significativi:

1. **Sicurezza**: HTTPS cripta i dati durante il transito, proteggendo le informazioni da potenziali attacchi, anche all'interno di un'intranet.

2. **Integrità dei dati**: Garantisce che i dati non vengano alterati durante il trasferimento.

3. **Autenticazione**: HTTPS utilizza certificati SSL/TLS per autenticare i server, riducendo il rischio di attacchi man-in-the-middle.

4. **Configurazione**: L'implementazione di HTTPS su un'intranet può richiedere la gestione di certificati, ma è spesso vantaggiosa per garantire un livello di sicurezza più elevato.

In sintesi, l'uso di HTTPS su un'intranet è una pratica consigliata, specialmente se si gestiscono dati sensibili o se si desidera garantire la sicurezza delle comunicazioni.

Giuseppe Coniglio

unread,
Oct 15, 2024, 10:23:32 AM10/15/24
to bruno bossola, JUG Torino - JVM User Group Torino
Ho provato la curl dal mio server 


* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0
curl: (60) SSL certificate problem: unable to get local issuer certificate

Stesso errore applicativo ,ora coincidono 😃

Ho provato con --insecure

curl https://serveresterno.com -v --insecure

E funziona, restituisce http 404.

* TCP_NODELAY set
* Connected to...


Così é "sicura" by default...senza utilizzo di certificati, siamo in Intranet con ip abilitati etc ..

Non capisco come FeignClient non prenda le properties del file, non ho impostato alcuna classe di configurazione, provo a debuggare 

Grazie ☺️😃


Il lun 14 ott 2024, 12:07 bruno bossola <bbos...@gmail.com> ha scritto:

Non sono sicuro di capire bene la situazione ma appunto, per capire meglio il problema, se chiamo questo servizio con una curl funziona?


--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "JUG Torino - JVM User Group Torino" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a jugtorino+...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/jugtorino/5ae4defb-2c3e-40a2-a4ff-85875b39b9a0n%40googlegroups.com.

bruno bossola

unread,
Oct 15, 2024, 10:23:32 AM10/15/24
to Giuseppe Coniglio, JUG Torino - JVM User Group Torino

Non sono sicuro di capire bene la situazione ma appunto, per capire meglio il problema, se chiamo questo servizio con una curl funziona?


On Sun, 13 Oct 2024, 22:22 Giuseppe Coniglio, <jackf...@gmail.com> wrote:
--

Andrea Ligios

unread,
Oct 15, 2024, 10:23:32 AM10/15/24
to Giuseppe Coniglio, JUG Torino - JVM User Group Torino
Se usi HTTPS devi avere un certificato, anche solo self-signed.


--

Francesco Vasco

unread,
Oct 15, 2024, 11:52:37 AM10/15/24
to Giuseppe Coniglio, JUG Torino - JVM User Group Torino
> Così é "sicura" by default...senza utilizzo di certificati, siamo in Intranet con ip abilitati etc ..

Ciao Giuseppe,
da cosa deriva questa sicurezza?
Il client si connette ad un server che risponda con un qualsiasi certificato,
ed il server assume che il client che si connette con un dato IP sia sempre corretto?

Non è preferibile aggiungere il certificato del server (quello self-signed) al trust-store del client?
Almeno così il client verifica il server (ma non il contrario).

Ciao,
Vasco
Reply all
Reply to author
Forward
0 new messages