java - Problemas al usar Maven y SSL detrás del proxy
maven proxy command line (14)
Actualizar
Acabo de tropezar con este informe de error:
https://bugs.launchpad.net/ubuntu/+source/ca-certificates-java/+bug/1396760
Parece ser la causa de nuestros problemas aquí. Algo con ca-certificados-java que encuentra un error y no llena completamente los cacerts. Para mí, esto comenzó a suceder después de actualizar a 15.10 y este error probablemente ocurrió durante ese proceso.
La solución es ejecutar el siguiente comando:
sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure
Si verifica el contenido del almacén de claves (como en mi respuesta original), ahora verá un montón más, incluida la DigiCert Global Root CA necesaria.
Si realizó el proceso en mi respuesta original, puede limpiar la clave que agregamos ejecutando este comando (suponiendo que no especificó un alias diferente):
sudo keytool -delete -alias mykey -keystore / etc / ssl / certs / java / cacerts
Maven ahora funcionará bien.
Respuesta original
Solo me gustaría ampliar la respuesta de Andy sobre agregar el certificado y especificar un almacén de claves. Eso me ayudó a comenzar, y combinado con información en otro lugar pude entender el problema y encontrar otra solución (¿mejor?).
La respuesta de Andy especifica un nuevo almacén de claves con el certificado Maven específicamente. Aquí, voy un poco más amplio y agrego el certificado raíz al almacén de confianza predeterminado de Java. Esto me permite usar mvn (y otras cosas de Java) sin especificar un almacén de claves.
Como referencia, mi sistema operativo es Ubuntu 15.10 con Maven 3.3.3.
Básicamente, el almacén de confianza de Java predeterminado en esta configuración no confía en el certificado raíz del repositorio de Maven (DigiCert Global Root CA), por lo que debe agregarse.
Lo encontré aquí y descargué:
https://www.digicert.com/digicert-root-certificates.htm
Luego encontré la ubicación predeterminada del almacén de confianza, que reside aquí:
/ etc / ssl / certs / java / cacerts
Puede ver qué certificados hay actualmente ejecutando este comando:
keytool -list -keystore / etc / ssl / certs / java / cacerts
Cuando se le solicite, la contraseña predeterminada del almacén de claves es "changeit" (pero nadie lo hace nunca).
En mi configuración, la huella digital de "DigiCert Global Root CA" no existía (DigiCert lo llama "huella digital" en el enlace de arriba). Así que aquí está cómo agregarlo:
sudo keytool -import -file DigiCertGlobalRootCA.crt -keystore / etc / ssl / certs / java / cacerts
Esto debería indicar si confía en el certificado, diga sí.
Use keytool -list nuevamente para verificar que la clave existe. No me molesté en especificar un alias (-alias), por lo que terminó así:
mykey, 2 de diciembre de 2015, TrustedCertEntry, Certificado de huella digital (SHA1): A8: 98: 5D: 3A: 65: E5: E5: C4: B2: D7: D6: 6D: 40: C6: DD: 2F: B1: 9C : 54: 36
Luego pude ejecutar los comandos mvn de forma normal, sin necesidad de especificar el almacén de claves.
Acabo de descargar Maven y estaba tratando de ejecutar el comando simple que se encuentra en la página "Maven en cinco minutos" ( http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html ). Este es el comando:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Cuando lo ejecuto, aparece un error con el certificado SSL y no puedo descargarlo desde el repositorio central de Maven en https://repo.maven.apache.org/maven2 . El error es "SunCertPathBuilderException: no se puede encontrar la ruta de certificación válida para el objetivo solicitado".
Estoy sentado detrás de un firewall corporativo y he configurado correctamente la configuración del proxy para el acceso
http
y
https
a través del archivo
settings.xml
.
Dudo que todos los que descarguen Maven y lo ejecuten por primera vez tengan que importar el certificado SSL del repositorio de Maven, por lo que el problema debe estar en el proxy.
¿Alguien tiene alguna experiencia con esto?
Aquí está el seguimiento de la pila en modo de depuración completa (-X):
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T22: 58: 10 + 02: 00) Maven home: C: / Projects / maven / bin .. Versión Java: 1.7.0_45, proveedor: Oracle Corporation Java home: C : / Archivos de programa / Java / jdk1.7.0_45 / jre Configuración regional predeterminada: it_IT, codificación de plataforma: Cp1252 Nombre del sistema operativo: "windows 7", versión: "6.1", arch: "amd64", familia: "windows" [DEBUG] Usando el conector WagonRepositoryConnector con prioridad 0.0 para https://repo.maven.apache.org/maven2 través de *****: 8080 con nombre de usuario = *****, contraseña = *** Descargando: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom [ADVERTENCIA] Error al recuperar el descriptor del complemento para org.apache.maven.plugins: maven-clean-plugin: 2.5: Plugin org.apache.maven.plugins: maven-clean-plugin: 2.5 o una de sus dependencias no se pudo resolver: no se pudo leer el descriptor de artefactos para org.apache.maven.plugins: maven- clean-plugin: jar: 2.5 org.apache.maven.plugin.PluginResolutionException: Plugin org.apache.maven.pl ugins: maven-clean-plugin: 2.5 o una de sus dependencias no se pudo resolver: no se pudo leer el descriptor de artefactos para org.apache.maven.plugins: maven-clean-plugin: jar: 2.5 en org.apache.maven.plugin ... : 81) en org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolveFromProject (DefaultPluginPrefixResolver.java:138) en org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolveFolver. org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolve (DefaultPluginPrefixResolver.java:85) en org.apache.maven.lifecycle.internal.MojoDescriptorCreator.findPluginForPrefix (MojoDescriptorCreator.java:2) .apache.maven.lifecycle.internal.MojoDescriptorCreator.getMojoDescriptor (MojoDescriptorCreator.java:220) en org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments (DefaultLifecycleTas..ata. .DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments (DefaultLifecycleTaskSegmentCalculator.java:83) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:85) at org.apache.maven.DefaultMaven.doven.DefaultMaven.doven.DefaultMaven.do. org.apache.maven.DefaultMaven.execute (DefaultMaven.java:154) en org.apache.maven.cli.MavenCli.execute (MavenCli.java:582) en org.apache.maven.cli.MavenCli.doMain (MavenCli. java: 214) en org.apache.maven.cli.MavenCli.main (MavenCli.java:158) en sun.reflect.NativeMethodAccessorImpl.invoke0 (Método nativo) en sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java: en sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingM ethodAccessorImpl.java:43) en java.lang.reflect.Method.invoke (Method.java:606) en org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289) en org.codehaus.plexus .classworlds.launcher.Launcher.launch (Launcher.java:229) en org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415) en org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356) Causado por: org.eclipse.aether.resolution.ArtifactDescriptorException: Error al leer el descriptor de artefactos para org.apache.maven.plugins: maven-clean-plugin: jar: 2.5 en org.apache.maven. repositorio.internal.DefaultArtifactDescriptorReader.loadPom (DefaultArtifactDescriptorReader.java:349) en org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor (DefaultArtifactDescriptorReader.java:231) .eje. DefaultRepositorySystem.java:288) en org.apache.maven.plugin.internal.DefaultPluginDep endenciesResolver.resolve (DefaultPluginDependenciesResolver.java:108) ... 23 más Causado por: org.eclipse.aether.resolution.ArtifactResolutionException: No se pudo transferir el artefacto org.apache.maven.plugins: maven-clean-plugin: pom: 2.5 de / a central ( https://repo.maven.apache.org/maven2 ): sun.security.validator.ValidatorException: error en la construcción de la ruta PKIX: sun.security.provider.certpath.SunCertPathBuilderException: no se puede encontrar la ruta de certificación válida a la solicitada objetivo en org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver.java:459) en org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver.java:262) en org.eherclip. internal.impl.DefaultArtifactResolver.resolveArtifact (DefaultArtifactResolver.java:239) en org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom (DefaultArtifactDescriptorReader.java:334) ... 26 más Causado por: org.ecl. .ArtifactTransferExceptio n: No se pudo transferir el artefacto org.apache.maven.plugins: maven-clean-plugin: pom: 2.5 from / to central ( https://repo.maven.apache.org/maven2 ): sun.security.validator.ValidatorException : Falló la construcción de la ruta PKIX: sun.security.provider.certpath.SunCertPathBuilderException: no se pudo encontrar la ruta de certificación válida para el destino solicitado en org.eclipse.aether.connector.wagon.WagonRepositoryConnector $ 6.wrap (WagonRepositoryConnector.java:1016) en org. eclipse.aether.connector.wagon.WagonRepositoryConnector $ 6.wrap (WagonRepositoryConnector.java:1004) en org.eclipse.aether.connector.wagon.WagonRepositoryConnector $ GetTask.run (WagonRepositoryConnector.java.e.ip). .concurrency.RunnableErrorForwarder $ 1.run (RunnableErrorForwarder.java:67) en java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145) en java.util.concurrent.ThreadPoolExecutor $ Worker.run. en java.lang.Thread.run (Thread.java:744) Causado por: org.apache.maven.wagon.Transf erFailedException: sun.security.validator.ValidatorException: error en la construcción de la ruta PKIX: sun.security.provider.certpath.SunCertPathBuilderException: no se puede encontrar la ruta de certificación válida para el objetivo solicitado en org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.fillInput (AbstractHttpClientWagon.java:935) en org.apache.maven.wagon.StreamWagon.getInputStream (StreamWagon.java:116) en org.apache.maven.wagon.StreamWagon.getIfNewer (StreamWagon.java:88) en org.apache. maven.wagon.StreamWagon.get (StreamWagon.java:61) en org.eclipse.aether.connector.wagon.WagonRepositoryConnector $ GetTask.run (WagonRepositoryConnector.java:660) ... 4 más Causado por: javax.net.ssl .SSLHandshakeException: sun.security.validator.ValidatorException: Falló la construcción de la ruta PKIX: sun.security.provider.certpath.SunCertPathBuilderException: no se pudo encontrar la ruta de certificación válida para el objetivo solicitado en sun.security.ssl.Alerts.getSSLException (Alerts.java: 192) en sun.security.ssl.SSLSocketImpl.fatal (SSLSocketIm pl.java:1884) en sun.security.ssl.Handshaker.fatalSE (Handshaker.java:276) en sun.security.ssl.Handshaker.fatalSE (Handshaker.java:270) en sun.security.ssl.ClientHandshaker.serverCertificate (ClientHandshaker.java:1341) en sun.security.ssl.ClientHandshaker.processMessage (ClientHandshaker.java:153) en sun.security.ssl.Handshaker.processLoop (Handshaker.java:868) en sun.security.ssl.Handshaker. process_record (Handshaker.java:804) en sun.security.ssl.SSLSocketImpl.readRecord (SSLSocketImpl.java:1016) en sun.security.ssl.SSLSocketImpl.performInitialHandshake (SSLSocketImpl.java:1312) en sun.security.ssl.SSmpl.oSI .startHandshake (SSLSocketImpl.java:1339) en sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:1323) at org.apache.maven.wagon.providers.http.httpclient.conn.ssl.SScketactiono. .java: 280) en org.apache.maven.wagon.providers.http.httpclient.impl.conn.HttpClientConnectionOperator.upgrade (HttpClientConnectionOperator .java: 167) en org.apache.maven.wagon.providers.http.httpclient.impl.conn.PoolingHttpClientConnectionManager.upgrade (PoolingHttpClientConnectionManager.java:329) en org.apache.maven.wagon.providerspclp.http.http. .execchain.MainClientExec.establishRoute (MainClientExec.java:392) en org.apache.maven.wagon.providers.http.httpclient.impl.execchain.MainClientExec.execute (MainClientExec.java:218) at org.apache.ma .providers.http.httpclient.impl.execchain.ProtocolExec.execute (ProtocolExec.java:194) en org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec.execute (RetryExec.java:85) en org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RedirectExec.execute (RedirectExec.java:108) en org.apache.maven.wagon.providers.http.httpclient.impl.client.InternalHttpClient. doExecute (InternalHttpClient.java:186) en org.apache.maven.wagon.providers.http.httpclient.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:82) en org.apache.maven.wagon.provide rs.http.AbstractHttpClientWagon.execute (AbstractHttpClientWagon.java:756) en org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.fillInputData (AbstractHttpClientWagon.java:854) ... sun.util.val. .ValidatorException: falló la construcción de la ruta PKIX: sun.security.provider.certpath.SunCertPathBuilderException: no se pudo encontrar la ruta de certificación válida para el objetivo solicitado en sun.security.validator.PKIXValidator.doBuild (PKIXValidator.java:385) en sun.security.validator .PKIXValidator.engineValidate (PKIXValidator.java:292) en sun.security.validator.Validator.validate (Validator.java:260) en sun.security.ssl.X509TrustManagerImpl.validate (X509TrustManagerImpl.java:32. ssl.X509TrustManagerImpl.checkTrusted (X509TrustManagerImpl.java:231) en sun.security.ssl.X509TrustManagerImpl.checkServerTrusted (X509TrustManagerImpl.java:126) en sun.security.ssl.ClientHaha. más Causado por: sun.security.provider. certpath.SunCertPathBuilderException: no se puede encontrar la ruta de certificación válida para el objetivo solicitado en sun.security.provider.certpath.SunCertPathBuilder.engineBuild (SunCertPathBuilder.java:196) en java.security.cert.CertPathBuilder.build (CertPathBuilder.java:268 sun.security.validator.PKIXValidator.doBuild (PKIXValidator.java:380) ... 33 más
Aunque estaba poniendo los certificados en cacerts, todavía recibía el error. Resulta que los estaba poniendo en jre, no en jdk / jre.
¡Hay dos tiendas de claves, tenlo en cuenta!
El hecho es que su complemento Maven intenta conectarse a un repositorio remoto https
(por ejemplo,
https://repo.maven.apache.org/maven2/
)
¡Esta es una nueva conectividad SSL para Maven Central disponible en agosto de 2014!
Entonces, ¿puede verificar que su settings.xml tenga la configuración correcta?
<settings>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>securecentral</activeProfile>
</activeProfiles>
<profiles>
<profile>
<id>securecentral</id>
<!--Override the repository (and pluginRepository) "central" from the
Maven Super POM -->
<repositories>
<repository>
<id>central</id>
<url>http://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
</settings>
Alternativamente, puede usar el repositorio http maven simple como este
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Maven Plugin Repository</name>
<url>http://repo1.maven.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</pluginRepository>
</pluginRepositories>
Avíseme si mi solución funciona;)
J.
El problema que obtuve es antes, estaba usando jdk 1.8.0_31 con el certificado instalado. Cambié a jdk 1.8.0_191 pero no instalé el certificado.
Pero, mis proyectos funcionaban bien, me di cuenta de que sus dependencias ya estaban descargadas. Por lo tanto, solo compilarían y empaquetarían esos proyectos. Pero, esto no funcionó para nuevos proyectos maven ya que sus dependencias no se descargaron antes.
Solución::
- Cambie a la versión jdk anterior (que ya tenía el certificado instalado) para su nuevo proyecto y realice una instalación limpia
- Descargue el certificado nuevamente para la nueva versión jdk a la que se cambió recientemente y luego realice una instalación limpia
En realidad tuve el mismo problema.
cuando corro
paquete limpio mvn
en mi proyecto maven, recibo este error de certificado por la herramienta maven.
Seguí la respuesta de @Andy hasta el punto en que descargué el archivo .cer
después de eso, el resto de la respuesta no funcionó para mí, pero hice lo siguiente (estoy ejecutando en la máquina Linux Debian)
en primer lugar, ejecuta:
keytool -list -keystore "Ruta de Java +" / jre / lib / security / cacerts ""
por ejemplo en mi caso es:
keytool -list -keystore / usr / lib / jvm / jdk-8-oracle-arm32-vfp-hflt / jre / lib / security / cacerts
si le pregunta sobre la contraseña, simplemente presione enter.
Se supone que este comando enumera todos los certificados SSL aceptados por Java. cuando ejecuté este comando, en mi caso obtuve 93 certificados, por ejemplo.
Ahora agregue el archivo descargado .cer al archivo cacerts ejecutando el siguiente comando:
sudo keytool -importcert -file /home/hal/Public/certificate_file_downloaded.cer -keystore / usr / lib / jvm / jdk-8-oracle-arm32-vfp-hflt / jre / security / cacerts
escriba su contraseña de sudo y luego le preguntará sobre la contraseña del almacén de claves
el predeterminado es changeit
luego diga que confía en este certificado.
si ejecutas el comando
keytool -list -keystore / usr / lib / jvm / jdk-8-oracle-arm32-vfp-hflt / jre / lib / security / cacerts
una vez más, en mi caso, obtuve 94 contenidos del archivo cacerts
significa que se agregó con éxito.
Esta puede no ser la mejor solución. Cambié mi maven de 3.3.x a 3.2.x. Y este problema desapareció.
La respuesta anterior es una buena solución de trabajo, pero aquí le mostramos cómo hacerlo si desea usar el repositorio SSL:
-
Use un navegador (usé IE) para ir a
https://repo.maven.apache.org/
- Haga clic en el icono de candado y elija "Ver certificado"
- Vaya a la pestaña "Detalles" y elija "Guardar en archivo"
- Elija el tipo "Base 64 X.509 (.CER)" y guárdelo en algún lugar
-
Ahora abra un símbolo del sistema y escriba (use sus propias rutas):
keytool -import -file C:/temp/mavenCert.cer -keystore C:/temp/mavenKeystore
-
Ahora puede ejecutar el comando nuevamente con el parámetro
-Djavax.net.ssl.trustStore=C:/temp/mavenKeystore
-
Bajo linux use ruta absoluta
-Djavax.net.ssl.trustStore=/tmp/mavenKeystore
de lo contrario this sucederá
-
Me gusta esto:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false -Djavax.net.ssl.trustStore=C:/temp/mavenKeystore
Opcional:
Puede usar la variable de entorno
MAVEN_OPTS
para que no tenga que preocuparse nuevamente.
Ver más información sobre la variable
MAVEN_OPTS
here
:
Lo que funcionó para mí:
Configure
<proxy>
opciones de
<proxy>
en
${MAVEN_HOME}/conf/settings.xml
:
(Nota: para otros, funcionó cuando configuraron
${user.home}/.m2/settings.xml
. Si no hay settings.xml en user.home, simplemente cópielo desde conf / en el directorio maven).
<!-- proxies
| This is a list of proxies which can be used on this machine to connect to the network.
| Unless otherwise specified (by system property or command-line switch), the first proxy
| specification in this list marked as active will be used.
|-->
<proxies>
<!-- proxy
| Specification for one proxy, to be used in connecting to the network.
|
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username>proxyuser</username>
<password>proxypass</password>
<host>proxy.host.net</host>
<port>80</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>
-->
<proxy>
<id>my-proxy</id>
<active>true</active>
<protocol>http</protocol>
<username></username>
<password></password>
<host>my.proxy.host.com</host>
<port>8080</port>
<nonProxyHosts></nonProxyHosts>
</proxy>
</proxies>
Luego señale
pom.xml
para descargar desde http maven central repo:
<project>
...
<repositories>
<repository>
<id>central</id>
<name>Maven Plugin Repository</name>
<url>http://repo1.maven.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</repository>
</repositories>
...
</project>
Es posible que también deba configurar el proxy http en su IDE.
Para VSCode en
settings.json
:
{
...
"http.proxy": "http://my/proxy/script/address/my-proxy.pac",
...
}
Para Win10: Inicio / Búsqueda> Configuración del proxy de red> Dirección de script
Fuentes:
Me encontré con este problema en la misma situación, y escribí una respuesta detallada a una pregunta relacionada sobre el desbordamiento de la pila explicando cómo modificar más fácilmente los cacerts del sistema usando una herramienta GUI. Creo que es un poco mejor que usar un almacén de claves único para un proyecto específico o modificar la configuración de Maven (que puede causar problemas en el futuro).
Puede importar el certificado SSL manualmente y simplemente agregarlo al almacén de claves.
Para usuarios de Linux,
Sintaxis:
keytool -trustcacerts -keystore / jre / lib / security / cacerts -storepass changeit -importcert -alias nexus -file
Ejemplo:
keytool -trustcacerts -keystore /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/security/cacerts -storepass changeit -importcert -alias nexus -file ~ / Downloads / abc.com-ssl. crt
Recibía el mismo error sobre el certificado SSL cuando Maven intentó descargar los módulos necesarios automáticamente.
Como remedio, estaba intentando implementar la respuesta anterior de Luke, pero descubrí que el certificado DigiCert Global Root CA ya está en el almacén de claves de confianza de Java.
Lo que me ayudó fue agregar
%JAVA_HOME%/bin
a la variable Path (estoy ejecutando Windows).
Y
%JAVA_HOME%
es una ubicación JDK, no solo una ubicación JRE, ya que Maven necesita un JDK.
No estoy seguro de por qué ayudó, pero lo hizo.
Estoy absolutamente seguro de que esto fue lo único que cambié.
Si este problema ocurre para el repositorio HTTPS , por ejemplo, https://repo.spring.io/milestone , puede intentar reemplazarlo por no seguro: http://repo.spring.io/milestone . Y eso es
Una solución rápida es agregar este código en su pom.xml:
<repositories>
<repository>
<id>central</id>
<name>Maven Plugin Repository</name>
<url>http://repo1.maven.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</repository>
</repositories>
Donde nunca es para evitar la búsqueda de un certificado.
Paso 1: OBTENGA el contenido del Certificado del sitio web (desea que se importe como una raíz confiable)
$ keytool -printcert -rfc -sslserver maven.2xoffice.com*
-----BEGIN CERTIFICATE-----
MIIFNTCCBB2gAwIBAgIHJ73QrVnyJjANBgkqhkiG9w0BAQsFADCBtDELMAkGA1UEBhMCVVMxEDAO
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIE3jCCA8agAwIBAgICAwEwDQYJKoZIhvcNAQEFBQAwYzELMAkGA1UEBhMCVVMxITAfBgNVBAoT
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY
...
-----END CERTIFICATE-----
The -rfc option outputs the certificate chain in PEM-encoded format for easy import back into a keystore.
Paso 2: guarde todo (incluidas las líneas BEGIN CERTIFICATE y END CERTIFICATE, que son importantes en este caso) como godaddyg2.pem e impórtelo a mi tienda de confianza a través de:
Paso 3: importe el certificado en el almacén de claves (almacén de claves de confianza de Java)
$ keytool -importcert -file ./godaddyg2.pem -keystore $JRE_LIB/lib/security/cacerts