2017-01-20 36 views
0

我试图保护我的eXist-db应用程序,这意味着我想保持打开的唯一端口应该是8443(用于使用WebDAV和管理应用程序)。这是自安装以来eXist-db已打开的基本安全端口。它使用自签名证书。我用新的替换默认证书没有问题,但问题是我不能用CA签名证书来做到这一点。如何在Jetty中使用CA签名证书正确配置SSL?

我想:

  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

重新启动后,我检查与连接: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 … 

回答

0

解决的办法很简单。问题是我一直试图通过IP访问网站,而不是通过完全合格的域名。证书与域名相关,而不是IP!