2014-10-29 87 views
0

我试图通过使用Jetty运行在SSL上的安全站点。我从证书颁发机构收到4个PEM文件:如何从证书颁发机构提供的PEM文件正确创建java密钥库文件?

  • 1根证书
  • 第二中级证书
  • 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 

...这导致网站响应请求,但仍然警告证书不被信任。

我需要做什么(如果有的话)与根证书和中级证书。我的尝试失败了,因为我没有使用它们?我无法找到任何信息,拼凑在一起我失踪。

回答

1

将所有证书合并在一起。你server.crt这看起来像这样

----- BEGIN CERTIFICATE -----
1证书为我的网站
----- END CERTIFICATE -----
- ---- BEGIN CERTIFICATE -----
第一中级证书
----- END CERTIFICATE -----
----- BEGIN CERTIFICATE -----
第二中级证书
----- END CERTIFICATE -----
----- BEGIN CERTIFICATE -----
1根证书
----- END CERTIFICATE -----

使用命令:

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 
+0

是否顺序中间证书的重要性,如果是的话,我怎么知道哪个应该先到? – RTF 2014-10-29 20:31:35

+0

无论最后一个问题的答案如何,它都可行 - 谢谢你的好友! – RTF 2014-10-29 20:33:50

+0

@RTF我不知道这个问题的确切答案,但许多消息来源说,你应该把“叶”的证书放在根上。 – Multisync 2014-10-29 20:37:18

相关问题