问题标签 [keystore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tomcat - 如何从自签名证书的密钥库中导出私钥
我刚刚在运行 tomcat 6 的 linux 机器上创建了一个自签名证书。
我创建了这样的密钥,有效期为 10 年:
并将密钥库复制到 tomcat 中的文件夹中,并更新 server.xml 以指向密钥库。
现在我的网络管理员正在询问公钥和私钥(对于我们的负载均衡器)
我可以使用以下方法生成公钥:
但是如何导出/检索私钥?
android - 密钥库和别名 - 是否有多个别名的用途?
使用 Eclipse 导出已签名的 Android 应用程序时,是否有使用多个别名的目的?
根据有关签名的官方指南,建议您使用相同的证书对所有应用程序进行签名,以允许您的应用程序共享数据、代码并以模块化方式更新。
假设“别名”、“密钥”和“证书”在这种情况下本质上是可以互换的,那么是否有人愿意为他们的所有应用程序使用不同的别名?我能想到的唯一原因是它为您的应用程序增加了更多的安全性,因为泄露的密钥/密码不会泄露所有内容。还有其他原因吗?
另外,生成的密钥是否取决于别名的名称?换句话说,如果您更改别名的名称而不更改密码,则生成的证书会有所不同吗?
java - Java 密钥库可以导入 OpenSSL 生成的密钥对吗?
我用 openssl 生成一个认证密钥。这是我的命令:
openssl genrsa -des3 -out enc_key.pem 1024
我导出到 cer 文件,然后使用 java keytool 导入到 java keystore (jks)。
密钥库听起来不错。我可以从我的 java 应用程序加载密钥库。
问题是当客户端连接到服务器(在这种情况下是 FTP 服务器,而不是 Web 服务器,我使用 apache mina)时,发生了异常:
javax.net.ssl.SSLHandshakeException:SSL 握手失败。在 org.apache.mina.filter.ssl.SslFilter.messageReceived(SslFilter.java:433) 在 org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434) 在 org.apache.mina.core .filterchain.DefaultIoFilterChain.access$5(DefaultIoFilterChain.java:429)
...
原因:javax.net.ssl.SSLHandshakeException:com.sun.net.ssl.internal.ssl.Handshaker.checkThrown(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLEngineImpl 没有共同的密码套件.checkTaskThrown(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeAppRecord(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLEngineImpl.wrap(Unknown Source) at javax.net .ssl.SSLEngine.wrap(未知来源)
...
引起:javax.net.ssl.SSLHandshakeException:com.sun.net.ssl.internal.ssl.SSLEngineImpl 的 com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source) 没有共同的密码套件.fatal(未知来源)
我有几件事想问:
- 我使用 openssl 生成的认证密码是什么?我们怎么知道?也许通过命令行openssl xxx?
- 我去http://java.sun.com/j2se/1.5.0/docs/guide/security/jsse/JSSERefGuide.html#AppA。我将 SSL_RSA_xxx 放入启用的密码套件,但仍然无法工作(我放入 SSL_RSA 是因为 SSL 使用的是 ssl implisit 和 genrsa,只是我认为 genrsa 是生成 RSA)。这是正确的吗?
- 有人知道解决方案吗?
- 或者,任何人都知道如何从 openssl 命令行生成标准密钥库,直到可以在 java 应用程序中使用(当然使用密码)。因为现在我可以从 openssl 生成证书并导出 keystore java,但我不知道我使用的密码是什么以及如何在 java 应用程序中使用。注意:如果密钥库是直接从 java 生成的,我可以运行。现在的问题是,java keytool 生成的密钥库是否来自 openssl 等认证(以及其他可能)。
任何帮助将不胜感激!谢谢
ssl - 使用 SSL/Keystore 连接到 Java 中的 Websphere MQ
我想通过 Java 连接到 Websphere 6.0 MQ。我已经为“正常”队列工作了代码,但现在我需要访问一个经过 SSL 加密的新队列(密钥库)。我收到了一个名为 something.jks 的文件,我认为它是我需要存储在某处的证书。我一直在网上搜索,但找不到正确的信息。
这是我用于“正常”队列的代码。我假设我需要设置一些属性,但不确定是哪一个。
java - KeyStore、HttpClient 和 HTTPS:有人可以向我解释这段代码吗?
我试图了解这段代码中发生了什么。
我的问题:
trustStore.load(instream, "nopassword".toCharArray());
到底在做什么?通过阅读文档load()
,将使用一些任意的“nopassword”从输入流(这只是我们刚刚创建的一个空文件)加载 KeyStore 数据。为什么不将其null
作为 InputStream 参数和一个空字符串作为密码字段加载呢?
然后当这个空的 KeyStore 被传递给 SSLSocketFactory 构造函数时会发生什么?这样的操作的结果是什么?
或者——这仅仅是一个示例,在实际应用程序中,您必须实际引用现有的密钥库文件/密码?
java - 密钥库更改密码
我目前有一个密钥库,有一个只有我应该知道的特定密码。我现在需要将对该密钥库的访问权限授予其他人,所以我想:
1)更改密码,以便我可以与其他人共享并让他们签名
2)创建一个不同的密码并允许他们使用它签名。
这可能吗?和 - 如果是的话 - 如何?
java - 为一个别名加载 Java KeyStore?
有谁知道是否可以加载 KeyStore 以便它只提示输入给定别名的密码?
例子:
在我的密钥库中,我有两个私钥:Alice 的加密证书和 Bob 的加密证书。
当我加载我的密钥库时:
系统提示我输入 Alice 和 Bob 的密钥库密码。输入它们后,我可以使用它getKey("Alice's Encryption Certificate", null);
来检索 Alice 的私钥。我的密钥由 Entrust 的安全提供商保护,它在加载密钥库时提示我输入密码。如果我不输入 Bob 的密码并尝试获取他的密钥,它将返回 null,这很好,但我想避免密码提示。
是否可以在加载密钥库之前以某种方式指定我只想要 Alice 的密钥,这样我就不会被提示输入 Bob 的密码?
谢谢。
java - 如何存储 Java KeyStore 密码?
在我的 Web 应用程序中,我访问了存储在 Java KeyStore 中的私钥。我想知道存储 KeyStore 和私钥密码的最佳/推荐方式是什么。
我考虑过使用属性文件,但在生产环境中使用似乎不是很安全(将密码存储在纯文本文件中)。此外,在我的代码中硬编码密码不是我愿意接受的选择。
谢谢。
java - 生成密钥库 (Java) 时遇到问题
我正在尝试发布我的第一个 Android 应用程序,因此需要使用密钥库对应用程序进行签名。
起初一切顺利。我在命令提示符中键入以下内容:
我回答了以下几个问题,但在最后一个问题之后,我收到以下错误
keytool 错误:java.io.FileNotFoundException:testKeystore.keystore [访问被拒绝]
也许我犯了一些愚蠢的错误,但我在互联网上遵循了几个关于如何制作密钥库的指南,我认为这就是它的全部内容?
.net - .net 客户端 Web 应用程序?
以前从未做过任何 .net 的事情,我想知道是否可以通过浏览器运行 .Net Web 应用程序客户端?或者它只能通过在服务器上处理然后吐出一个 HTML 页面来工作?我想利用 System.Security.Cryptography.X509Certificates 命名空间来访问用户的 Windows-MY 密钥库并提取 X509 证书及其关联的私钥,由于显而易见的原因,这必须在客户端而不是服务器端完成。