feat: 添加JDK信任证书

This commit is contained in:
qi4L
2025-09-06 17:08:22 +08:00
parent 946854c4cc
commit 5667002721
2 changed files with 20 additions and 12 deletions
+12 -4
View File
@@ -1,6 +1,7 @@
package com.qi4l.JYso;
import com.qi4l.JYso.gadgets.Config.Config;
import javax.net.ssl.*;
import java.io.IOException;
import java.io.InputStream;
@@ -12,25 +13,32 @@ import java.nio.file.Paths;
import java.security.KeyStore;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import static org.fusesource.jansi.Ansi.ansi;
public class TLSProxy {
private final String localAddr;
private final String remoteAddr;
private final String certFile;
private final String keyPass;
public TLSProxy(String localAddr, String remoteAddr, String certFile) {
public TLSProxy(String localAddr, String remoteAddr, String certFile, String keyPass) {
this.localAddr = localAddr;
this.remoteAddr = remoteAddr;
this.certFile = certFile;
this.keyPass = keyPass;
}
public static void start() {
System.out.println(ansi().render("@|green [+]|@ LDAPS Server Start Listening on >> " + Config.TLSPort + "..."));
new TLSProxy(Config.ip + ":" + Config.TLSPort, Config.ip + ":" + Config.ldapPort, Config.certFile).run();
new TLSProxy(Config.ip + ":" + Config.TLSPort, Config.ip + ":" + Config.ldapPort, Config.certFile,Config.keyPass).run();
}
public void run() {
// 设置JDK信任证书
System.setProperty("javax.net.ssl.trustStore", certFile);
System.setProperty("javax.net.ssl.trustStorePassword", keyPass);
SSLServerSocketFactory sslServerSocketFactory = createSSLServerSocketFactory();
if (sslServerSocketFactory == null) {
System.err.println("Failed to create SSLServerSocketFactory");
@@ -58,10 +66,10 @@ public class TLSProxy {
KeyStore keyStore = KeyStore.getInstance("JKS");
try (InputStream keyInput = Files.newInputStream(Paths.get(certFile))) {
keyStore.load(keyInput, Config.keyPass.toCharArray());
keyStore.load(keyInput, keyPass.toCharArray());
}
keyManagerFactory.init(keyStore, Config.keyPass.toCharArray());
keyManagerFactory.init(keyStore, keyPass.toCharArray());
sslContext.init(keyManagerFactory.getKeyManagers(), null, null);
return sslContext.getServerSocketFactory();
} catch (Exception e) {
@@ -46,10 +46,10 @@ public class Config {
public static boolean TLSProxy = false;
@Parameter(names = {"-tP", " --TLSPort"}, help = true, description = "TLS port", order = 5)
public static String TLSPort = "1636";
@Parameter(names = {"-kS", " --keyPass"}, help = true, description = "TLS private key", order = 5)
public static String keyPass = "";
@Parameter(names = {"-cF", " --certFile"}, help = true, description = "Path to the TLS certificate file", order = 5)
public static String certFile = "";
@Parameter(names = {"-kP", " --keyPass"}, help = true, description = "TLS private key", order = 5)
public static String keyPass = "326q999h80s8";
@Parameter(names = {"-cF", " --certFile"}, help = true, description = "JKS certificate file Path", order = 5)
public static String certFile = "C:\\Users\\22393\\Downloads\\qi4l.top_jks\\qi4l.top.jks";
@Parameter(names = {"-j", "--jndi"}, help = true, description = "starter", order = 5)
public static boolean jndi = false;