标签: jks

如何使用PEM文件在Java中创建SSL套接字?

见相关问题.

我有一个PEM文件提供给我,并被告知在建立一个连接到c ++服务器以进行某些API调用的SSL套接字时需要它.有谁知道如何在PEM文件中读取并连接?我也被给了parapharse密码.

java ssl certificate jks pem

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

将证书从pem转换为jks

我必须将pem格式的证书转换为java密钥库.

在Windows服务器上使用这个tomcat

我有这些文件:

我试图结合pem文件(通过将两个文件组合在一起链接在一起)并将其与openssl转换成一个

  • .der文件并使用keytool将其导入新的密钥库
  • 与.p12相同
  • 直接导入到密钥库

我也试着改变了

    -----BEGIN ENCRYPTED PRIVATE KEY-----
    ...
    -----END ENCRYPTED PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

    -----BEGIN RSA PRIVATE KEY-----
    ...
    -----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

并尝试了以上3种方式

我有什么办法可以获得工作证书?

编辑:

我将cert_public_key.pem和cert_private_key.pem组合到cert_comb.pem

    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
    -----BEGIN ENCRYPTED PRIVATE KEY-----
    ...
    -----END ENCRYPTED PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

java ssl certificate jks pem

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

是否可以在没有密码的情况下创建JKS密钥库文件?

我正在尝试使用OSGi条件权限机制.更具体地说,我正在尝试使用org.osgi.service.condpermadmin.BundleSignerCondition来限制可以启动哪些包.文档我已声明为了使用此权限,我必须使用org.osgi.framework.trust.repositories框架配置属性指定JKS密钥库的路径.但是,相同的文档提到此属性中提到的JKS必须没有密码.所以问题是:如何在没有密码的情况下创建JKS?Keytool实用程序拒绝使用空密码创建JKS.

osgi jks

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

为什么指纹在我新签名的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
查看次数

Kafka SSL 握手失败问题

我正在尝试在我的 Kafka 服务器上启用 SSL 身份验证。我正在关注Kafka 文档中的 7.2 部分

遵循所有步骤,但在调用 producer.bat 文件将数据发送到主题时,我收到以下错误。

错误[Producer clientId=console-producer] 连接到节点 -1 的身份验证失败,原因是:SSL 握手失败 (org.apache.kafka.clients.NetworkClient)

引起: java.security.cert.CertificateException:找不到与本地主机匹配的名称

我确实用CN=localhost.

ssl certificate jks apache-kafka

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

JKS密钥存储格式的规范

我想知道是否存在Java中使用的JKS密钥库格式的官方规范?我想从/到PKCS#12编写一个转换器,但不是用Java编写,因此不幸的是,keytool或Java代码不是一个选项.

在十六进制编辑器中查看一个告诉我它可能不是ASN.1.在我开始深入研究OpenJDK之前,尝试对格式进行逆向工程,有没有人知道是否存在规范?到目前为止我找不到任何东西,任何帮助都会非常感激!

java file-format keystore jks

9
推荐指数
1
解决办法
3272
查看次数

PFX到JKS keytool转换:Alias <*>不存在

我正在尝试使用keytool将x.PFX文件转换为x.JKS文件,但我收到以下错误:

keytool error: java.lang.Exception: Alias <2> does not exist
Run Code Online (Sandbox Code Playgroud)

此错误之前的操作是:

列出x.PFX文件内容(只是为了读取别名):

keytool -v -list -storetype pkcs12 -keystore x.pfx

Enter keystore password: x

Keystore type: PKCS12   
Keystore provider: SunJSSE

Your keystore contains 1 entry

Alias name: 2
Creation date: 11-nov-2012

Entry type: PrivateKeyEntry
Certificate chain length: 3
Certificate[1]:
Owner: CN=x, OU=x, C=x
Issuer: CN=x, O=x, C=x
Serial number: x
Valid from: Wed Oct 24 11:46:10 CEST 2012 until: Fri Dec 13 09:28:40 CET 2013
Certificate fingerprints:

etc.
Run Code Online (Sandbox Code Playgroud)

使用"2"将x.PFX文件转换为x.JKS文件作为源别名

keytool -importkeystore -srckeystore …
Run Code Online (Sandbox Code Playgroud)

certificate jks keytool ssl-certificate pfx

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

Java 密钥库 PrivateKeyEntry 与 trustCertEntry

我正在更新我的 Hadoop 集群使用的证书。当前 JKS 有一个条目:

Your keystore contains 1 entry

Alias name: myalias
Creation date: Jan 10, 2019
Entry type: PrivateKeyEntry
Certificate chain length: 1
Run Code Online (Sandbox Code Playgroud)

我正在尝试从新证书创建一个新的密钥库:

keytool -importcert -alias myalias  -file newcertfile.crt -keystore newkeystore.jks
Run Code Online (Sandbox Code Playgroud)

但是我被问到我是否信任这个证书(如果我说不,keytool 退出):

Trust this certificate? [no]:  yes
Run Code Online (Sandbox Code Playgroud)

当我查看结果时,它不再是 PrivateKeyEntry 而是trustedCertEntry:

keytool -list -v -keystore newkeystore.jks
...
...
Your keystore contains 1 entry

Alias name: myalias
Creation date: Feb 20, 2019
Entry type: trustedCertEntry
...
...
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?我应该只使用带有trustedCertEntry 的JKS 还是有办法让它像旧的JKS(带有PrivateKeyEntry)一样?

security ssl hadoop jks

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

无法从pyspark读取密钥库文件

我正在使用下面的代码片段将数据从Hive连接并加载到elasticsearch(v 6.2),没有任何问题

ADD JAR file:///<>/elasticsearch-hadoop-hive-6.2.2.jar;
ADD FILE file:///<>/mycerts.jks;

CREATE EXTERNAL TABLE if not exists my_db.my_es_table
(
col1 int,
col2 string,
col3 string,
col4 timestamp,
key_id string
)
COMMENT 'data into ES'
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES('es.resource' = 'index1/type1',
'es.index.auto.create'='true',
'es.nodes'='<vip_name>',
'es.port'='9200',
'es.net.http.auth.user'='<user>',
'es.net.http.auth.pass'='pwd',
'es.net.ssl.protocol'='SSL',
'es.net.ssl'='TRUE',
'es.net.ssl.truststore.location'='mycerts.jks',
'es.net.ssl.truststore.pass'='<pwd>',
'es.mapping.id'='key_id'
);

INSERT OVERWRITE TABLE my_db.my_es_table
SELECT
col1,
col2,
col3,
col4,
key_id
FROM my_db.stagging_data;
Run Code Online (Sandbox Code Playgroud)

但是,当试图将同一块迁移到py-spark时,它会抛出异常

   org.elasticsearch.hadoop.EsHadoopIllegalArgumentException: Expected to find keystore file at [file:///<path>/mycerts.jks] but was unable to. Make sure that it is available on …
Run Code Online (Sandbox Code Playgroud)

python jks elasticsearch apache-spark pyspark

9
推荐指数
1
解决办法
233
查看次数

RSA JWT关键轮换期?

我已经创建了一个基本的JWT生成器,但需要在几个方面提供建议.我一直在使用JWT.io的指南和auth0/java-jwt库/ repo来生成令牌.

JWT正在使用2个不同的密钥进行签名.

使用RSA512算法使用4096位密钥对刷新令牌进行签名.

.sign(Algorithm.RSA512(rsaPublicKey, rsaPrivateKey));
Run Code Online (Sandbox Code Playgroud)

通过RSA256算法使用1024位RSA密钥对访问令牌进行签名.

 .sign(Algorithm.RSA256(rsaPublicKey, rsaPrivateKey));
Run Code Online (Sandbox Code Playgroud)

由于4096位验证过程需要更长的时间,因此我对"速度"的建议已经采用了这一点,但似乎对刷新令牌的请求较少,安全性的权衡似乎是公平的.

另一方面,访问令牌在资源服务器端点进行验证,并且它们被更频繁地发送,因此我选择了更短(256)的签名,该签名使用更快的1024位密钥进行.

我知道钥匙"几乎"不可能破坏......但建议使用钥匙旋转?

我将jks(密钥库)保存在auth服务器和资源服务器上的私有文件夹中.密钥库包含2个密钥对,一个用于刷新令牌签名/验证,另一个用于访问令牌签名/验证.

我需要刷新/形成新密钥吗?如果是这样......多久一次?建议的方法是什么?

在负载均衡器后面可以有多个auth和资源微服务实例...因此RAM生成的密钥是否为,因为它们不会在实例之间传播.

我已经看过可能有一个"密钥服务器",可以说创建新密钥并将它们附加到密钥库并将新的jks文件更新为新的密钥对...类似于: 实例之间的文件共享

因此,例如,每隔15秒,EC2 auth服务器和资源服务器ping密钥服务器,请求当前jks的副本(和版本检查).

有什么建议?

谢谢!

security token jks jwt

8
推荐指数
1
解决办法
586
查看次数