【问题标题】:How setup SSL on Azure with Java/Tomcat如何使用 Java/Tomcat 在 Azure 上设置 SSL
【发布时间】:2012-09-12 12:46:15
【问题描述】:

我们正在使用辅助角色来托管 Java 应用程序,这些应用程序本质上是一个 Azure 包中的 Tompact 和应用程序代码。

我们希望能够设置 SSL,而无需以与 .Net 端类似的方式将证书烘焙到应用程序包中,您可以在其中引用证书存储中的证书。

如何做到这一点?

我已阅读此博客文章 http://blogs.msdn.com/b/avkashchauhan/archive/2010/11/07/adding-ssl-https-security-with-tomcat-java-solution-in-windows-azure.aspx,其中指出我们需要从证书创建一个 keystore.bin 文件并将其包含在包中。

问题是,当将代码部署到具有不同证书等的多个环境时,我不想将证书烘焙到包中以便于管理,并且从管理角度来看,围绕证书到期等。

谢谢 阿米特

【问题讨论】:

    标签: java tomcat ssl azure


    【解决方案1】:

    关键是您希望如何将证书带入 Azure VM 以供 Tomcat 配置和使用。另一个关键问题是 Tomcat/Java 不使用标准 Windows CertStore 作为证书,而是使用密钥库(Java 运行时的扩展部分),因此如果您没有在 Windows Azure 包中使用密钥库配置,那么您需要在运行期间创建Windows Azure 虚拟机配置。

    虽然其他人可能有不同的想法,但我可以提出以下解决方案:

    1. 此时您需要完成 Tomcat 安装,或者您可以使用 Azure 打包 tomcat 打包,否则您需要通过启动任务下载并安装 Tomcat
    2. 将证书文件放到 Windows Azure 存储(或 Internet 上的其他位置)上
    3. 创建启动任务以从 Windows Azure 存储或您的下载位置下载证书
    4. 将证书下载到本地计算机后,在启动任务中的 Azure VM 中运行相同的命令来构建密钥库,并确保在您的 tomcat 将要查找的位置创建密钥库。
    5. 这样,当 Tomcat 启动时,它就知道在哪里查找密钥库并正确配置端点。

    还有另一种方法是将整个 Tomcat 设置与密钥库等放在 Windows Azure 存储中,并通过启动任务下载并在 Azure VM 中进行设置。我已经在我的blog 中描述了这个过程以及示例源。

    无论何时,只要您想更改 Tomcat/证书,只需在下载位置更新包,然后重新映像/重新启动 Azure VM,您将使用新代码更新 VM,而您真的不需要不需要重新创建 Windows Azure 包。

    【讨论】:

    • 感谢 avkash。我已经读过你的博客了。问题是我们正在使用第三方编写应用程序并交出包。作为一家公司,我们不希望为简单的 opps 任务(例如使用不同证书启动新环境或更改过期证书)向开发人员支付费用来重建软件包。我们要自给自足。有没有办法编写脚本将证书从证书存储中提取到 VM 中,然后创建脚本来创建密钥库 bin?
    • 与平台的证书存储中的证书相比,blob 存储中的证书的安全性如何?
    • 当 Blob(任何东西)在 Blob 存储中时,任何有权访问密钥的人都可以访问它。当证书在 VM 中时,任何有权访问您的 VM 的人都可以访问它。所以任何内容的“安全性”都是非常主观的方面,不能说得很清楚。
    猜你喜欢
    • 1970-01-01
    • 2013-04-19
    • 2015-11-20
    • 2017-02-10
    • 2012-09-03
    • 1970-01-01
    • 2015-08-07
    • 2016-10-18
    • 1970-01-01
    相关资源
    最近更新 更多