首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WildFly发送私钥而不是证书

WildFly发送私钥而不是证书
EN

Server Fault用户
提问于 2020-01-10 10:51:13
回答 1查看 414关注 0票数 2

我正在尝试配置一个在Docker中运行的WildFly服务器以使用SSL:

  • 创建私钥:keytool -genkey -alias axcelpk -keyalg RSA -keystore server.keystore -keysize 2048 -validity 1825
  • 创建一个CSR:keytool -certreq -alias axcelPK -keystore server.keystore -file axcel.csr
  • p7b转换为ceropenssl pkcs7 -print_certs -inform der -in axcel-B64-chain.p7b -out axcel-B64-chain.cer
  • 将证书添加到密钥存储库:keytool -import -alias axcelCert -trustcacerts -file axcel-B64-chain.cer -keystore server.keystore

WildFly在standalone.xml中的配置已经完成,所以我没有碰它(确实检查过了,看起来还不错)。

当从服务器请求页面时,我会得到一个Certificate error。在检查证书时,我注意到我得到的是私钥的SHA256指纹,而不是实际证书的指纹。此外,发行人是不正确的,认证路径基本上是空的。

有什么想法吗?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2020-01-10 12:39:44

TLDR:这不是私钥,而是自签名证书

虽然您没有这样说(或显示),但我想您在您的密钥存储库上做了keytool -list,并看到了两个条目,一个privateKeyEntry和一个trustedCertEntry,每个条目都带有指纹。privateKeyEntry上的指纹不是私钥的指纹,而是存储在privateKeyEntry中的(第一个)证书的指纹。在您的示例中,这是作为-genkey操作的一部分生成的虚拟自签名证书,因为您随后没有像您应该的那样替换它。例如,自签名证书始终具有与主题相等的颁发者(而不是像真实CA证书那样设置为真实CA )。

Java /TLS服务器使用privateKeyEntry中的证书(S),接收此证书的/任何客户端都应该(1)不信任它,并显示错误或警告,指示它不受信任;(2)显示它是它自己的证书路径,没有父(S)(即单例,不为空)。SSL/TLS服务器不可能发送私钥;协议不允许它,因为它将是完全不安全和愚蠢的。

在第四步中,在CA提供的证书链上使用keytool -import与您用于-genkey操作的别名相同,这里是axcelpk,而不是不同的别名。注意,实际上不需要第三步;当将CA响应(即您自己的证书链)导入私钥条目时,keytool (以及更一般的CertificateFactory)可以直接在PEM或DER中读取p7b。虽然如果您想拥有由OpenSSL支持的PEM序列或不支持的DER序列,但这些序列也可以工作。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/998421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档