我正在尝试将受信任的证书导入Java cacerts密钥库,但我遇到了问题.我试图列出现有的可信证书,似乎密钥库没有密码保护.
$ keytool -list -keystore cacerts
Enter keystore password:
***************** WARNING WARNING WARNING *****************
* The integrity of the information stored in your keystore *
* has NOT been verified! In order to verify its integrity, *
* you must provide your keystore password. *
***************** WARNING WARNING WARNING *****************
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 76 entries
Run Code Online (Sandbox Code Playgroud)
我试图导入一个可信证书:
$ keytool -importcert -alias "JiraCert" -file /root/c9ssl.crt -keystore /etc/java-6-sun/security/cacerts
Enter keystore password:
Keystore password is …Run Code Online (Sandbox Code Playgroud) 我需要将证书导入我的JVM密钥库.我使用以下内容:
keytool -import -alias daldap -file somecert.cer
Run Code Online (Sandbox Code Playgroud)
所以我需要将我的调用改为:
keytool -import -alias daldap -file somecert.cer -keystore cacerts –storepass changeit
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过HTTPS连接Java Web API; 但是,抛出异常:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException
Run Code Online (Sandbox Code Playgroud)
我遵循了从在线keytool和SSL证书教程中学到的这些步骤:
我将HTTPS URL复制到浏览器中,使用Internet Explorer下载SSL证书并将其安装在浏览器中.
将证书导出到计算机上的路径,证书保存为 .cer
使用了keytool的导入选项.执行下面的命令没有任何错误.
keytool -import -alias downloadedCertAlias -keystore C:\path\to\my\keystore\cacerts.file -file C:\path\of\exportedCert.cer
Run Code Online (Sandbox Code Playgroud)我在命令提示符下提示输入密码,然后我输入了密码.
该cmd窗口打印一些证书数据与签名,我是这样一个问题提示:
相信这个证书?
我回答是的.
显示cmd提示符
证书已添加到密钥库
但是在该消息之后,显示了另一个异常:
keytool error: java.io.FileNotFoundException: C:\Program files\...\cacerts <Access Denied>
Run Code Online (Sandbox Code Playgroud)最后,当我检查密钥库时,没有添加SSL证书,我的应用程序提供了我在尝试连接时得到的相同异常:
(javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException)
Run Code Online (Sandbox Code Playgroud) 我需要签署Android应用程序(.apk).
我有.pfx档案.我.cer通过Internet Explorer 将其转换为文件,然后转换.cer为.keystore使用keytool.然后我尝试.apk与jarsigner 签约,但它说.keystore不满足私钥.
我做错了什么?
我正在使用Java keytool.我.pem已从我的密钥库导出了自签名证书.是否有命令直接从.pem文件(而不是密钥库中的证书)查看证书详细信息?
我使用以下步骤创建一个新的Java密钥库,其中包含一对私有/公共密钥,供Java(内部)服务器使用TLS.请注意证书是自签名的:
1)使用AES256生成密钥
openssl genrsa -aes256 -out server.key 1024
Run Code Online (Sandbox Code Playgroud)
2)为CA生成证书请求
openssl req -x509 -sha256 -new -key server.key -out server.csr
Run Code Online (Sandbox Code Playgroud)
3)生成自签名到期时间10年
openssl x509 -sha256 -days 3652 -in server.csr -signkey server.key -out selfsigned.crt
Run Code Online (Sandbox Code Playgroud)
4)使用像KeyStoreExplorer这样的程序在新的JKS中导入对(私钥和自签名证书)
这有效,但我想在不使用GUI的情况下实现最后一步.
我知道如何仅导入自签名证书:
// create the keystore and import the public key. THIS WILL NOT IMPORT THE PRIVATE KEY SO THE KEYSTORE CAN'T BE USED ON THE SERVER TO MAKE THE TLS CONNECTION
/usr/java/jdk1.6.0_45/bin/keytool -import -alias myservercert -file server.crt -keystore mykeystore.jks
Run Code Online (Sandbox Code Playgroud)
所以问题是:我如何创建Java KeyStore并使用公钥和私钥导入证书而不使用GUI?
我试图将证书和密钥文件导入密钥库,但我无法做到这一点.
如何通过导入现有证书(abc.crt)和abc.key文件来创建密钥库?
使用一些批处理文件,我想在Java Keystore中添加不受信任的自签名证书.
命令是
%JAVA_HOME%/bin/keytool -import -v -trustcacerts -alias server-alias
-file server.cer -keystore cacerts.jks -keypass changeit -storepass changeit
Run Code Online (Sandbox Code Playgroud)
运行上述命令后,屏幕将使用Y/N进行证书信任.
Trust this certificate? [no]:
Run Code Online (Sandbox Code Playgroud)
但我不想在这里提供Y/N.
有没有办法使用单个命令或一些额外的导入开关完成导入?请帮忙.
问候,
阿伦
我正在尝试了解如何在使用Google Play App Signing时将应用上传到Google Play.
这是我做的:
它抱怨证书不是证书
将新APK上传到制作
上传失败您上传了未使用上传证书签名的APK.您必须使用相同的证书.上传证书有指纹:[SHA1:0C:...],用于签署您上传的APK的证书有指纹:[SHA1:2D:...]
搜索了一会儿之后.我找到了如何将认证发布到我的密钥库中的Google Play控制台上.像这样的东西:
keytool.exe -importcert -file upload.pem -keystore myapp-release-key.keystore
证书似乎在.当我列出密钥库的内容时,这是我得到的:
keytool.exe -list -keystore trackcoachfull-release-key.keystore输入密钥库密码:
密钥库类型:JKS密钥库提供商:SUN
您的密钥库包含2个条目
myappfull,2017年5月18日,PrivateKeyEntry,证书指纹(SHA1):2D:... uploadkey,2017年5月19日,trustedCertEntry,证书指纹(SHA1):0C:...
现在,我被封锁的地方......
在Android Studio中,我尝试使用uploadkey生成已签名的APK.
构建>生成签名APK选择上面的密钥库输入密钥库密码选择uploadkey作为密钥别名我强制输入密钥密码.
Android Studio中出错:
错误:任务':app:packageFullRelease'的执行失败.
com.android.ide.common.signing.KeytoolException:无法从商店"C:\ Users\Admin\AndroidStudioProjects\keystores\myappfull-release-key.keystore"读取密钥uploadkey:受信任的证书条目未受密码保护
我的问题是:
如何生成使用Google Play提供的上传密钥签名的APK?
谢谢
错误消息:
jarsigner: Certificate chain not found for: project_foo.<br/>
project_foo must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
Run Code Online (Sandbox Code Playgroud)
问题:如何包含公钥证书链来解决错误?
背景:App Developer已经完成了一个Android应用程序,并提供了一个名为Foo.apk的未签名APK.我的目标是对APK进行签名和压缩,以准备将其上传到Google Play商店.我的密钥库位于Windows机器上的C:\ Path\.keystore中.
命令行,我的命令:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore C:\Path\\.keystore Foo.apk project_foo
Run Code Online (Sandbox Code Playgroud)
命令行,回复:
Enter Passphrase for keystore:
jarsigner: Certificate chain not found for: project_foo.<br/>
project_foo must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
Run Code Online (Sandbox Code Playgroud)
还试过:验证我记得正确的密码.使用命令行中的"keytool -list"向我显示预期的列表(它包含一个私钥). …
keytool ×10
java ×6
ssl ×4
android ×2
apk ×2
jarsigner ×2
keystore ×2
certificate ×1
google-play ×1
import ×1
jar-signing ×1
jvm ×1