Java: multiplo cacerts

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
ZeroUno
Staff
Staff
Messaggi: 5164
Iscritto il: ven giu 02, 2006 14:52
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current
Località: Roma / Castelli
Contatta:

Java: multiplo cacerts

Messaggioda ZeroUno » dom mar 24, 2019 13:03

In un server di produzione mi è capitata una cosa brutta.

Un'applicazione java.
Running openjdk.
L'applicazione effettua connessioni https verso un webserver in cui il certificato non è generato con una rootca mondiale ca interna.
Quindi abbiamo importato la ca interna nel cacerts e buonanotte.

Successivamente abbiamo fatto il patching dei sistemi periodico e questo ha aggiornato openjdk e quindi sovrascritto il cacerts aggiungendo nuove rootca ma rimuovendo le custom.
Ovviamente non funzionava più l'applicazione.

Nessun problema ; reimportata la ca tutto ha ripreso a funzionare ma ci ha fatto sbattere la testa.


C'è un modo di dire alla jvm di usare - per il trust delle ca - due o più cacerts? No di sistema per le rootca e un'altro per quelle custom?
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg

Codice: Seleziona tutto

1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111

hashbang
Packager
Packager
Messaggi: 1971
Iscritto il: ven giu 04, 2010 10:27
Nome Cognome: Luca De Pandis
Distribuzione: macOS
Località: Lecce / Bergamo / Milano
Contatta:

Re: Java: multiplo cacerts

Messaggioda hashbang » sab apr 06, 2019 6:38

No, Java usa o il cacerts della JRE o il jks che tu passi nella command line. Il parametro javax.net.ssl.trustStore non prevede argomenti multipli. Quando lo chiami fa override del valore di default.

Hai due strade per risolvere il problema:
1) Copi il cacerts di Java, inserisci la tua root ca interna e usi quello per il tuo webserver. Così sei indipendente dal patching, per lo meno fino a che le CA all'interno del tuo keystore clone rimangono valide; ma data la validità media di una CA, avresti comunque risolto per i prossimi dieci anni, probabilmente.
2) Usi un jks puntuale con solo la ca interna.

Secondo me, se non hai una reale necessità delle CA esterne, non c'è bisogno di usare il cacerts.
Per dirti, da noi abbiamo tutti jks puntuali. I nostri agenti di Jenkins girano con un cacerts custom che ha solo la root ca interna. E così tante altre cose che usiamo.