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

时间:2012-09-19 09:11:39

标签: java-ee ssl jetty

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

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

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

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

2 个答案:

答案 0 :(得分:1)

我写了一些代码,可以在一段时间内验证签名jar的证书,你可以用它来获取一个servlet的灵感,它可以引用一个密钥库并返回证书。它可能会帮助您至少开始。

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

答案 1 :(得分:0)

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

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