标签: keystore

带有 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万
查看次数

使用AES SecretKey的Java KeyStore setEntry()

我目前正在使用Java中的密钥处理类,特别是使用KeyStore.我正在尝试使用AES实例生成SecretKey,然后使用setEntry()方法将其放在KeyStore中.

我已经包含了我的代码的相关部分:

// The KS Object
private KeyStore keyStore;

private KeyStore.SecretKeyEntry secretKeyEntry;
private KeyStore.ProtectionParameter protectionParameter;

private KeyGenerator keyGenerator;
private SecretKey secretKey, newSecretKey;


keyStore = KeyStore.getInstance(KeyStore.getDefaultType());

keyGenerator = KeyGenerator.getInstance("AES");
keyGenerator.init(256);

newSecretKey = keyGenerator.generateKey();

protectionParameter = new KeyStore.PasswordProtection(KEYSTORE_PASSWORD.toCharArray());
secretKeyEntry = new KeyStore.SecretKeyEntry(newSecretKey);

keyStore.setEntry(KEYSTORE_ALIAS, secretKeyEntry, protectionParameter);
Run Code Online (Sandbox Code Playgroud)

我使用的两个常量也定义为字符串.

我一直得到的异常是在我的setEntry()调用中:

java.security.KeyStoreException: Cannot store non-PrivateKeys
at sun.security.provider.JavaKeyStore.engineSetKeyEntry(Unknown Source)
at sun.security.provider.JavaKeyStore$JKS.engineSetKeyEntry(Unknown Source)
at java.security.KeyStoreSpi.engineSetEntry(Unknown Source)
at java.security.KeyStore.setEntry(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

我主要使用此文档http://docs.oracle.com/javase/7/docs/api/java/security/KeyStore.html作为参考,以及其他一些来源.

在此先感谢您的帮助.

java encryption aes keystore

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

我可以将多个Android密钥库文件合并为一个吗?

我已经陷入了一个有点烦人的Android密钥库文件的情况.目前我有几个不同的应用程序,每个应用程序使用不同的密钥库文件签名 有点像:

  • AppName1.apk使用AppName1.keystore签名
  • AppName2.apk使用AppName2.keystore签名
  • AppName3.apk使用AppName2.keystore签名

每个密钥库为每个应用程序包含不同的名称和别名.

我现在正在学习这样做有点傻,而且对我的所有应用程序使用单个密钥库文件会更好.我即将发布一个新的应用程序,所以这次我试图让它正确.

我的一般问题是,我怎样才能让将来的生活更轻松?

我已经读过,我可以重命名其中一个密钥库并更改别名,所以理论上,我可以使用现有的密钥库之一签署我的下一个应用程序?这意味着我的应用程序中至少有两个使用相同的密钥库,它将具有合理的名称.


编辑:作为参考,这是我今天阅读的教程之一:

http://blog.blundell-apps.com/tut-change-alias-passwords-of-your-android-keystore/

而且这个其他堆栈溢出答案: 我可以更改密钥的别名吗?

根据教程我的理解是,我可以安全地重命名密钥库文件,更改密码并重命名别名,而不会失去更新现有应用程序的能力.任何人都可以确认这是真的,还是有某种方式我可以证明它?


最后,我有一个第三个密钥库我想合并到另一个密码库中,如果可能的话?理想情况下,我想最终只为所有3个应用程序提供一个密钥库.我知道这可能会推动它,但无论如何我都会问.

显然,我不想失去更新现有应用程序的能力.

android keystore keytool android-keystore

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

Android KeyStore实现<4.3

我打算KeyStore在我的Android应用程序中使用KeyPair存储在其中的AES密钥来加密AES密钥KeyStore.KeyStore的Android文档:

https://developer.android.com/training/articles/keystore.html

在搜索互联网后,我找到了一个AOSP示例,我编辑了这个:

/*
 * Copyright (C) 2013 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" …
Run Code Online (Sandbox Code Playgroud)

android rsa aes keystore

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

如何在Jboss Wildfly 8.1中配置SSL

我在JBoss Wildfly 8.1中配置了SSL.我已生成密钥库文件并更新了standaolne.xml文件,如下所示

<security-realm name="security-realm">
  <server-identities> 
     <ssl> 
        <keystore path="security/keystore.jks" relative-to="jboss.server.config.dir" keystore-password="changeit" key-password=" changeit"/> 
     </ssl>
  </server-identities> 
</security-realm>
Run Code Online (Sandbox Code Playgroud)

密钥库密码和密钥密码以明文形式显示.我们无法以明文形式显示它.我想加密密码.我尝试了很多,但在这方面无法提供可靠的帮助.所以任何机构都可以帮助我如何加密这个密码以及如何在sandalone.xml文件中使用它.

ssl jboss keystore wildfly

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

javax.net.ssl.SSLHandshakeException:收到致命警报:unknown_ca

我必须通过SSL双重身份验证连接到服务器.我已将自己的私钥加证书添加到keystore.jks,并将服务器的自签名证书添加到truststore.jks,这两个文件都复制到/ usr/share/tomcat7.我的代码使用的套接字工厂由以下提供者提供:

@Singleton
public static class SecureSSLSocketFactoryProvider implements Provider<SSLSocketFactory> {
    private SSLSocketFactory sslSocketFactory;

    public SecureSSLSocketFactoryProvider() throws RuntimeException {
        try {
            final KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
            final InputStream trustStoreFile = new FileInputStream("/usr/share/tomcat7/truststore.jks");
            trustStore.load(trustStoreFile, "changeit".toCharArray());
            final TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
            trustManagerFactory.init(trustStore);

            final KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
            final InputStream keyStoreFile = new FileInputStream("/usr/share/tomcat7/keystore.jks");
            keyStore.load(keyStoreFile, "changeit".toCharArray());
            final KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
            keyManagerFactory.init(keyStore, "changeit".toCharArray());

            final SSLContext sslContext = SSLContext.getInstance("TLS");
            sslContext.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), null);

            this.sslSocketFactory = sslContext.getSocketFactory();

        } catch (final KeyStoreException e) { …
Run Code Online (Sandbox Code Playgroud)

java ssl keystore self-signed truststore

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

如何从命令行显示Java密钥库SecretKeyEntry

我有一个使用storetype JCEKS的Java密钥库文件.它包含SecretKeyEntry条目.我希望能够从命令行转储存储在此文件中的实际密钥.我试过这个:

keytool -list -keystore secretkeys.jks -storetype JCEKS
Run Code Online (Sandbox Code Playgroud)

哪个回来了

Keystore type: JCEKS
Keystore provider: SunJCE

Your keystore contains 1 entry

secret1, May 27, 2016, SecretKeyEntry
Run Code Online (Sandbox Code Playgroud)

但这并没有向我展示关键.如何从命令行中提取和查看密钥?

java command-line keystore

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

密钥库apk统一错误

当我尝试在团结中构建我的apk时,我得到错误的消息:

1.

Win32Exception: ApplicationName='/Users/kristianstenberg/Library/Android/sdk/build-tools/26.0.0/apksigner', CommandLine='sign --ks "/Users/kristianstenberg/Desktop/Platformer/VegardHansenStenberg.keystore" --ks-pass pass:"Balder123" --ks-key-alias "besquare" --key-pass pass:"Balder123" "/Users/kristianstenberg/Desktop/Platformer/Temp/StagingArea/Package.apk"', CurrentDirectory='Temp/StagingArea'
System.Diagnostics.Process.Start_noshell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process)
System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process)
System.Diagnostics.Process.Start ()
(wrapper remoting-invoke-with-check) System.Diagnostics.Process:Start ()
UnityEditor.Utils.Program.Start (System.EventHandler exitCallback) (at /Users/builduser/buildslave/unity/build/Editor/Mono/Utils/Program.cs:44)
UnityEditor.Utils.Program.Start () (at /Users/builduser/buildslave/unity/build/Editor/Mono/Utils/Program.cs:28)
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.PostProcessor.Tasks.TasksCommon.Exec (System.String command, System.String args, System.String workingdir, System.String errorMsg, Int32 retriesOnFailure)
UnityEditor.Android.PostProcessor.Tasks.BuildAPK.SignPackage (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessor.Tasks.BuildAPK.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, …
Run Code Online (Sandbox Code Playgroud)

android keystore unity-game-engine apk

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

从crt文件创建p12和keyStore

我想从现有的crt文件中使用Java API创建密钥存储区“ PCKS12”。可能吗?如果是,该怎么做?

编辑

1 / openssl req -newkey rsa:2048 -nodes -keyout keyFile.key -x509 -days 3650 -out certFile.crt
2 / openssl pkcs12 -export -in certFile.crt -inkey keyFile.key -out tmp.p12 -name别名
3 / keytool -importkeystore -srckeystore tmp.p12 -srcstoretype PKCS12 -srcstorepass密码-destkeystore keyStoreFile.jks -deststoretype JKS -deststorepass密码-destkeypass密码-alias别名

如何以编程方式进行步骤2和3?

java keystore

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

如何从cacerts删除所有证书?

我知道我可以用

keytool -delete -alias alias -keystore .keystore
Run Code Online (Sandbox Code Playgroud)

从证书存储中删除一些证书。但是我有109个证书存储在cacerts中:keytool -list结果

如何用一个命令删除它们?或者换句话说,如何清除证书存储?

keystore keytool ssl-certificate android-keystore

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