【问题标题】:Service Fabric ApplicationManifest parameterized certificaterefs?Service Fabric ApplicationManifest 参数化证书引用?
【发布时间】:2017-05-04 08:17:42
【问题描述】:

我有一个包含多个 SF 服务的解决方案。其中一些使用 HTTPS 端点,所以我有这些规范(细节隐藏或更改)

我们是几个开发者,我们使用自签名证书进行本地部署。

<Parameters>
    <Parameter Name="Api_SslCertHash" DefaultValue="<my-thumbprint-here!>" />
</Parameters>

<ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="SomeAppPkg" ServiceManifestVersion="1.0.0" />
    <Policies>
      <EndpointBindingPolicy EndpointRef="ServiceEndpointHttps" CertificateRef="mycert" />
    </Policies>
</ServiceManifestImport>

然后

<Certificates>
  <EndpointCertificate X509FindValue="[Api_SslCertHash]" Name="mycert" />
</Certificates>

现在问题是我们已将此文件签入到 Git,并且由于每个人都有自己的自签名证书(不是:我不知道这是否必须,也许我们可以共享证书,问题仍然保留)每个开发人员的指纹不同。

我的问题是:是否可以在环境变量中使用指纹,或者从其他来源获取指纹,而不是在 ApplicationManifest 中更改指纹。我意识到在集群环境中可能很难,但可能在本地部署时?

我对 ServiceManifest 有类似的要求,我希望有不同的端口号。我知道我可以在 Local.1Node.xml 中覆盖它,但能够从外部获取它会很好。

【问题讨论】:

    标签: ssl azure-service-fabric


    【解决方案1】:

    我不明白为什么您不能像在上一个示例中那样使用变量,但这并不能解决您的多开发问题。

    处理此问题的正确方法是生成证书,将其签入源代码管理并让其他所有人使用相同的证书。事实上,如果您在生产环境中设置了一个安全集群,任何想要查看 Explorer 的人都需要在他们的机器上安装相同的证书才能进行身份验证。

    【讨论】:

    • 我建议您避免将证书添加到源代码管理,而是使用 KeyVault 或直接上传到您的环境。然后将指纹添加到源代码管理。对于本地开发,请指向一个路径并将私有证书置于源代码控制之外,但要确保每个开发人员都有一个证书。
    猜你喜欢
    • 1970-01-01
    • 2016-12-03
    • 2021-11-15
    • 2016-12-14
    • 2019-09-19
    • 1970-01-01
    • 2018-09-16
    • 2017-10-14
    • 2020-05-06
    相关资源
    最近更新 更多