如何在Jetty中使用CA签名证书正确配置SSL?

时间:2017-01-20 08:18:11

标签: ssl jetty ssl-certificate keytool exist-db

我正在尝试保护我的eXist-db应用程序,这意味着我想要打开的唯一端口应该是8443(用于使用WebDAV和管理员应用程序)。这是eXist-db自安装以来已打开的基本安全端口。它使用自签名证书。使用新证书替换默认证书没有问题,但问题是我无法使用CA签名证书执行此操作。

我试过了:

  1. sudo rm eXist-db/tools/jetty/etc/keystore
  2. cat ServerCertificate.crt Alpiro-TrustProvider-IntermediateCA.crt Root.cer > cert-chain.txt
  3. 我清理了线路的坏端并验证了每个证书都在新线路上开始。
  4. openssl pkcs12 -export -inkey my-app.key -in cert-chain.txt -out my-app.pkcs12
  5. keytool -importkeystore -srckeystore my-app.pkcs12 -srcstoretype PKCS12 -destkeystore eXist-db/tools/jetty/etc/keystore
  6. 重新启动后,我检查了连接:openssl s_client -connect xx.xx.xxx.xxx:8443,一切似乎都很好。我可以看到我的可信证书和连接(handshake)只是有效。但是,浏览器仍然声称它不是可信连接。

    当我尝试通过XQuery检查https上的内容时,它会抛出:

    java.security.cert.CertificateException: No subject alternative names matching IP address xx.xx.xxx.xxx found …
    

1 个答案:

答案 0 :(得分:1)

解决方案非常简单。问题是我一直试图通过IP访问该网站,而不是通过完全合格的域名。证书与域名相关联,而不是IP!