jarsigner 和代理,具有时间戳权限或替代方案的身份验证
jarsigner and proxy with authentication for timestamp authority or alternatives
以前我们使用的是没有身份验证的代理,jarsigner 对此没有问题。由于代理现在需要用户名和密码,我们无法让 jarsigner 处理这个问题。
有没有办法让 jarsigner 与需要身份验证的代理一起工作?
这是我们之前使用的命令(没有验证):
jarsigner -sigalg SHA256withRSA -digestalg SHA-256 -verbose -tsa 'http://timestamp.digicert.com' -J-Dhttp.proxyHost=my.server -J-Dhttps.proxyPort=8080
我们试过这个:
jarsigner -sigalg SHA256withRSA -digestalg SHA-256 -verbose -tsa 'http://timestamp.digicert.com' -J-Dhttp.proxyHost=my.server -J-Dhttps.proxyPort=8080 -J-Dhttp.proxyUser=user-J-Dhttp.proxyPassword=password
还有这个:
jarsigner -sigalg SHA256withRSA -digestalg SHA-256 -verbose -tsa 'http://timestamp.digicert.com' -J-Djava.net.useSystemProxies=true
None 个正在工作。
有没有办法对有效的 jar 文件进行签名?那就是:jarsigner 可以工作吗?如果没有:还有其他选择吗?
我们正在使用 openjdk8。
import sun.security.tools.jarsigner.Main;
import java.net.Authenticator;
import java.net.PasswordAuthentication;
public class NewJarSigner {
public static void main(String args[]) throws Exception {
System.setProperty("http.proxyHost","0.0.0.0");
System.setProperty("https.proxyHost","0.0.0.0");
System.setProperty("http.proxyPort","8080");
System.setProperty("https.proxyPort","8080");
Authenticator.setDefault(
new Authenticator() {
@Override
public PasswordAuthentication getPasswordAuthentication() {
String authPassword="password";
return new PasswordAuthentication("user", authPassword.toCharArray());
}
}
);
Main js = new Main();
js.run(args);
}
}
你用
编译这个
javac NewJarSigner.java -cp /path/to/jdk/lib/tools.jar
你运行这个跟
java -cp .:/path/to/jdk/lib/tools.jar NewJarSigner
并且您有一个新的 jarsigner 可以与代理身份验证一起使用。
以前我们使用的是没有身份验证的代理,jarsigner 对此没有问题。由于代理现在需要用户名和密码,我们无法让 jarsigner 处理这个问题。
有没有办法让 jarsigner 与需要身份验证的代理一起工作?
这是我们之前使用的命令(没有验证):
jarsigner -sigalg SHA256withRSA -digestalg SHA-256 -verbose -tsa 'http://timestamp.digicert.com' -J-Dhttp.proxyHost=my.server -J-Dhttps.proxyPort=8080
我们试过这个:
jarsigner -sigalg SHA256withRSA -digestalg SHA-256 -verbose -tsa 'http://timestamp.digicert.com' -J-Dhttp.proxyHost=my.server -J-Dhttps.proxyPort=8080 -J-Dhttp.proxyUser=user-J-Dhttp.proxyPassword=password
还有这个:
jarsigner -sigalg SHA256withRSA -digestalg SHA-256 -verbose -tsa 'http://timestamp.digicert.com' -J-Djava.net.useSystemProxies=true
None 个正在工作。
有没有办法对有效的 jar 文件进行签名?那就是:jarsigner 可以工作吗?如果没有:还有其他选择吗?
我们正在使用 openjdk8。
import sun.security.tools.jarsigner.Main;
import java.net.Authenticator;
import java.net.PasswordAuthentication;
public class NewJarSigner {
public static void main(String args[]) throws Exception {
System.setProperty("http.proxyHost","0.0.0.0");
System.setProperty("https.proxyHost","0.0.0.0");
System.setProperty("http.proxyPort","8080");
System.setProperty("https.proxyPort","8080");
Authenticator.setDefault(
new Authenticator() {
@Override
public PasswordAuthentication getPasswordAuthentication() {
String authPassword="password";
return new PasswordAuthentication("user", authPassword.toCharArray());
}
}
);
Main js = new Main();
js.run(args);
}
}
你用
编译这个javac NewJarSigner.java -cp /path/to/jdk/lib/tools.jar
你运行这个跟
java -cp .:/path/to/jdk/lib/tools.jar NewJarSigner
并且您有一个新的 jarsigner 可以与代理身份验证一起使用。