JDK 1.7.0_80 の Thawte ルート証明書が失効しているようです。 https://www.thawte.com/roots/retired.html
7u80 jarsigner を使用しても機能しなくなり、ほんの数日前までは正常に機能していました。
/usr/java/jdk1.7.0_80/jre/../bin/jarsigner -keystore /home/build/keystore.p12 -storepass storepass -storetype pkcs12 -tsa https://timestamp.geotrust.com/tsa /home/build/jenkins/workspace/my-gui/target/my-gui-3.0.29-SNAPSHOT.jar comp
jarsigner: unable to sign jar: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
古いものを削除した後、Thawtes Timestamping CA 証明書を cacerts にインポートしようとしました。
wget https://www.thawte.com/roots/Thawte_Timestamping_CA.pem
/usr/java/jdk1.7.0_80/bin/keytool -import -trustcacerts -alias verisigntsaca -file Thawte_Timestamping_CA.pem -keystore jre/lib/security/cacerts
Enter keystore password:
Trust this certificate? [no]: yes
Certificate was added to keystore
JDK 8u60 から jarsigner を使用すると機能するため、その cacerts を JDK7 にコピーしようとしましたが、それも機能しませんでした。
Javadoc エラーのため、Java 8 ではまだコンパイルできません。私が見る唯一の解決策は、JDK7でJDK8 jarsignerへのシンボリックリンクを作成することです。
/usr/java/jdk1.8.0_60/jre/../bin/jarsigner -keystore /home/build/keystore.p12 -storepass storepass -storetype pkcs12 -tsa https://timestamp.geotrust.com/tsa /home/build/jenkins/workspace/my-gui/target/my-gui-3.0.29-SNAPSHOT.jar comp
jar signed.
tsa を geotrust から digicert に切り替えると、https を使用しないため、JDK 7 で正常に動作します。 http://timestamp.digicert.com/