0


我生成了密钥库:
keytool -genkeypair -alias jetty -keyalg RSA -validity 30 -keystore keystore.jks
我生成了一个 CSR:
keytool -certreq -alias jetty -file certreq.csr -keystore keystore.jks
然后我使用这个 CSR 来获取一个免费的 SSL 证书,然后他们发送 3 个证书,我将其添加到我的密钥库中:

keytool -import -trustcacerts -alias root -file root.cer -keystore myKeystore

keytool -import -trustcacerts -alias intermediate-file intermediate.cer -keystore myKeystore

keytool -import -trustcacerts -alias trial -file trial.cer -keystore myKeystore

我使用 jetty 9,所以这是 jetty-ssl.xml 中的配置:

   <Configure id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
  <Set name="KeyStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.keystore" default="etc/keystore"/></Set>
  <Set name="KeyStorePassword"><Property name="jetty.keystore.password" default="ironhide"/></Set>
  <Set name="KeyManagerPassword"><Property name="jetty.keymanager.password" default="ironhide"/></Set>
  <Set name="TrustStorePassword"><Property name="jetty.truststore.password" default="ironhide"/></Set>

但是当我重新启动服务器时,它仍然显示为在浏览器上使用 https 自签名并带有红色 X 标记

这是密钥库:

密钥库类型:JKS 密钥库提供者:SUN

您的密钥库包含 4 个条目

根,2014 年 11 月 16 日,trustedCertEntry,证书指纹 (SHA1):51:51:B8:63:8A:4C:1F:15:54:56:ED:37:C9:10:35:CA: D3:01 :B9:36
中级,2014 年 11 月 16 日,trustedCertEntry,证书指纹 (SHA1):BE:D1:D1:4E:25:A7:94:36:83:9E:4B:A7:CD:84:48:96 : B7:0A:7F:B0
试用,2014 年 11 月 16 日,trustedCertEntry,证书指纹 (SHA1):DF:A1:52:F0:60:31:4C:DB:0C:61:3D:CA:C4:A6 :85:FE: D4:4C:CD:04
getlinked,2014 年 11 月 14 日,PrivateKeyEntry,证书指纹 (SHA1):2C:82:F7:E8:09:C2:7D:7C:71:9E:86:C0 :EC:85:22:AE: 20:7D:43:14

4

2 回答 2

0

伙计们,我解决了这个问题,所以问题是“MYDOMAIN”证书应该与密钥库中的私钥具有相同的别名,
keytool -genkeypair -alias jetty -keyalg RSA -validity 30 -keystore keystore.jks
keytool -导入 -trustcacerts -alias jetty -file trial.cer -keystore myKeystore

这对我有用,我用购买的证书尝试过,一切都很好。

谢谢你们的帮助。

于 2014-11-20T10:58:46.113 回答
0

假设您的别名,当您生成私钥 + CSR 是“getlinked”时,签名证书文件是 trial.cer(PEM 编码),并且来自 CA 的中间证书是 middle.cer(PEM 编码)。

如果您的证书只是证书,您可能需要通过将中间证书连接到证书来“链接”证书。

Unix:

cat trial.cer intermediate.cer > chained.cer

视窗:

copy /b trial.cer+intermediate.cer chained.cer

然后,基于用于生成 CSR 的别名

keytool -import -alias getlinked -file chained.cer -keystore myKeystore

为 Alias 属性添加一个集合。

<Set name="CertAlias">getlinked</Set>
于 2014-11-13T16:41:14.273 回答