Maven+JDK6での、peer not authenticated

Maven(3.0.3)+JDK6において実行してたら、repository.apache.orgにアクセスした時に、以下のエラー発生した模様。

[WARNING] Could not transfer metadata commons-collections:commons-collections:4.0-SNAPSHOT/maven-metadata.xml from/to apache (https://repository.apache.org/content/groups/snapshots/): peer not authenticated
[WARNING] Failure to transfer commons-collections:commons-collections:4.0-SNAPSHOT/maven-metadata.xml from https://repository.apache.org/content/groups/snapshots/ was cached in the local repository, resolution will not be reattempted until the update interval of apache has elapsed or updates are forced. Original error: Could not transfer metadata commons-collections:commons-collections:4.0-SNAPSHOT/maven-metadata.xml from/to apache (https://repository.apache.org/content/groups/snapshots/): peer not authenticated

 
 
 
peer not authenticatedと初めてのエラーだったけど、 証明書関連の問題かと早とちりして、ローカルのJDKに証明書のkeystoreに追加

$ openssl s_client -showcerts -connect repository.apache.org:443 </dev/null 2>/dev/null|openssl x509 -outform DER > repository-apache-org.cer
$ ${JAVA_HOME}/bin/keytool -import -trustcacerts -file repository-apache-org.cer -keystore ${JAVA_HOME}/jre/lib/security/cacerts -alias repository-apache-org -storepass changeit

 
 
 
でも、Mavenが、まだ失敗するので、調査。(同じエラーメッセージでた)
とりあえず、内部でどんなエラーでるのか、以前作成したscriptでcheck。

$ export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
$ git clone https://github.com/hdkshjm/check-java-trusted-store.git
$ bash ./check-java-trusted-store/bin/access_ssl_test.sh -u https://repository.apache.org -c ${JAVA_HOME}/jre/lib/security/cacerts
JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
certs file=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security/cacerts

Exception in thread "main" javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:190)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1747)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1708)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1691)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1222)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1199)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:476)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1195)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)
    at SSLClientSample.main(SSLClientSample.java:23)
Caused by: java.lang.RuntimeException: Could not generate DH keypair
    at com.sun.net.ssl.internal.ssl.DHCrypt.<init>(DHCrypt.java:114)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverKeyExchange(ClientHandshaker.java:559)
    at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:186)
    at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593)
    at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:943)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1188)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1215)
    ... 6 more
Caused by: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive)
    at com.sun.crypto.provider.DHKeyPairGenerator.initialize(DashoA13*..)
    at java.security.KeyPairGenerator$Delegate.initialize(KeyPairGenerator.java:627)
    at com.sun.net.ssl.internal.ssl.DHCrypt.<init>(DHCrypt.java:107)
    ... 13 more
fail to access https://repository.apache.org

 
 
 
Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive) というエラーメッセージから こことか ここに関連するかと思い、
最終的には、JDK-6521495 : Lift 1024-bit long prime restriction on Diffie-Hellmanに当てはまるかと推測。 JDK7だと、これによって、7u85で修正されている。  
でも、推測は外れた模様。 上記のfix前の7u4で試したところ、上記エラーメッセージは表示されなかった。。。。
(7u4では同じエラーメッセージが表示され、7u85では表示されないと想定してた)  
 
そもそもEOLを迎えているJDK6を使うべきではないので、これ以上調査するのを止めてJDK7使うことで解決とした。
これ以上調べても、結局JDK7or8使うことが解決策になるだろうと思う。 時間があったら、もうちょっと調べてみよう。