标签: keytool

带有opensc pkcs#11提供程序的java keytool仅适用于启用调试选项

我在ubuntu 11.10上使用OpenJDK(java版"1.6.0_22")运行最新的opensc 0.12.2

我可以阅读我的智能卡(飞天ePass PKI)

pkcs15-tool --dump
Run Code Online (Sandbox Code Playgroud)

现在我尝试使用带有keytool的智能卡:

keytool 
   -providerClass sun.security.pkcs11.SunPKCS11 \
   -providerArg /etc/opensc/opensc-java.cfg \
   -keystore NONE -storetype PKCS11 -list 
Run Code Online (Sandbox Code Playgroud)

这会导致错误:

keytool error: java.security.KeyStoreException: PKCS11 not found
java.security.KeyStoreException: PKCS11 not found
    at java.security.KeyStore.getInstance(KeyStore.java:603)
    at sun.security.tools.KeyTool.doCommands(KeyTool.java:621)
    at sun.security.tools.KeyTool.run(KeyTool.java:194)
    at sun.security.tools.KeyTool.main(KeyTool.java:188)
Caused by: java.security.NoSuchAlgorithmException: PKCS11 KeyStore not available
    at sun.security.jca.GetInstance.getInstance(GetInstance.java:159)
    at java.security.Security.getImpl(Security.java:696)
    at java.security.KeyStore.getInstance(KeyStore.java:600)
    ... 3 more
Run Code Online (Sandbox Code Playgroud)

当我运行相同的命令时启用调试选项,如下所示:

keytool 
   -providerClass sun.security.pkcs11.SunPKCS11 \
   -providerArg /etc/opensc/opensc-java.cfg \
   -keystore NONE -storetype PKCS11 -list \
   -J-Djava.security.debug=sunpkcs11
Run Code Online (Sandbox Code Playgroud)

它突然起作用:

... debug infos ...
Enter keystore password:  
sunpkcs11: login …
Run Code Online (Sandbox Code Playgroud)

java keytool smartcard pkcs#11

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

keytool无法导入certifiate - 无法建立回复链

如果有人能够对以下问题有所了解,我将非常感激.我已经阅读了keytool文档但是找不到任何关于这里可能出现问题的提示.

我创建了一个密钥库

keytool -genkey -alias privateKeyName -keyalg RSA -keystore privateKeyName.jks -validity 720 -keysize 1024

我创建了一个证书请求

keytool -certreq -alias privateKeyName -keystore privateKeyName.jks -file certReqFileName.csr

在签名机构给我.cer文件后,我试着用它导入它

keytool -import -alias privateKeyName -file certReqFileName_t_f.cer -keystore privateKeyName.jks

导入失败

keytool错误:java.lang.Exception:无法从回复建立链

我已经坚持了一段时间,所以任何帮助都会很棒.谢谢.

digital-certificate keytool ssl-certificate

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

keytool -genkey vs -genkeypair之间的区别

嗨,我正在使用keytool来创建csr.我想知道选项-genkey和-genkeypair之间有什么区别.据我所知-genkey只创建私钥,-genkeypair创建私钥和publice密钥.如果我的理解是正确的,如何获取使用-genkey创建的私钥的公钥.

csr keytool

11
推荐指数
1
解决办法
6663
查看次数

在批处理文件中回答keytool的密码

我需要使用keytool和jarsigner在很多文件夹中签署很多o文件.
每次我开始签署这些文件时,我都需要删除.cert和keystore文件来重新创建它.
我在开发环境和使用假passwd签署它,在应用程序工作后,infra人将照顾签名,我没有访问真正的证书.
当我打字时keytool -import .......,输入后,请求输入密码我只需输入它,但批量输入就成了问题.
我在这里的Windows 7上.
我试过keytool -import ....... < passHerekeytool -import ....... | passHere,太多,但它不工作.
我想转动标志最自动化.
有人告诉我这里以编程方式使用它,但我只需要在bat文件上使用它.
密码是固定批处理文件.
有一种方法可以将passwd内联到keytool吗?
可以在'运行时'中设置环境变量来提供keytool密码吗?怎么做?
有一种方法可以将浴缸内的密码给密钥工具吗?我看到了这个,但没有帮助,因为我不是一个asm开发人员,不知道它是否匹配问题,我想知道是否有更简单的东西.

谢谢

java security applet batch-file keytool

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

创建证书时IP地址作为主机名(CN)?(HTTPS主机名错误:应为<ipAddress>)

可能重复:
如何解析SSL证书服务器名称/我可以使用keytool添加备用名称吗?

我创建了一个证书,并将CN设置为我的服务器的IP地址,格式为xxx.xxx.xxx.xxx.但是当我尝试在Java中运行我的代码时,我收到一条HTTPS hostname wrong: should be <xxx.xxx.xxx.xx>错误消息.

可能有什么不对?我确定我正在连接到正确的IP地址.但是,我没有在证书上指定服务器的端口.在为CN提供价值时是否需要端口?但我正在使用https的默认端口8443.此外,我尝试将CN从服务器的IP地址更改为"localhost".它之后工作.我在想是否CN部分不接受IP地址作为值?

您能否解释CN如何工作以及它所需的值是多少?

谢谢!

java ssl https keytool

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

我们应该将KeyStore和TrustStore指向同一个.jks文件吗?

我正在使用SSL握手连接到URL.为此,我生成了一个.csr文件并将其签名.签名后,我创建了一个my.jks文件,其中包含3个条目

  1. 签署客户证书
  2. 私钥
  3. CA

我使用jetty作为服务器,我专门将密钥库和信任库设置为相同的jks文件

-Djavax.net.ssl.keyStore=/home/keystore/my.jks
-Djavax.net.ssl.keyStorePassword=changeit
-Djavax.net.ssl.trustStore=/home/keystore/my.jks
-Djavax.net.ssl.trustStorePassword=changeit
Run Code Online (Sandbox Code Playgroud)

它工作正常.但这是正确的方法吗?我认为密钥库应该包含客户端证书和私钥,信任库应该包含CA. 但是当我尝试这样做时,我得到以下错误.

"javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径"

请就此提出建议.

java keytool

10
推荐指数
1
解决办法
5782
查看次数

为什么指纹在我新签名的apk中有所不同?

在将密钥库的类型从PKCS12更改为JKS后,我遇到了获取相同指纹的问题.

为了进行更改,我创建了一个新的JKS密钥库,删除了其中的密钥,并从.p12文件中导入了我需要的密钥.用keytool -keystore keystore.jks -list 它验证密钥时输出指纹:

(SHA1): 21: ... :39
Run Code Online (Sandbox Code Playgroud)

这是.p12文件的指纹,指纹谷歌说我以前的apks已经.当我用这个证书签署我的apk并尝试将其上传到Playstore时,它说证书有指纹:

SHA1: C7: ... :AF
Run Code Online (Sandbox Code Playgroud)

当我用KeyStore Explorer检查原始的.p12文件和新的.jks文件时,它们都SHA1: C7: ... :AF列为指纹.

EDIT1:

keytool -keystore disneyquiz.p12 -storetype PKCS12 -alias 1 -list
Enter keystore password:
1, Jun 4, 2014, PrivateKeyEntry,
Certificate fingerprint (SHA1): 21: ... :39


keytool -keystore quizstore.jks -list
Enter keystore password:

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

key0, Dec 3, 2014, PrivateKeyEntry,
Certificate fingerprint (SHA1): 21: ... :39
Run Code Online (Sandbox Code Playgroud)

新的Apk

keytool -printcert -file CERT.RSA …
Run Code Online (Sandbox Code Playgroud)

android jks keytool android-studio flash-cc

10
推荐指数
1
解决办法
1516
查看次数

如何用谷歌上传密钥文件签署APK?

将der文件导入密钥存储区后,如下所示

keytool -keystore my-release-key.keystore  -importcert 
    -file ~/Downloads/upload_cert.der  -alias uploadcert  
Run Code Online (Sandbox Code Playgroud)

尝试组合发布APK时出错

trusted certificate entries are not password-protected
Run Code Online (Sandbox Code Playgroud)

如果我加

-protected
Run Code Online (Sandbox Code Playgroud)

对于进口,我说

keytool error: java.lang.IllegalArgumentException: password can't be null
Run Code Online (Sandbox Code Playgroud)

如果我在保护后传递密码,我会收到使用帮助消息.不知道如何传递密码.

如果我正在使用谷歌上传证书文件签署正确的道路,我是否有任何想法?

keytool apk google-signin

10
推荐指数
1
解决办法
1865
查看次数

为 google sms 检索器 api 生成哈希字符串 - 'xxd' 不被识别为内部或外部命令

在谷歌关于短信和通话记录权限的新政策之后,我正在尝试为我的 android 应用程序实现短信检索器 API。本教程看起来很简单,但我在创建/生成相同的哈希时发现了一个问题。

当我打字

keytool -alias MyAndroidKey -exportcert -keystore MyProduction.keystore | xxd -p | tr -d "[:space:]"
Run Code Online (Sandbox Code Playgroud)

或者

keytool -exportcert -alias MyAndroidKey -keystore MyProductionKeys.keystore | xxd -p | tr -d "[:space:]" | echo -n com.example.myapp `cat` | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11
Run Code Online (Sandbox Code Playgroud)

它说:

'xxd' is not recognized as an internal or external command,
operable program or batch file.

'tr' is not recognized as an internal or external command,
operable program …
Run Code Online (Sandbox Code Playgroud)

api hash android keytool one-time-password

10
推荐指数
2
解决办法
3696
查看次数

使用 keytool 将 p7b 文件导入到 Java 密钥库

我正在尝试将第三方的 p7b 文件导入到 java 信任存储中。看起来 p7b 包含根证书和公钥。

我正在尝试使用类似于的命令导入它

keytool -importcert -file certs.p7b -keystore dave.jks -storetype JCEKS -trustcacerts
Run Code Online (Sandbox Code Playgroud)

当第三方将文件提供给我时,他们没有告诉我公钥的别名是什么。

我是否认为在不知道这些信息的情况下无法导入它?

java keytool

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