TL; DRM2E con SSL l'autenticazione basata su certificati
Come fare di Eclipse built-in Maven connettersi a un repository HTTPS che utilizza l'autenticazione basata su certificati?
Sembra che m2e
sia in grado di trovare i keystore, ma non sia in grado di connettersi. Riga di comando Maven funziona come un incantesimo usando esattamente gli stessi keystore. Run as -> Maven build
funziona con Maven esterno e non con quello incorporato.
Problema
Ho un progetto Maven con una dipendenza. Tale dipendenza è disponibile in un repository che utilizza l'autenticazione basata su certificato SSL oltre alla normale combinazione nome utente-password. Ho bisogno di farlo funzionare in Eclipse Luna, con il Maven incorporato. Tutto quello che riesco a ottenere è handshake_failure
. L'analisi dei registri mostra che il Maven incorporato non è in grado di trovare un certificato corrispondente.
Quando uso Run as -> Maven build
con un Maven esterno o Maven da riga di comando, si collega correttamente al repository e recupera l'artefatto esattamente come necessario.
La cosa interessante è che sia Mavens esterni che embedded hanno la stessa versione (3.2.3).
Setup
passo questi parametri attraverso eclipse.ini
:
-Djavax.net.ssl.trustStore=java.cacerts
-Djavax.net.ssl.trustStorePassword=******
-Djavax.net.ssl.keyStore=private.cacerts
-Djavax.net.ssl.keyStorePassword=******
-Djavax.net.debug=ssl,handshake
Il file trustStore
contiene:
- l'intera catena di certificati per il repository mi connetto a (estremità della catena con un certificato autofirmato), uno dei quali è memorizzato sotto lo pseudonimo
repository.location.url
(letterale posizione del repository qui, ad es. myrepository.com) - certificato per Maven centrale
Il file keyStore
contiene un certificato PKCS importato sotto falso nome del repository.
Non sembra esserci alcun problema con l'installazione, come funziona la riga di comando Maven. Se uso Maven esterno o riga di comando, funziona. Se eseguo l'incorporamento di uno (che viene sempre utilizzato per risolvere le dipendenze), viene visualizzato handshake error
.
Cosa sto sbagliando? Potrei mancare qualcosa di completamente ovvio. Qualsiasi aiuto sarebbe apprezzato.
La mia prima ipotesi sarebbe le impostazioni proxy in Eclipse, ma anche quelle dovrebbero utilizzare il keystore della VM: -/Dispari. Quale versione di Eclipse, Java e m2e? –
@AaronDigulla Eclipse Luna 4.4.1, m2e 1.5.0 (con Maven 3.2.1) e 1.6.0 (3.2.3), Java 1.7 e 1.8 (entrambi jdk e jre) – Sorrow
E hai aggiunto le opzioni '-D' dopo la riga '-vmargs'? –