我仔细阅读了问题13335419、8748089、4282405和其他一些问题。他们指出最可能的原因是嵌入空间。另一个答案是可能的证书问题。我使用本教程作为指南。
\n\n我签发了真实的证书,而不是像问题中那样的自我证书。我还使用最新的 JDK,1.8.0-60(64 位)。我卸载了所有其他 JDK。
\n\n电脑:
\n\nOS: Windows 7 64-bit\nJDK Path: "C:\\Program Files\\Java\\jdk1.8.0_60"\nRun Code Online (Sandbox Code Playgroud)\n\n我尝试了多种技术来消除空间问题。从管理命令提示符处:
\n\n命令行:
\n\njarsigner.exe \xe2\x80\x93keypass <key password> -keystore C:\\SoftDev\\JavaWorkspaces\\myproject\\Versions\\Current64\\mykeystore.keystore \xe2\x80\x93storepass <store password> -tsa http://timestamp.comodoca.com/rfc3161 -digestalg SHA2 C:\\SoftDev\\JavaWorkspaces\\myproject\\Versions\\Current64\\build\\bin\\myproject.jar 31843016-4ab3-11e5-9ba9-0015170bee96\nRun Code Online (Sandbox Code Playgroud)\n\n我通过查看证书详细信息验证了我的证书使用算法 SHA-2 (SHA-256)。当我将证书导出到 PFX 文件时,我尝试了复选框 1(包括路径中的所有证书)和复选框 3(扩展属性)的两种排列。我最初选择导出私钥。
\n\n我与密钥颁发者交谈,他们认为别名应该是 39 个字符,但是我重新检查了发出该命令的命令,经过多次尝试,我得到了 37 个字符。
\n\nkeytool.exe -importkeystore …Run Code Online (Sandbox Code Playgroud) 我使用 Xamarin 制作的 APK 进行演示,并使用默认的 debug.keystore 进行签名。由于新的 Xamarin 安装,密钥库已更改,现在我无法升级新版本的 apk,因为遇到“应用程序未安装”错误。出于多种原因,我不希望我的用户卸载以前的应用程序而丢失数据。\n我同意我没有使用调试密钥进行发布(我已经吸取了这一教训),但是有没有办法重新创建以前的应用程序debug.keystore 通过其签名和应用程序之一?
\n\n这是 debug.keystore 的 keytool 输出:
\n\nNome alias: androiddebugkey\nData di creazione: 3-apr-2016\nTipo di voce: PrivateKeyEntry\nLunghezza catena certificati: 1\nCertificato[1]:\nProprietario: CN=Android Debug, O=Android, C=US\nAutorit\xc3\x93 emittente: CN=Android Debug, O=Android, C=US\nNumero di serie: 76df3d0d\nValido da: Sun Apr 03 15:22:52 CEST 2016 a: Tue Mar 27 15:22:52 CEST 2046\nImpronte digitali certificato:\n MD5: 4C:00:43:61:97:17:DF:B1:95:42:37:53:30:1A:A4:AC\n SHA1: D5:48:B9:2A:09:66:58:B8:38:16:88:60:47:F3:BF:87:2C:6B:3F:5E\n SHA256: 58:36:AF:FB:45:2B:E8:9E:C3:8D:F4:77:75:FF:F6:6E:84:69:3E:06:35:37:45:F5:D3:65:A9:4B:68:22:98:AC\n Nome algoritmo firma: SHA256withRSA\n Versione: 3\n\nEstensioni:\n\n#1: ObjectId: 2.5.29.14 Criticality=false\nSubjectKeyIdentifier [\nKeyIdentifier [\n0000: 44 00 83 0D B8 …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个密钥库,该密钥库的扩展名为现有证书文件中的 jks。使用我拥有的 (CERT) 证书文件,如何使用 Java 密钥工具创建密钥库 (JKS)?
我正在尝试在 JVM 中安装客户端证书来调用 https soap 服务,但是在运行 keytool -import 命令时出现以下错误:
** keytool 错误:java.lang.Exception:证书未导入,别名已存在 **
这是我正在使用的命令,请注意我使用的是 Java11
** C:\Softwares\java-11-openjdk-11.0.7.10-1.windows.redhat.x86_64\lib\security>keytool -import -keystore cacerts -file "C:\Softwares\client.certificate.pfx" * *
请建议。
我已签署 .jks 文件。需要从 .jks 文件中获取私钥。怎样才能得到呢?
keytool -exportcert -alias selfrest -keystore filename.jks -file file.cer
Run Code Online (Sandbox Code Playgroud)
没有得到结果。请帮我。提前致谢。
我试图让keytool.exe运行但命令提示符一打开就消失得如此之快.
我还尝试手动输入命令提示符
C:\ Program Files\Java\jdk1.6.0_25\bin
它说"程序"不被识别为内部或外部命令,可操作程序或批处理文件.我无法打开程序文件夹本身.
我去了环境变量并改变了路径
1)C:\ Program Files\Java\jdk1.6.0_25\bin 2)C:\ Program Files \和更多差异相关的路径等等但是命令提示符中的结果仍然给我错误.
当我输入'C:> java'时它显示了列表(我附上了cmd的屏幕截图,但不允许新用户)
我从这个链接按照这个方向
他们都没有能够解决我的问题.我错过了什么吗?我希望尽快解决这个问题.
!!!更新!!!
我发现我必须在路径之前键入cd
"cd C:\ Program Files\Java\jdk1.6.0_25\bin"
我假设如果我输入C:并按回车键,它会将目录更改为C:然后我可以从那里输入路径,但即使在"程序文件"本身也总是出错.
感谢大家!
这是我的命令提示符中的示例
C:> Program Files\Java\jdk1.6.0_25\bin
"程序"不被识别为内部或外部命令,可操作程序或批处理文件.
在路径前添加'cd'并且......
C:> cd C:\ Program Files\Java\jdk1.6.0_25\bin
C:\ Program Files\Java\jdk1.6.0_25\bin>
我想在运行时执行期间调用java keytool,以提供动态参数。这是在Windows下工作的东西,但在Linux(Ubuntu)相同的Java 1.6.0下却不能工作:
File f = new File("mykey.jks");
StringBuilder command = new StringBuilder();
command.append(System.getProperty("java.home")
+ System.getProperty("file.separator") + "bin"
+ System.getProperty("file.separator") + "keytool");
command.append(" -genkey");
command.append(" -dname \"cn=foo,ou=bar,o=company,c=CH\"");
command.append(" -alias myProduct");
command.append(" -keypass " + "testtest");
command.append(" -keystore " + f.getAbsolutePath());
command.append(" -storepass " + "testtest");
command.append(" -validity " + 3650);
final Process pr = Runtime.getRuntime().exec(command.toString());
BufferedReader input = new BufferedReader(new InputStreamReader(
pr.getInputStream()));
String line = null;
while ((line = input.readLine()) != null) {
System.out.println(line);
}
int exitVal = -1;
try …Run Code Online (Sandbox Code Playgroud) 嗨,我想问一下我使用keytool导入证书时的错误,这个错误:
C:\Program Files (x86)\Java\jre6\lib\security\imig.cer -keystore C:\Program File
s (x86)\Java\jre6\lib\security\cacerts -storepass changeit
keytool error: java.lang.RuntimeException: Usage error, Files is not a legal command
请帮助我在keytool中的错误代码..谢谢之前
我使用phonegap Build来创建我的.apk文件,我正在尝试签名.
我知道我可以使用以下命令执行此操作:
$ keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -validity 10000
Run Code Online (Sandbox Code Playgroud)
但是当我在终端运行时,我得到'命令未找到'?
我在mac上运行这个,所以我已经阅读了我已经安装了所需的JDK(我有xcode)我想可能是PATH没有正确设置为keytool,但我找不到任何简单的有关重置此信息的信息.
任何帮助将非常感激.我必须错过一些非常简单的东西,因为签署应用程序不是很难吗?!?!
我在Chrome浏览器(v 59.0.3071.109)上遇到此错误,我尝试了几个答案,但没有任何运气。
这是在“安全性”选项卡中显示的内容:
The certificate for this site does not contain a Subject Alternative Name extension containing a domain name or IP address
There are issues with the site's certificate chain (net::ERR_CERT_COMMON_NAME_INVALID).
Run Code Online (Sandbox Code Playgroud)
我按照本教程创建了具有以下值的证书:
CN = localhost
OU = ort
O = ort
L = montevideo
S = MVD
C = UY
Run Code Online (Sandbox Code Playgroud)
这是我的主人 https://localhost:8181/Gateway-war/
到目前为止,我已经尝试过:
chrome://flags/#allow-insecure-localhost--ignore-certificate-errors到Chrome快捷方式后,会显示一条消息,指出不允许此命令,因为它会影响安全性和稳定性reg add HKLM\Software\Policies\Google\Chrome /v EnableCommonNameFallbackForLocalAnchors /t REG_DWORD /d 1在所有情况下,我都会先重新启动Chrome,然后再尝试使用。
也许我CN应该不是本地主机?欢迎任何想法
keytool ×10
java ×6
android ×2
certificate ×1
code-signing ×1
command-line ×1
eclipse ×1
glassfish ×1
import ×1
jarsigner ×1
java-11 ×1
keystore ×1
macos ×1
path ×1
runtime.exec ×1
self-signed ×1
xamarin ×1