【问题标题】:How can I automatically install certificates from a CA?如何自动安装来自 CA 的证书?
【发布时间】:2016-06-23 20:05:21
【问题描述】:

我们有多个服务器和一个负载平衡器。首次配置服务器时,会创建自签名证书。然后,服务器将其固定 IP 注册到负载均衡器。

当我们自己的 Android 应用想要访问服务器时,负载均衡器会告诉它 IP。由于我们可以通过将自己的证书安装在 SSLContext 中来信任自己的证书,因此 Android 应用可以使用 SSL 与服务器通信。

问题:我们希望扩展系统,以便任意浏览器可以访问我们的服务器,但这些浏览器不信任我们的自签名证书并向用户显示丑陋的消息。

因此,我们将不得不使用来自受信任 CA 的证书。但是这里我们遇到了问题,负载均衡器使用 IP,而不是域(可以更改)。如果我们想使用基于域的证书,我们必须在每台服务器上手动安装证书,并且/或者我们必须为域配置 DNS。

How are ssl certificates verified? 解释了身份验证过程中的步骤,但我看不清楚的是浏览器如何知道它联系的 IP 属于给定域?它是否查看反向条目?我可以以某种方式欺骗这个系统以解决手动安装和/或配置 DNS 的问题吗?另外,我认为即使是域证书通常也会颁发给 IP,所以我必须为每台服务器重新颁发它。任何人都可以连接点吗?像我们目前所做的那样自动配置服务器的最佳方法是什么,但使用来自 CA 的证书而不是自签名证书?有人知道我可以使用带有 API 的 CA 吗?

【问题讨论】:

    标签: ssl-certificate


    【解决方案1】:

    浏览器知道它联系的 IP 属于给定域吗?

    它没有。一般的名称验证机制是:证书中的名称必须与地址栏中的名称匹配。

    如果客户端通过名称连接到远程服务器,则响应中的证书必须在主题字段或主题备用名称证书扩展中包含该名称。

    如果客户端通过 IP 连接到远程服务器,则响应中的证书必须在主题字段或主题备用名称扩展中包含该 IP。

    IP 的问题在于商业(公众信任的)CA 不会向您颁发 IP 地址的证书。仅限于合格的域名。

    【讨论】:

    • 这让事情变得更加清晰。所以我可能需要获得一个通配符证书,然后为我们的每个 ip 添加一个子域到 DNS。
    猜你喜欢
    • 2010-10-16
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 2018-03-29
    • 2013-06-07
    • 2013-05-25
    • 1970-01-01
    相关资源
    最近更新 更多