如何在Java 8中使用Keytool API而不是Process Builder ?



目前我们正在使用Java Process Builder在我的应用程序中执行keytool命令。有没有人可以帮助如何实现java Keytool API?

如命令:

keytool -keystore /tmp/cert/client.truststore.jks -alias CARoot -import -file /tmp/cert/ca-cert -storepass password -keypass password -noprompt

示例Java Process Builder:

String cmd = "keytool -keystore /tmp/cert/client.truststore.jks -alias CARoot -import -file /tmp/cert/ca-cert -storepass password -keypass password -noprompt"
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command(cmd);
try {
Process process = processBuilder.start();
BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
String output = in.lines().collect(Collectors.joining());
int exitVal = process.waitFor();
if (exitVal == 0) return output;
LOGGER.error(String.format(String.format("Certificate creation Failed %s", output)));
return null;
} catch (IOException | InterruptedException exception) {
LOGGER.error(exception.getMessage());
Thread.currentThread().interrupt();
}

keytool是命令行工具。如果以编程方式更新密钥存储库,则应该使用KeyStoreapi。文档在这里。

看起来您正在尝试添加证书。setCertificateEntry是一种编程方法。

相关内容

最新更新