标签: keystore

Java的keytool不提示输入密钥密码

Javakeytool有一个名为 的参数-keypass,除了用于整个密钥存储的密码之外,它还允许您设置一个(单独的)密码来保护您的私钥。

根据文档:

的值-keypass是用于保护生成的密钥对的私钥的密码。如果未提供密码,则会提示用户输入密码。如果在提示时按 Return 键,则密钥密码将设置为与密钥库密码相同的密码。该-keypass值必须至少包含六个字符。

但是,当我在调用此命令时省略密码时,我似乎根本没有收到提示,至少在与-genkeypair生成 RSA 密钥对结合使用时没有提示。相反,我只获得一般帮助页面。如果我使用""强制输入“空”密码,那么它(正确地)告诉我密码应至少为 6 个字符。

有没有办法强制提示keytool输入特定于密钥的密码,而不必根据 的文档在命令行上提供它-genkeypair


我已经针对 Java 11 LTS 对此进行了测试:

keytool -genkeypair -alias test1 -keyalg RSA -keysize 4096 -sigalg SHA256withRSA -keystore test.pfx -storepass test1234
        -keypass
Run Code Online (Sandbox Code Playgroud)

或者

keytool -genkeypair -alias test1 -keyalg RSA -keysize 4096 -sigalg SHA256withRSA -keystore test.pfx -storepass test1234
        -keypass ""
Run Code Online (Sandbox Code Playgroud)

两者似乎都不起作用;如您所见,我已经将-keypass参数移到了末尾,因此它无法将参数作为密码吞噬。

java passwords prompt keystore keytool

4
推荐指数
1
解决办法
4062
查看次数

是否可以将cacerts的所有内容导入jssecacerts文件?

使用keytool或其他方法,有一种简单的方法可以将cacerts的所有内容导入jssecacerts文件吗?

基本上,我想定义自己的jssecacerts,但我希望jssecacerts也包含cacerts文件的所有可信条目.原因是我相信当jssecacerts文件存在时,cacerts文件内容将被忽略.

java keystore

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

从使用keytool创建的文件在osx lion上加载密钥库

我有一个密钥库,其密钥对由以下命令生成:

keytool -genkeypair -v -alias test-agent -keypass test-agent -storepass 123456.ABC -keystore test-agent.keystore -storetype JKS
Run Code Online (Sandbox Code Playgroud)

我填写所请求的证书信息,并正确生成密钥对的商店.

以下命令:

keytool -list -keystore test-agent.keystore -storepass 123456.ABC -storetype JKS
Run Code Online (Sandbox Code Playgroud)

返回:

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

test-agent, Jul 13, 2012, PrivateKeyEntry, 
Certificate fingerprint (MD5): 7B:8F:D7:25:FF:34:D0:EF:44:87:46:E5:BF:18:C6:BF
Run Code Online (Sandbox Code Playgroud)

现在我将密钥库文件添加到我的构建路径并尝试使用在OSX Lion上运行的以下Java代码加载它:

public void loadKeyStore() {
  try {
    final Provider p = Security.getProvider("SUN"); 
    final KeyStore keystore = KeyStore.getInstance("JKS",p);

    final InputStream keyStoreInStream = this.getClass().getClassLoader().getResourceAsStream("test-agent.keystore");
    if ( keyStoreInStream == null ) throw new RuntimeException("No keystore found!");

    final …
Run Code Online (Sandbox Code Playgroud)

java security keystore jks osx-lion

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

Android签名冲突

我正在开发2个android应用程序,它们是我服务器的客户端.我无法在我的Android手机上安装这两个应用程序.我将第一个应用程序安装到手机上,一切正常.然后,当我尝试在手机上安装第二个应用程序时,我收到应用程序将替换另一个应用程序(第一个)的消息,然后我收到以下错误:

未安装应用程序:已安装具有相同冲突签名的现有包名称.

我提到我为每个应用程序创建了一个单独的密钥库文件,在android官方签名应用程序指南中导出它们,然后对它们进行zipaligned.

那么OS认为它是一个单一的应用程序?但实际上有2个不同的应用程序.我究竟做错了什么?

android conflict signing keystore

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

重命名android应用程序签名密钥文件

我想重命名应用程序签名密钥.但我怀疑是否会对密钥文件签名造成任何影响.在我的情况下,应用程序已经上传到play store.Thanks提前.

android keystore

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

java.security.cert.CertificateParsingException:无效的DER编码证书数据

当我尝试将证书导入java密钥库时,我收到以下异常.

"java.security.cert.CertificateParsingException:无效的DER编码证书数据"

FileInputStream fis = new FileInputStream(filename);
BufferedInputStream bis = new BufferedInputStream(fis);

java.security.cert.CertificateFactory cf = java.security.cert.CertificateFactory
            .getInstance("X.509");
while (bis.available() > 0) {
    Certificate cert = cf.generateCertificate(bis);

    if (cert instanceof X509Certificate) {
            certFx.addCertificate("vel", (X509Certificate) cert, true);
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激 !.

java security keystore ssl-certificate x509certificate

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

您是否需要明确关闭Java KeyStore输入流?

当使用FileInputStream在KeyStore中读取如下时,是否需要显式关闭input-steam以停止浪费系统资源?

FileInputStream fin = new FileInputStream("keystore.jks");
KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load(fin, password);

//  Is this line needed ??
fin.close();
Run Code Online (Sandbox Code Playgroud)

此FileInputStream是由load()方法自动关闭还是需要显式手动干预?

java keystore jks

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

创建证书密钥库文件AES 128

我正在尝试使用命令行创建证书密钥库文件,但它给了我一个例外:

c:\Program Files\Java\jre7\bin>keytool.exe -genkey -alias srccodes -keyalg AES -
keystore C:\srccodes.jks -keysize 128
Enter keystore password:
Re-enter new password:
keytool error: java.lang.Exception: Cannot derive signature algorithm
Run Code Online (Sandbox Code Playgroud)

certificate aes keystore keytool

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

PKCS12的Java密钥库处理

我当前正在从事的项目涉及密钥库和证书的管理。因此,我使用Java安全性API。使用证书的工作可以很好地退出,但是PKCS12-KeyStores的处理有些混乱:

我从Windows certmgr中导出了PKCS12-KeyStore,其中涉及一些公共证书(出于测试原因,CA证书)。安全API会打开相应的文件而不会出错,并且报告没有条目(为防止个人编程错误,我将通过使用使用相同安全API的Java keytool来显示该错误)。

#$ keytool -list -keystore keystore.pfx -storetype pkcs12 

Enter Keystore-Password:

Keystore-Type: PKCS12
Keystore-Provider: SunJSSE

Keystore contains 0 Entries
Run Code Online (Sandbox Code Playgroud)

但是,KeyStore Explorer(不同的程序)会显示所有条目。

如果将私钥添加到KeyStore,则它们会被KeyTool识别。

我是否有普遍的误解,或者是什么情况?

预先感谢,托马斯

java security keystore pfx

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

如何在Windows中打开.ks文件?

我有一个需要打开的key.ks文件.有人可以建议如何在Windows中打开此文件.我可以使用Keytool命令吗?

java keystore java-security

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