title: webstart-maven-plugin can not sign jar due to timestamp request rejection
body: <p>We have a project using <a href="https://mvnrepository.com/artifact/org.codehaus.mojo/webstart-maven-plugin" rel="nofollow noreferrer">webstart-maven-plugin</a> to create a Java Webstart JNLP artefact.</p>
  
  <p>But on maven compile I always get</p>
  
  <blockquote>
    <p>[ERROR] Failed to execute goal
    org.codehaus.mojo:webstart-maven-plugin:1.0-beta-6:jnlp-download-servlet
    (default) on project webstart: Could not sign jar
    ...\target\jnlp\libs\unprocessed_commons-codec-1.10.jar, use -X to
    have detail of error</p>
  </blockquote>
  
  <p>Running with with -X reveals:</p>
  
  <blockquote>
    <p>jarsigner: unable to sign jar: java.io.IOException: Error generating
    timestamp: the timestamp request was rejected. Unrecognized or
    unsupported algorithm identifier.</p>
  </blockquote>
  
  <p>Due to <a href="https://bugs.java.com/view_bug.do?bug_id=JDK-7102686" rel="nofollow noreferrer">this bug</a> I updated my JDK to 1.8 (just for testing purposes, since I currently still need 1.7 for the product):</p>
  
  <pre><code>java -version  
  java version "1.8.0_172"  
  Java(TM) SE Runtime    Environment (build 1.8.0_172-b11)
  </code></pre>
  
  <p>but still I'm getting the error above.</p>
  
  <p>To get the timestamp we are using the URL <a href="http://sha1timestamp.ws.symantec.com/sha1/timestamp" rel="nofollow noreferrer">http://sha1timestamp.ws.symantec.com/sha1/timestamp</a>, see maven plugin config below.</p>
  
  <p>My problem is: For my colleages it works, they have same Java version, same maven project setup etc.
  Therefore it has to be a problem in my local environment. Any ideas?</p>
  
  <pre><code>&lt;plugin&gt;
      &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
      &lt;artifactId&gt;webstart-maven-plugin&lt;/artifactId&gt;
      &lt;version&gt;1.0-beta-6&lt;/version&gt;
      &lt;executions&gt;
          &lt;execution&gt;
              &lt;phase&gt;process-resources&lt;/phase&gt;
              &lt;goals&gt;
                  &lt;goal&gt;jnlp-download-servlet&lt;/goal&gt;
              &lt;/goals&gt;
          &lt;/execution&gt;
      &lt;/executions&gt;
      &lt;configuration&gt;
          &lt;outputJarVersions&gt;true&lt;/outputJarVersions&gt;
          &lt;outputDirectoryName&gt;webstart&lt;/outputDirectoryName&gt;
          &lt;excludeTransitive&gt;false&lt;/excludeTransitive&gt;
          &lt;templateDirectory&gt;src/main/resources/jnlp&lt;/templateDirectory&gt;
          &lt;libPath&gt;libs&lt;/libPath&gt;
          &lt;verbose&gt;true&lt;/verbose&gt;
          &lt;unsignAlreadySignedJars&gt;true&lt;/unsignAlreadySignedJars&gt;
          &lt;jnlpFiles&gt;
              &lt;jnlpFile&gt;
                  &lt;templateFilename&gt;abc.vm&lt;/templateFilename&gt;
                  &lt;outputFilename&gt;abc.jnlp&lt;/outputFilename&gt;
                  &lt;jarResources&gt;
                      ...
                  &lt;/jarResources&gt;
              &lt;/jnlpFile&gt;
          &lt;/jnlpFiles&gt;
          &lt;sign&gt;
              &lt;keystore&gt;${pathKeystore}&lt;/keystore&gt;
              &lt;storepass&gt;${passstore}&lt;/storepass&gt;
              &lt;keypass&gt;${passkey}&lt;/keypass&gt;
              &lt;alias&gt;${alias}&lt;/alias&gt;
              &lt;tsaLocation&gt;${tsaLocation}&lt;/tsaLocation&gt;
              &lt;arguments&gt;
                  &lt;argument&gt;-J-Djavax.net.ssl.trustStore=${project.build.directory}/../myTruststore.jks&lt;/argument&gt;
                  &lt;argument&gt;-J-Djavax.net.ssl.trustStorePassword=myPassword&lt;/argument&gt;
                  &lt;argument&gt;-J-Djavax.net.ssl.keyStore=${project.build.directory}/../myTruststore.jks&lt;/argument&gt;
                  &lt;argument&gt;-J-Djavax.net.ssl.keyStorePassword=myPassword&lt;/argument&gt;
                  &lt;argument&gt;-J-Dhttps.proxyHost=proxy.mycompany.com&lt;/argument&gt;
                  &lt;argument&gt;-J-Dhttps.proxyPort=3128&lt;/argument&gt;
                  &lt;argument&gt;-J-Dhttp.proxyHost=proxy.mycompany.com&lt;/argument&gt;
                  &lt;argument&gt;-J-Dhttp.proxyPort=3128&lt;/argument&gt;
              &lt;/arguments&gt;
  
          &lt;/sign&gt;
          &lt;unsign&gt;true&lt;/unsign&gt; &lt;!-- unsign already signed packages and sign them with own key --&gt;
      &lt;/configuration&gt;
  &lt;/plugin&gt;
  
  ...         
  &lt;tsaLocation&gt;http://sha1timestamp.ws.symantec.com/sha1/timestamp&lt;/tsaLocation&gt;  
  </code></pre>