如何从证书颁发机构提供的PEM文件正确创建java密钥库文件?

如何从证书颁发机构提供的PEM文件正确创建java密钥库文件?,java,tomcat,jetty,ssl-certificate,keystore,Java,Tomcat,Jetty,Ssl Certificate,Keystore,我正在尝试使用Jetty通过SSL运行一个安全站点。我从证书颁发机构收到了4个PEM文件: 1根证书 2中级证书 1我的网站的证书 但我不能让它工作。要么网站完全拒绝请求,要么网站正常工作但无法识别证书,浏览器会发出警告。我尝试了以下方法: keytool -keystore keystore.jks -import -alias server -file server.crt -trustcacerts …但这会导致对该网站的请求立即被拒绝,Chrome会说该网页不可用-服务器上没有任何

我正在尝试使用Jetty通过SSL运行一个安全站点。我从证书颁发机构收到了4个PEM文件:

  • 1根证书
  • 2中级证书
  • 1我的网站的证书
但我不能让它工作。要么网站完全拒绝请求,要么网站正常工作但无法识别证书,浏览器会发出警告。我尝试了以下方法:

keytool -keystore keystore.jks -import -alias server -file server.crt -trustcacerts
…但这会导致对该网站的请求立即被拒绝,Chrome会说该网页不可用-服务器上没有任何错误。我也试过:

openssl pkcs12 -export -out keystore.pkcs12 -in server.crt -inkey server-private-key.pem 
keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks
…这会导致站点响应请求,但仍然警告证书不受信任


我需要对根证书和中间证书做什么(如果有的话)。我的尝试失败是因为我没有使用它们吗?我找不到任何将我丢失的内容拼凑在一起的信息。

将所有证书组合在一起。您的server.crt将如下所示

-----开始证书------
我的网站有1张证书
-----结束证书------
-----开始证书------
第一中级证书
-----结束证书------
-----开始证书------
第二中级证书
-----结束证书------
-----开始证书------
1根证书
-----结束证书-----

使用命令:

openssl pkcs12 -export -clcerts -in  server.crt -inkey server-private-key.pem -out keystore.pkcs12

keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks

中级证书的顺序重要吗?如果重要,我怎么知道哪一个应该先到?不管最后一个问题的答案如何,它都会起作用-谢谢老兄@RTF我不知道这个问题的确切答案,但是很多消息来源说你应该把证书从“叶子”放到根上。