我有一个公开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中没有匹配的证书。
答案 0 :(得分:4)
今天证书价值本身是可参数化的,但不是参考。因此,不是更改引用或名称,而是参数化X509FindValue并保持endpointbindingpolicy相同。
作为一个注释,只要你遇到想要参数化的东西,但无法弄清楚如何去做,有几个选择。例如,考虑Service Manifest中的大多数内容,例如服务侦听的端口(如果您静态配置它)。还有其他一些方法: