【发布时间】:2016-05-02 08:43:06
【问题描述】:
我正在尝试在我的Dropwizard 服务器中设置 SSL。我从 GoDaddy 获得了我的 SSL,并从他们那里收到了几个文件,即:
- gd_bundle-g2-g1.crt
- b78*********.crt(基本上是一个像随机字符串一样命名的文件)
我已在我的密钥库中添加了具有别名 root 的 gd_bundle-g2-g1.crt 证书,并已使用我的域别名添加了另一个证书。
我的 .yml 配置文件如下所示:(我刚刚粘贴了 .yml 文件的相关部分)
server:
applicationConnectors:
- type: http
port: 8080
- type: https
port: 8443
keyStorePath: keystore/myKeyStore.jks
keyStorePassword: "myPassword"
validateCerts: true
adminConnectors:
- type: http
port: 8081
问题是,每当我尝试启动我的服务器时,我都会收到以下错误:
java.lang.IllegalStateException: Unable to retrieve certificate chain
当我在上面的 .yml 中将 validateCerts 设置为 false 时,出于显而易见的原因,此错误消失了,但是当我尝试访问 URL 时,我得到:
Connection closed error when trying to access the URL
我似乎陷入了非常糟糕的境地。我的服务器与 http 完美配合,但 https 无法正常工作! :(
鉴于我使 https 工作的最终目标和我目前的情况,我有以下问题:
- 我是否错误地处理了证书文件?
- 我的 .yml 文件中是否缺少需要添加的内容,或者那里有什么问题?
- 还是我在这张照片中完全遗漏了什么?
感谢您的帮助。
【问题讨论】:
-
我过去曾遇到过捆绑证书的问题。如果你打开它,它应该有两个证书。尝试单独导入每个
-
@Austin:捆绑包中有 3 个条目。我按照你上面说的做了,现在它说:java.lang.Exception:在密钥库中找不到证书。我使用以下命令查找了我的密钥库:keytool -list -keystore myKeyStore.jks,它向我显示了 4 个条目(3 个来自 bundle,1 个单独存在)
-
你是否也导入了
b78*********.crt? -
@Austin 是的,我做到了。我不应该这样做吗?
-
这应该有效:/
标签: java ssl https keystore dropwizard