gpt4 book ai didi

java - 无法创建 CSR 证书

转载 作者:太空宇宙 更新时间:2023-11-03 14:50:50 25 4
gpt4 key购买 nike

在 linux 中,我无法通过以下命令使用 java 创建 CSR 文件。直接从终端访问时,相同的命令也有效。

 ../jre/bin/keytool -genkey -alias tomcat -keyalg RSA -keypass "password" -storePass "password" -keysize 2048 -validity 300 -dName "CN=testcn, OU=test, O=ME, L=testch, S=tests, C=testc" -keystore ../jre/bin/ssl.keystore

得到以下异常:

keytool error: java.lang.RuntimeException: Usage error, OU=test, is not a legal command

提前致谢:-)

最佳答案

与其将命令作为一个字符串传递,不如尝试将命令行分成单独的参数。

换句话说,尝试替换

    Process p = Runtime.getRuntime().exec(command)

    Process p = Runtime.getRuntime().exec(new String[] {
"keytool", "-genkey", "-alias", "tomcat", "-keyalg", "RSA", "-keypass", "password", "-storePass", "password", "-keysize", "2048",
"-validity", "300", "-dName", "CN=testcn, OU=test, O=ME, L=testch, S=tests, C=testc", "-keystore", "test.keystore" });

或者,使用 ProcessBuilder:

    ProcessBuilder pb = new ProcessBuilder(
"keytool", "-genkey", "-alias", "tomcat", "-keyalg", "RSA", "-keypass", "password", "-storePass", "password", "-keysize", "2048",
"-validity", "300", "-dName", "CN=testcn, OU=test, O=ME, L=testch, S=tests, C=testc", "-keystore", "test.keystore");
Process p = pb.start();

ProcessBuilder 只能从命令行参数列表创建,不能从命令行创建。 Runtime.getRuntime().exec(command) 使用 StringTokenizer 拆分命令行,然后将结果传递给 ProcessBuilder,StringTokenizer 似乎不能很好地拆分它命令行进入其参数。

关于java - 无法创建 CSR 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34549132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com