【问题标题】:Run keytool on php在 php 上运行 keytool
【发布时间】:2014-03-21 07:12:51
【问题描述】:

我需要一个 php 脚本来生成带有 keystorejks。 我应该使用什么命令?

exec()system()?

我的代码:

exec("keytool -genkey -alias 1800 -keyalg RSA -keysize 2048 -validity 365 -keystore 1800.jks -keypass brsacquiro -storepass brsacquiro 2>&1", $return_var);

foreach($return_var as $word)
echo "$word<br>";

我得到结果:

What is your first and last name?
[Unknown]: What is the name of your organizational unit?
[Unknown]: What is the name of your organization?
[Unknown]: What is the name of your City or Locality?
[Unknown]: What is the name of your State or Province?
[Unknown]: What is the two-letter country code for this unit?
[Unknown]: Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?

我连续收到十个这样的文本。我需要回答那里列出的问题。 在此列表的末尾,我得到 error

keytool error: java.lang.RuntimeException: Too many retries, program terminated

如果我在cmd中写这个命令,那么一切都OK。

【问题讨论】:

  • 您是否在命令行上尝试过您的命令?因为这看起来像是一个 keytool 错误,而不是来自 execsystem 的 php 问题
  • 我忘了说。它会产生结果,但会重复很多次。最后:keytool error: java.lang.RuntimeException: Too many retries, program terminate.
  • 如果我在 cmd 中编写此命令 - 一切正常。
  • 您是否尝试过您的 php 用户(可能是 www-data?)是否可以执行此命令? keytool 不会创建文件(密钥?),如果可以,是否可以,或者是否允许在该位置创建文件?不知道为什么这个错误让你问systemexec 问题
  • ow,请编辑 cmets,例如对您的问题运行命令,它属于必要信息。我会添加它,但请记住:问题本身应该是完整的,cmets 只是更多......临时性的?

标签: java php cmd keystore


【解决方案1】:

无论使用什么,exec() 或 system()。使用此示例并将 ClientName、OrganizationUnit 等替换为您的值

keytool -genkey -noprompt \
 -alias alias1 \
 -dname "CN=ClientName, OU=OrganizationUnit, O=Organization, L=Locality, S=State, C=CountryCode" \
 -keystore keystore \
 -storepass password \
 -keypass password

【讨论】:

    猜你喜欢
    • 2013-06-27
    • 2017-09-02
    • 1970-01-01
    • 2022-11-09
    • 1970-01-01
    • 2011-11-09
    • 2015-02-26
    • 1970-01-01
    相关资源
    最近更新 更多