通过HttpServlet或类似方式提供SSL证书



设置:我有一个Jetty(如果重要的话,则为8.1.5)服务器,使用自签名证书通过https运行一个简单的站点(它是内部网,所以这不是问题)。这行得通。

但是,为了提供更好的用户体验,我想提供SSL证书以供下载和安装,具有正确的内容类型"application/x-x509-ca-cert"。为了做到这一点,我需要两件事:

  1. 一种从 Jetty 使用的密钥库获取证书的方法。我知道我可以使用OpenSSL客户端执行此操作,但我确实需要以编程方式执行此操作,最好不必打开与服务器的新连接。

  2. 一种以正确格式向用户提供此证书的方法。我很确信我可以通过编写自定义 HttpServlet 来做到这一点,但是有没有更聪明/更快的方法?

不久前我写了一些代码来验证签名 jar 的证书,您可能可以使用它来获得可以引用密钥库并返回证书的 servlet 的灵感。 它至少可以帮助您入门。

https://github.com/jetty-project/jetty-webapp-verifier/blob/master/src/main/java/org/mortbay/jetty/webapp/verifier/rules/JarSignatureRule.java

这是我过去所做的,这可能是您考虑的另一种选择:

  1. 仅使用浏览器下载服务器证书(不需要 openSSL)。 访问您的网站,查看证书并将证书复制/导出到您的计算机。
  2. 将该服务器证书复制到您的 Web 服务器,并在您的 Jetty 上发布一个 HTTP 页面,其中包含下载该证书的链接以及在不同浏览器中安装的说明(最好带有屏幕截图)。
  3. 与将访问您的 (HTTPS) 网站的用户共享此链接

最新更新