Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Boot无法读取带有IllegalArgumentException的证书:jsse.alias\u no\u key\u条目_Java_Spring Boot_Tomcat_Ssh_Https - Fatal编程技术网

Java Spring Boot无法读取带有IllegalArgumentException的证书:jsse.alias\u no\u key\u条目

Java Spring Boot无法读取带有IllegalArgumentException的证书:jsse.alias\u no\u key\u条目,java,spring-boot,tomcat,ssh,https,Java,Spring Boot,Tomcat,Ssh,Https,我开发了一个应用程序,并上传到我的域名。主机提供了一个通配符证书供我使用,所以我尝试将其添加到我的应用程序中。我不知道我是否采取了正确的步骤 这就是我所做的: 我下载了证书(last.cer) 我从该证书创建了密钥库: 创建了last.p12,我将其放入resources/keystore/ 这是我的配置: 密钥密码是我为了下载证书而输入主机提供程序的密码 我还添加了ServletWebServerFactory 启动应用程序时,我得到以下信息: Caused by: org.apa

我开发了一个应用程序,并上传到我的域名。主机提供了一个通配符证书供我使用,所以我尝试将其添加到我的应用程序中。我不知道我是否采取了正确的步骤

这就是我所做的:

  • 我下载了证书(
    last.cer
  • 我从该证书创建了密钥库:

  • 创建了
    last.p12
    ,我将其放入
    resources/keystore/
这是我的配置:

密钥密码是我为了下载证书而输入主机提供程序的密码

我还添加了
ServletWebServerFactory

启动应用程序时,我得到以下信息:

Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1038) ~[tomcat-embed-core-9.0.31.jar:9.0.31]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ~[tomcat-embed-core-9.0.31.jar:9.0.31]
    at org.apache.catalina.core.StandardService.addConnector(StandardService.java:227) ~[tomcat-embed-core-9.0.31.jar:9.0.31]
    ... 17 common frames omitted
Caused by: java.lang.IllegalArgumentException: jsse.alias_no_key_entry

但是这两个地方的别名都是“carlos”。

您需要私钥。(但不是饼干:)

大部分都是骗人的,除非你不承认有私钥

如果主机“提供”证书以响应您的请求——特别是如果您创建了证书签名请求(CSR)——那么您必须拥有私钥;使用它。如果“主机”,或者可能是CA,或者其他人为您创建了此标识,请从他们那里获取私钥。根据您拥有或获得的表单,使用它的方法可能会有所不同



另外,在Windows上的
程序文件(x86)
下编写/修改文件是个坏主意。这些变化可能会彻底失败或消失。自20世纪90年代以来,Microsoft已正式声明不应修改%PROGRAMFILES*%目录中的文件,数据应放在%PROGRAMDATA%%USERPROFILE%或%AllUserProfile%下(如适用)。病毒和恶意软件通常通过非法修改%PROGRAMFILES*%来工作,因此最新版本的Windows(至少8和10以及服务器版本,我不记得大约7个)以及防病毒和其他安全产品在禁止或放弃更改这些文件的尝试方面变得更加激进。由于您实际上希望将此文件放在其他位置—服务器应用程序目录(或jar?您不清楚)—只需将其写入即可。

您需要私钥。(但不是饼干:)

大部分都是骗人的,除非你不承认有私钥

如果主机“提供”证书以响应您的请求——特别是如果您创建了证书签名请求(CSR)——那么您必须拥有私钥;使用它。如果“主机”,或者可能是CA,或者其他人为您创建了此标识,请从他们那里获取私钥。根据您拥有或获得的表单,使用它的方法可能会有所不同



另外,在Windows上的
程序文件(x86)
下编写/修改文件是个坏主意。这些变化可能会彻底失败或消失。自20世纪90年代以来,Microsoft已正式声明不应修改%PROGRAMFILES*%目录中的文件,数据应放在%PROGRAMDATA%%USERPROFILE%或%AllUserProfile%下(如适用)。病毒和恶意软件通常通过非法修改%PROGRAMFILES*%来工作,因此最新版本的Windows(至少8和10以及服务器版本,我不记得大约7个)以及防病毒和其他安全产品在禁止或放弃更改这些文件的尝试方面变得更加激进。由于您实际上希望将此文件放在其他位置—服务器应用程序目录(或jar?您不清楚)—只需将其写在那里即可。

好的,我刚刚尝试过,但我也遇到了同样的问题。。。您已经删除了另一个问题,但是K列中的key图标意味着P12确实包含一个key(和cert,组合成一个条目,这是Java处理它的方式)。是
opensslpkcs12-export
默认情况下将成为Java别名的“friendlyname”设置为
1
;要更改它,请在导出时使用
-name which
,或者使用
keytool-changealis
在Java中重命名它,或者我很确定您可以在keystorexplorer中执行此操作:085您是如此正确,这就是问题所在!我注意到了别名的细节并结束了问题。好吧,我只是尝试了一下,但我有同样的问题。。。您已经删除了另一个问题,但是K列中的key图标意味着P12确实包含一个key(和cert,组合成一个条目,这是Java处理它的方式)。是
opensslpkcs12-export
默认情况下将成为Java别名的“friendlyname”设置为
1
;要更改它,请在导出时使用
-name which
,或者使用
keytool-changealis
在Java中重命名它,或者我很确定您可以在keystorexplorer中执行此操作:085您是如此正确,这就是问题所在!我注意到了alias的细节并结束了问题。