【问题标题】:Different Endpoint Certificates Per Environment in Service FabricService Fabric 中每个环境的不同终结点证书
【发布时间】:2017-06-26 11:29:00
【问题描述】:

我有一个公开 SSL 端点的服务结构应用程序。我想根据环境使用不同的证书。我正在尝试使用 ApplicationMainfest.xml 文件中的参数执行此操作,就像我指定其他内容(例如实例计数)一样。但是,参数似乎不适用于此。我想知道这是否真的是真的,是否有某些事情你不能参数化。另外,有没有办法根据环境指定不同的证书?

以下是我的应用程序清单中的相关部分:

    <Parameter Name="CERTNAME" DefaultValue="MyCert" />
    ...
     <Certificates>
        <EndpointCertificate X509FindValue="..." Name="MyCert" />
        <EndpointCertificate X509FindValue="..." Name="SVSSL" />
      </Certificates>

 <Policies>
      <EndpointBindingPolicy EndpointRef="ServiceEndpointHttps" CertificateRef="[CERTNAME]" />
    </Policies>

在部署时,我收到以下错误: Register-ServiceFabricApplicationType:EndpointBindingPolicy 中的 CertificateRef '[CERTNAME]' 无效。对应的 ApplicationManifest 中没有匹配的证书。

【问题讨论】:

    标签: azure-service-fabric


    【解决方案1】:

    今天证书值本身是可参数化的,但不是 Ref。因此,您无需更改引用或名称,而是将 X509FindValue 参数化并保持端点绑定策略相同。

    请注意,只要您遇到想要参数化但不知道如何执行的操作,就有几个选项可供选择。例如,考虑服务清单中的大多数内容,例如服务侦听的端口(如果您对其进行了静态配置)。还有一些其他方法可以解决这个问题:

    1. 创建不同的清单(服务清单或应用程序清单)并在为给定环境创建应用程序包时替换它们
    2. 在构建/部署阶段使用某些东西(例如 VSTS 中的 Tokenizer Task)将存根值替换为给定软件包所针对的环境的实际值
    3. 将大部分端点配置内容移至 settings.xml 并通过正常的应用程序参数/覆盖行为替换这些值。但是,这意味着您需要自己承担配置端点的工作。

    【讨论】:

    • 我不太明白。正如我所提到的,这是在 ApplicaitonManifest 中,其中充满了其他似乎可以正常工作的参数。
    猜你喜欢
    • 2016-12-14
    • 2017-08-08
    • 2016-10-15
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 2017-01-08
    • 2021-03-10
    • 2016-12-03
    相关资源
    最近更新 更多