我無法讓Jarsigner使用HTTPS代理。對於我的系統,我在/ etc/sysconfig/proxy中配置了http & https代理。我甚至在Java控制中添加了代理。Java Jarsigner不使用提供的代理
與wget的檢查和代理做的工作:
[email protected]:~/workspace/myApp> wget https://timestamp.geotrust.com/tsa
--2015-10-05 16:06:30-- https://timestamp.geotrust.com/tsa
Resolving proxy.spacetec.no... 100.11.4.6
Connecting to proxy.spacetec.no|100.11.4.6|:3128... connected.
Proxy request sent, awaiting response... 404 Not Found
2015-10-05 16:06:31 ERROR 404: Not Found.
使用的jarsigner不使用所提供的代理:
/usr/java/jdk1.7.0_80/bin/jarsigner -J-Dhttps.proxyHost=http://proxy.company.com -J-Dhttps.proxyPort=3128 -keystore /home/user/keystore.p12 -storepass myStorePass -storetype pkcs12 -tsa https://timestamp.geotrust.com/tsa workspace/myApp/target/myApp-1.0.0-SNAPSHOT.jar alias
jarsigner: unable to sign jar: no response from the Timestamping Authority. When connecting from behind a firewall an HTTP or HTTPS proxy may need to be specified. Supply the following options to jarsigner:
-J-Dhttp.proxyHost=<hostname>
-J-Dhttp.proxyPort=<portnumber>
or
-J-Dhttps.proxyHost=<hostname>
-J-Dhttps.proxyPort=<portnumber>
那麼,爲什麼正在我的系統上的代理,而不是使用Java ?我已經嘗試了jdk1.7.0_80和jdk1.8.0_60
jarsigner使用RFC 3161中定義的時間戳協議(TSP)與TSA進行通信。該協議基本上假定TSA上的偵聽器進程可以接受TSA消息定義良好的端口(IP端口號318)。
難道我的代理服務器不會與TSP的此端口通信嗎?
刪除'-J-Dhttps.proxyHost = HTTP://proxy.company.com -J-Dhttps.proxyPort = 3128'和嘗試再次。 –
也許是因爲URL https:// timestamp.geotrust.com/tsa'返回了一個404錯誤。 – SubOptimal
我嘗試過並且沒有沒有-J-Dhttps.proxy *,並且Jarsigner仍然告訴我使用這些設置,因爲它無法從TSA獲得響應。不管結果如何,仍然可以看到wget正在使用代理。 TSA的URL確實會返回一個HTTP 404錯誤,但是在jarsigner後面使用的是端口318上的此URL的TimeStamp協議 – DJViking