标签: keytool

带有 IP 地址的 Java 的 keytool 命令

我正在尝试通过 https URL 获取图像,但遇到了一些问题。我使用 Java 的 keytool 命令生成了一个密钥库。如果我指定的通用名称 (CN) 等于我的主机名,例如 CN=JONMORRA,然后尝试通过我的主机名进行查询,例如https://JONMORRA:8443/那么它就可以正常工作。但是,如果我指定通用名称作为我的 ip 地址,例如 CN=192.168.56.1,并尝试通过我的 ip 地址进行查询,例如https://192.168.56.1:8443/然后我得到一个错误

HTTPS 主机名错误:应该是 <192.168.56.1>

这表明我的主机名是错误的,即使这是我在密钥库中指定的。

我想使用 ip 地址而不是主机名,这样我就可以在 Linux 和 Windows 机器之间进行查询,而不必担心主机名。

为什么 CN 不接受 IP 地址,我该如何解决?

谢谢

java ssl keystore keytool

3
推荐指数
2
解决办法
1万
查看次数

如何使用openssl创建pkcs12信任库

我可以使用keytool命令将Java信任库(仅包含证书,没有私钥的JKS文件)导出到p12文件:

keytool -importkeystore -srckeystore truststore.jks -destkeystore truststore.p12 -deststoretype PKCS12
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法弄清楚如何使用“ openssl pkcs12”命令创建相同的文件。它允许您传递证书,但是我尝试过的每个选项都要求用户传递私钥。

openssl keystore keytool pkcs#12

3
推荐指数
1
解决办法
9045
查看次数

Java Keytool 不接受“是”字样而一遍遍地启动

我正在尝试使用以下命令为 Android 应用生成证书:

keytool -genkey -v -keystore my_key.keystore
-alias my_alias -keyalg RSA -keysize 2048 -validity 10000
Run Code Online (Sandbox Code Playgroud)

当我完成最后一个问题时,

“它是正确的[否]:”

消息出现。如果我写 YES,keytool 会忽略我的回答并重新从头开始。

我在 Windows 7 和 jdk1.7.0_79 上。

看到这张图片

有什么想法吗?

java certificate keytool

3
推荐指数
1
解决办法
986
查看次数

导入证书或链时java keytool命令的区别

只是想将这个问题作为“澄清”而不是决议提出:

java keytool 有-importcert-trustcacertsarg的命令。来自官方帮助指南。

从 CA 导入证书回复

导入对您提交证书签名请求的 CA 的公钥进行身份验证的证书后(或 cacerts 文件中已经有这样的证书),您可以导入证书回复并将您的自签名证书替换为证书链。此链是 CA 为响应您的请求而返回的链(当 CA 回复是链时),或者是使用证书回复和已在导入回复的密钥库或 cacerts 密钥库文件中的密钥库。

例如,如果您向 VeriSign 发送了证书签名请求,那么您可以使用以下内容导入回复,假设返回的证书名为 VSMarkJ.cer:

keytool -importcert -trustcacerts -file VSMarkJ.cer

我还从keytool文档中阅读了以下内容:

如果回复是单个 X.509 证书,keytool 会尝试建立信任链,从证书回复开始到自签名证书(属于根 CA)结束。证书回复和用于验证证书回复的证书层次构成了新的别名证书链。如果无法建立信任链,则不会导入证书回复。在这种情况下,keytool 不会打印出证书并提示用户验证它,因为用户很难(如果不是不可能的话)确定证书回复的真实性。

如果回复是 PKCS#7 格式的证书链,则在 keytool 尝试将回复中提供的根 CA 证书与任何密钥库或“cacerts”密钥库文件中的可信证书(如果指定了 -trustcacerts 选项)。如果找不到匹配项,则打印出根 CA 证书的信息,并提示用户对其进行验证,例如,通过将显示的证书指纹与从其他(受信任的)信息源获得的指纹进行比较,从而可能是根 CA 本身。然后用户可以选择中止导入操作。但是,如果提供了 -noprompt 选项,则不会与用户进行交互。

如果我收到带有根 CA 和我签署的证书的证书回复,哪个是我正确导入证书的正确命令(或者以下所有内容都将根据根 CA 的可用性工作):

# Assuming doesn't exist at all
keytool -import -keystore server_keystore.jks -storepass pass -alias rootCA -file ca-cert-file
keytool -import -keystore server_keystore.jks …
Run Code Online (Sandbox Code Playgroud)

java certificate ca keystore keytool

3
推荐指数
1
解决办法
3467
查看次数

toDerInputStream 拒绝标签类型 0 - 无法从密钥库读取密钥

在我的 Android 应用程序中,我有一个名为 的密钥库文件keystore.p12,它位于/data/data/com.company.myapp/files. 我拉了这个特定的文件,现在我想检索存储在其中的密钥。

我用这样的keytool试了一下:

>keytool.exe -list -keystore C:\Users\user\Desktop\keystore.p12 -storepass letmein -storetype PKCS12 -v
Run Code Online (Sandbox Code Playgroud)

不幸的是,我收到以下错误:

keytool error: java.io.IOException: toDerInputStream rejects tag type 0
java.io.IOException: toDerInputStream rejects tag type 0
        at sun.security.util.DerValue.toDerInputStream(DerValue.java:874)
        at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1915)
        at java.security.KeyStore.load(KeyStore.java:1445)
        at sun.security.tools.keytool.Main.doCommands(Main.java:795)
        at sun.security.tools.keytool.Main.run(Main.java:343)
        at sun.security.tools.keytool.Main.main(Main.java:336)
Run Code Online (Sandbox Code Playgroud)

我用 Java 尝试了同样的事情,但我遇到了同样的异常:

public static void main(String[] args) {
        try {
            FileInputStream is = new FileInputStream("C:\\Users\\user\\Desktop\\keystore.p12");
            KeyStore keystore = KeyStore.getInstance("pkcs12");
            keystore.load(is, "letmein".toCharArray());
            is.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

java android keytool java-security

3
推荐指数
1
解决办法
9728
查看次数

keytool 错误:java.lang.Exception:证书回复和密钥库中的证书相同

我想用证书签署我的 jar 文件。我遵循了以下步骤。C:\Program Files\Java\jdk-10.0.2\bin>keytool -genkey -alias testals -keystore testks

C:\Program Files\Java\jdk-10.0.2\bin>keytool -export -keystore testks -alias testals -file testcer.cer

证书存储在文件中

C:\Program Files\Java\jdk-10.0.2\bin>keytool -import -alias testals -file testcer.cer -keystore testks

但是在导入获取异常时,证书回复和密钥库中的证书是相同的。

请帮我怎么做?

java ssl keytool

3
推荐指数
1
解决办法
6028
查看次数

如何更改 .p12 密码?

我有一个 .p12 文件,我需要更改其密码。而这个新密码必须是“1234”

我已经尝试使用 Keytool 做到这一点:

keytool -importkeystore -srckeystore authentification.p12 -srcstoretype PKCS12 -srcstorepass "2600807934-Auth" -destkeystore new.p12 -deststoretype PKCS12 -storepass 1234
Run Code Online (Sandbox Code Playgroud)

但是我收到一条错误消息,告诉我新密码必须至少包含 6 个字符。

你没有其他方法可以做到这一点吗?(我得到了其他 .p12 文件,密码为“1234”,所以有可能)

ssl openssl keytool tls1.2

3
推荐指数
1
解决办法
6059
查看次数

将 pkcs12 导入密钥库时如何自动填充源密钥库密码

我可以将 p12 密钥库导入到密钥库。通过 storepass,我可以预先填写目标密钥库的密码。

keytool -importkeystore -srckeystore kafka.server.keystore.p12 -srcstoretype pkcs12 -destkeystore kafka.server.keystore.jks -storepass $PWD
Run Code Online (Sandbox Code Playgroud)

但是,仍然要求我提供源密钥库密码:

Enter source keystore password:
Run Code Online (Sandbox Code Playgroud)

我该如何防止这种情况发生?

java bash keytool

3
推荐指数
1
解决办法
3493
查看次数


Keytool 不要求设置密钥密码 (keypass)

我尝试在 C:\Program Files\Java\jdk15.x.x_x\bin 中使用以下命令创建 keytool:

keytool -genkey -alias demospring -keyalg RSA -keystore demospring.jks -keysize 2048
Run Code Online (Sandbox Code Playgroud)

系统要求我创建密码,但不是别名密码。我错过了什么吗?我对这个概念还很陌生。感谢您提前提供任何帮助!

java keystore spring-security jks keytool

3
推荐指数
1
解决办法
1060
查看次数