You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows命令行jarsigner加-tsa选项报SocketException权限拒绝问题排查

解决Jarsigner添加-tsa选项时出现SocketException: Permission denied: connect的问题

结合你描述的情况——不用时间戳选项签名正常,80端口能访问但加-tsa就报错,防火墙都已关闭——以下是几个最可能的原因及对应的排查/解决方法:

1. Java安全策略限制了出站连接

虽然系统层面防火墙没拦截,但Java的安全策略文件可能限制了jarsigner进程访问目标TSA服务器。

  • 找到你使用的JRE目录下的lib/security/java.policy文件(比如C:\Program Files\Java\jdk1.8.0_xxx\jre\lib\security\java.policy)
  • 打开文件,在grant块中添加以下权限配置:
    permission java.net.SocketPermission "sha256timestamp.ws.symantec.com:80", "connect,resolve";
    
  • 保存后重新运行jarsigner命令试试。

2. TSA服务器的HTTP POST请求被拦截或不支持

你直接用浏览器访问TSA URL是GET请求,能得到响应,但jarsigner向TSA服务器发送的是HTTP POST请求,服务器可能对POST请求有不同的限制,或者该TSA服务已不再支持HTTP协议。

  • 尝试将TSA地址换成HTTPS版本:
    jarsigner -keystore C:/keystore.p12 -storepass xyz jars_to_be_signed.jar friendly_name -tsa https://sha256timestamp.ws.symantec.com/sha256/timestamp -storetype pkcs12 signedjar C:/signed.jar
    
    很多旧的HTTP TSA服务已经迁移到HTTPS,即使HTTP能返回内容,也可能不再处理签名所需的POST请求。

3. 系统/Java代理设置干扰

如果你的系统配置了代理服务器,Java进程可能默认使用代理,但代理未正确配置导致连接失败。

  • 在运行jarsigner时添加参数禁用代理:
    jarsigner -Dhttp.proxyHost= -Dhttp.proxyPort= -keystore C:/keystore.p12 -storepass xyz jars_to_be_signed.jar friendly_name -tsa http://sha256timestamp.ws.symantec.com/sha256/timestamp -storetype pkcs12 signedjar C:/signed.jar
    
  • 也可以检查系统环境变量中是否存在HTTP_PROXY、HTTPS_PROXY,如果有暂时移除后再测试。

4. 运行jarsigner的进程权限不足

即使系统防火墙关闭,普通用户权限的进程可能被系统安全策略(比如UAC)限制发起出站网络连接。

  • 右键点击命令提示符/终端,选择「以管理员身份运行」,然后重新执行jarsigner命令。

5. TSA服务器本身的问题

Symantec的部分TSA服务可能存在访问限制或已变更,你可以尝试更换其他公开的TSA服务器测试,比如:

  • http://timestamp.digicert.com
  • http://tsa.starfieldtech.com

替换-tsa参数后再运行签名命令,看是否能成功连接。


内容的提问来源于stack exchange,提问作者Aishwarya Radhakrishnan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:21:37