Problems using Maven and SSL behind proxy Problems using Maven and SSL behind proxy java java

Problems using Maven and SSL behind proxy


The answer above is a good working solution, but here's how to do it if you want to use the SSL repo:

  • Use a browser (I used IE) to go to https://repo.maven.apache.org/
    • Click on lock icon and choose "View Certificate"
    • Go to the "Details" tab and choose "Save to File"
    • Choose type "Base 64 X.509 (.CER)" and save it somewhere
  • Now open a command prompt and type (use your own paths):

    keytool -import -file C:\temp\mavenCert.cer -keystore C:\temp\mavenKeystore

  • Now you can run the command again with the parameter

    -Djavax.net.ssl.trustStore=C:\temp\mavenKeystore

  • Under linux use absolute path

    -Djavax.net.ssl.trustStore=/tmp/mavenKeystore

    otherwise this will happen

  • Like this:

    mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false -Djavax.net.ssl.trustStore=C:\temp\mavenKeystore

Optional:

You can use the MAVEN_OPTS environment variable so you don't have to worry about it again. See more info on the MAVEN_OPTS variable here:


The fact is that your maven plugin try to connect to an https remote repository
(e.g https://repo.maven.apache.org/maven2/)

This is a new SSL connectivity for Maven Central was made available in august, 2014 !

So please, can you verify that your settings.xml has the correct configuration.

    <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>

You can alternatively use the simple http maven repository like this

 <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>

Please let me know if my solution works ;)

J.


You can use the -Dmaven.wagon.http.ssl.insecure=true option