2017-02-08 4 views
2

У меня есть приложение для сервисов, которое предоставляет конечную точку SSL. Я хотел бы использовать другой сертификат на основе среды. Я пытаюсь сделать это с параметрами в файле ApplicationMainfest.xml так же, как я указываю другие вещи, такие как количество экземпляров. Однако параметры для этого не работают. Мне интересно, действительно ли это так, и если есть определенные вещи, которые вы не можете параметризовать. Кроме того, есть ли способ указать другой сертификат на основе среды?Различные сертификаты конечных точек на окружающую среду в сервисе Fabric

Вот соответствующие отрывки из моего манифеста приложения:

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

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

На развертывание, я получаю следующее сообщение об ошибке: Регистр-ServiceFabricApplicationType: CertificateRef '[CERTNAME]' в EndpointBindingPolicy недействителен. В соответствующем ApplicationManifest нет соответствующего сертификата.

ответ

4

Сегодня значение сертификата само по себе является параметрируемым, но не Ref. Поэтому вместо того, чтобы изменять ссылку или имя, вы должны параметризовать X509FindValue и поддерживать конечную точку привязки одинаково.

В качестве примечания, в любое время, когда вы сталкиваетесь с чем-то, что вы хотите параметризовать, но не можете понять, как это сделать, есть несколько вариантов. Рассмотрим, например, большинство вещей в манифесте службы, например, порт, который слушает служба (если вы его статически настроили). Есть и другие способы обойти это:

  1. Создание различных манифестов (сервис манифестов или манифесты приложений) и замену их при создании пакета прикладных программ для данной среды
  2. Использования что-то во время ваших этапов сборки/развертывания (например, Tokenizer Task в VSTS), чтобы заменить значение заглушки на фактическое значение, заданное средой, которую создает пакет для
  3. Переместите большую часть содержимого конфигурации конечной точки в settings.xml и замените эти значения с помощью обычного параметра приложения/переопределения приложения , Тем не менее, это будет означать, что вы сами должны выполнять настройку своих конечных точек.
+0

Я не совсем понимаю. Как я уже упоминал, это находится в ApplicaitonManifest, который полон других параметров, которые, похоже, работают нормально. – AdamC

+0

А я неправильно понял, я уточню свой ответ. – masnider

Смежные вопросы