【问题标题】:How to Use Keytool API instead of Process Builder in Java 8?如何在 Java 8 中使用 Keytool API 而不是 Process Builder?
【发布时间】:2021-02-23 06:43:14
【问题描述】:

目前我们正在使用 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 进程构建器示例:

    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();
    }

【问题讨论】:

    标签: java security keytool


    【解决方案1】:

    keytool 是命令行工具。如果您以编程方式更新密钥库,则应使用KeyStore api。文档here

    您似乎正在尝试添加证书。您可以使用以编程方式执行此操作的方法是setCertificateEntry

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 2014-08-28
      相关资源
      最近更新 更多