标签: keytool

如何使用keytool打印证书的公钥?

有没有办法在keytool中打印证书的publick键?我试过了:

keytool -printcert -file client.crt
Run Code Online (Sandbox Code Playgroud)

但它只提供以下信息:

Owner: CN=client, OU=as, O=as, L=as, ST=as, C=as
Issuer: EMAILADDRESS=as, CN=ca, OU=as, O=as, L=as, ST=as, C=as
Serial number: 3
Valid from: Tue Apr 10 12:18:47 GMT+05:30 2012 until: Wed Apr 10 12:18:47 GMT+05
:30 2013
Certificate fingerprints:
         MD5:  26:C0:29:E9:8C:AB:C3:9E:95:38:74:8A:87:D3:86:8D
         SHA1: 5C:5A:BA:47:44:83:7E:CB:48:BE:DD:E5:39:51:24:42:C6:C5:60:8B
         SHA256: DA:26:B8:C8:F4:04:3E:62:F3:7F:3B:EC:1D:9F:85:66:28:00:45:55:66:
15:FF:BB:37:77:97:59:F0:EC:0B:B6
         Signature algorithm name: SHA1withRSA
         Version: 1
Run Code Online (Sandbox Code Playgroud)

这里没有公钥.

java certificate keytool

30
推荐指数
4
解决办法
6万
查看次数

如何将证书链添加到密钥库?

我有证书链的文件 - certificate.cer:

subject=/C...
issuer=/C=US/O=VeriSign, Inc...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

subject=/C=US/O=VeriSign, Inc...
issuer=/C=US/O=VeriSign, Inc...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

subject=/C=US/O=VeriSign, Inc...
issuer=/C=US/O=VeriSign, Inc...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

我需要将这个证书链添加到密钥库.
我所做的:

openssl x509 -outform der -in certificate.cer -out cert.der
keytool -v -importcert -alias mykey -file cert.der -keypass <passwd> -keystore keystore -storepass <passwd> -alias <myalias>
Run Code Online (Sandbox Code Playgroud)

结果我在密钥库中只有1个证书.
但应该有3.
什么可能是错的?

解决方案:
CA向我发送了PKCS#7格式的证书.
我将它们存储在certificate.p7b文件中,然后通过以下命令成功将它们添加到密钥库:

keytool -import -trustcacerts -file certificate.p7b -keystore keystore -storepass <mypasswd> -alias "myalias"
Run Code Online (Sandbox Code Playgroud)

java openssl certificate keystore keytool

30
推荐指数
2
解决办法
12万
查看次数

您是否需要密码才能访问信任库(使用java keytool制作)?

我刚刚创建了一个带有java keytool的信任库(用于没有CA证书的服务器的服务器身份验证).但是我只是注意到一些奇怪的事 我这样开始我的客户:

java -Djavax.net.ssl.trustStore=<PATHSTUFF>/client.keystore -classpath <STUFF> Client
Run Code Online (Sandbox Code Playgroud)

(注意:没有指定密码)

以上呼叫有效.


但是,当我尝试这个:

java -classpath <STUFF> Client
Run Code Online (Sandbox Code Playgroud)

这是行不通的.(显然它不起作用,它需要信任库).


我本以期需要传递这个选项(但我没有):

-Djavax.net.ssl.trustStorePassword=mypass
Run Code Online (Sandbox Code Playgroud)

问题:您是否需要密码才能访问信任库?密码只是用于修改吗?密钥库怎么样?

java keystore keytool truststore

29
推荐指数
2
解决办法
4万
查看次数

以编程方式将CA信任证书导入现有密钥库文件,而不使用keytool

我想创建一个JAVA程序,将.cer CA导入到现有的密钥库文件中.这样最终用户可以更方便地插入CA证书(不使用命令中的CMD和密钥).

这是JAVA代码可以做到的任何地方吗?

我尝试某种方式,但仍然无法将证书转换为java

CertificateFactory cf = CertificateFactory.getInstance("X.509");
InputStream certstream = fullStream (certfile);
Certificate certs = cf.generateCertificates(certstream);
Run Code Online (Sandbox Code Playgroud)

错误是不兼容的类型,还有其他建议吗?

谢谢很多

java keytool

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

如何使用Google App签名为Sms Retriever生成11个字符哈希密钥

我使用AppSignatureHelper该类生成了11个字符哈希.但是在将apk上传到Play商店后,他们的哈希不再起作用了.我发现Play用另一个替换了密钥,这也是哈希变化的原因.现在我无法获得11个字符的哈希密钥.

我不知道如何使用Google提供的命令.我从这里找到了这个命令

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

因为,我的应用程序启用了Play App签名,我将不得不使用此命令,

keytool -exportcert -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

keytool从JDK的bin文件夹中替换了它的路径,但后来它说不xxd被识别所以我从网站上下载它现在说它tr不被识别,我想它也会说cut …

command-line android keytool google-play

28
推荐指数
4
解决办法
4607
查看次数

Keytool的-storepass vs. -keypass - 为什么有两个密码?

我知道该-keypass选项是"密钥的密码",该-storepass选项是"密钥库的密码".

但是,我不明白为什么需要两个密码.

需要2个密码的场景是什么:一个用于商店(文件,在我的情况下)和一个用于密钥.

security android keytool

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

TOMCAT SSL错误:别名不识别键条目

我正在尝试使用SSL配置Tomcat 6并提供给我们的证书(由某人).我的SSL体验只有几天,但我仍然必须配置这个令人讨厌的东西.

我获得了DER格式的证书(从IE下载).

接下来我创建了一个密钥库:

keytool -import -alias btIEgen -file MyCompany.der -keystore b2b.keystore

说我用"密码"作为密码

我在SSL部分的Tomcat的server.xml中配置了它:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    keystoreFile="webapps/b2b.keystore" keystorePass="password" keyAlias="btIEgen" 
    clientAuth="false" sslProtocol="TLS" />
Run Code Online (Sandbox Code Playgroud)

在启动Tomcat时,我得到了错误.

然后我在b2b.keystore上做了一个keytool -list,并注意到别名是全部小写的,所以在更新server.xml并重新启动之后,我仍然得到相同的错误,但对于小写别名.

然后我想,也许我需要一个根CA. 所以我重新创建了b2b.keystore,如下所示:

keytool -import -alias root -file myCA.cer -keystore b2b.keystore

然后我针对MyCompany.der重新执行了我的keytool命令

但我仍然得到相同的错误,别名不识别键入口.

我想知道我是否在配置tomcat时遇到了一些根本性的错误,或者这个东西应该有效吗?我只是犯了一个愚蠢的粗心错误?

任何指导将不胜感激.

ssl tomcat keytool

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

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

生成密钥库:

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

生成证书签名请求(CSR):

keytool -certreq -alias tomcat -keyalg RSA -file my.csr -keystore my.keystore
Run Code Online (Sandbox Code Playgroud)

然后我去我的托管服务提供商并获得一些证书.这些我安装如下:

keytool -import -alias root -keystore my.keystore -trustcacerts -file gd_bundle-g2-g1.crt
keytool -import -alias intermed -keystore my.keystore -trustcacerts -file gdig2.crt
keytool -import -alias tomcat -keystore my.keystore -trustcacerts -file my.crt
Run Code Online (Sandbox Code Playgroud)

当我安装最终证书(my.crt)时,我收到以下错误:

keytool error: java.lang.Exception: Failed to establish chain from reply
Run Code Online (Sandbox Code Playgroud)

我相信我已经以正确的顺序导入了链条,所以我对此消息感到非常困惑.谁能看到我做错了什么?

tomcat keytool ssl-certificate

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

是什么导致keytool错误"无法解密安全内容条目"?

我试图使用此命令将标准PKCS#12(.p12)密钥库转换为Java JKS密钥库:

keytool -importkeystore -srckeystore keystore.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore keystore.jks

失败的是:

keytool error: java.io.IOException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded
Run Code Online (Sandbox Code Playgroud)

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

java openssl jks keytool pkcs#12

24
推荐指数
4
解决办法
5万
查看次数

使用空密钥库密码曾经可能吗?

在从Android开发中长时间休息后签署apk时,我很惊讶我无法输入空的密钥库密码来解锁它.它只是我还是以前有可能?如果是这样,那么什么时候改变了,我怎么能设法解锁密钥库呢?

一些背景:也许我只是疯了,以前没有使用空密码进入密钥库,但是我可以使用的唯一可能的密码也不起作用(我发誓,我没有机会' d使用了另一个密码!).

java android keytool

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