Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье содержатся сведения о настройке сертификатов X.509 в кластерах Linux.
Расположение и формат сертификатов X.509 на узлах Linux
Service Fabric обычно ожидает, что сертификаты X.509 будут присутствовать в каталоге /var/lib/sfcerts на узлах кластера Linux. Это верно для сертификатов кластера, сертификатов клиента и т. д. В некоторых случаях можно указать расположение, отличное от папки var/lib/sfcerts для сертификатов. Например, с помощью Надежных Служб, созданных с использованием Java SDK для платформы Service Fabric, можно указать другое расположение с помощью пакета конфигурации (Settings.xml) для некоторых сертификатов, специфичных для приложения. Дополнительные сведения см. в разделе "Сертификаты", на которые ссылается пакет конфигурации (Settings.xml).
Для кластеров Linux Service Fabric ожидает, что сертификаты будут присутствовать как pem-файл, содержащий сертификат и закрытый ключ, либо в виде CRT-файла, содержащего сертификат и файл .key, содержащий закрытый ключ. Все файлы должны быть в формате PEM.
При установке сертификата из Azure Key Vault с помощью шаблона Resource Manager или команд PowerShell сертификат устанавливается в правильном формате в каталоге /var/lib/sfcerts на каждом узле. При установке сертификата с помощью другого метода необходимо убедиться, что сертификат правильно установлен на узлах кластера.
Сертификаты, на которые ссылается манифест приложения
Сертификаты, указанные в манифесте приложения, например с помощью элементов SecretCertificate или EndpointCertificate , должны присутствовать в каталоге /var/lib/sfcerts . Элементы, используемые для указания сертификатов в манифесте приложения, не принимают атрибут пути, поэтому сертификаты должны присутствовать в каталоге по умолчанию. Эти элементы принимают необязательный атрибут X509StoreName . Значение по умолчанию — My, указывающее на каталог /var/lib/sfcerts на узлах Linux. Любое другое значение не определено в кластере Linux. Рекомендуется опустить атрибут X509StoreName для приложений, работающих в кластерах Linux.
Сертификаты, на которые ссылается пакет конфигурации (Settings.xml)
Для некоторых служб можно настроить сертификаты X.509 в ConfigPackage (по умолчанию Settings.xml). Например, это происходит, когда вы объявляете сертификаты, используемые для защиты каналов RPC для служб «Reliable Services», созданных с помощью SDK «Service Fabric .NET Core» или «Java». Существует два способа ссылаться на сертификаты в пакете конфигурации. Поддержка зависит от пакетов SDK для .NET Core и Java.
Использование X509 SecurityCredentialsType
С помощью пакетов SDK для .NET или Java вы можете указать X509 для SecurityCredentialsType. Это соответствует типу X509Credentials
SecurityCredentials
(.NET/Java) (.NET/Java).
Ссылка X509 находит сертификат в хранилище сертификатов. В следующем XML-коде показаны параметры, используемые для указания расположения сертификата:
<Parameter Name="SecurityCredentialsType" Value="X509" />
<Parameter Name="CertificateStoreLocation" Value="LocalMachine" />
<Parameter Name="CertificateStoreName" Value="My" />
Для службы, работающей в Linux, LocalMachine/My указывает на расположение по умолчанию для сертификатов, каталог /var/lib/sfcerts . Для Linux любые другие сочетания CertificateStoreLocation и CertificateStoreName не определены.
Всегда указывайте LocalMachine для параметра CertificateStoreLocation . Не нужно указывать параметр CertificateStoreName , так как по умолчанию используется значение "My". Со ссылкой на X509 файлы сертификатов должны находиться в каталоге /var/lib/sfcerts на узле кластера.
В следующем XML-коде показан раздел TransportSettings на основе этого стиля:
<Section Name="HelloWorldStatefulTransportSettings">
<Parameter Name="MaxMessageSize" Value="10000000" />
<Parameter Name="SecurityCredentialsType" Value="X509" />
<Parameter Name="CertificateFindType" Value="FindByThumbprint" />
<Parameter Name="CertificateFindValue" Value="AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00" />
<Parameter Name="CertificateRemoteThumbprints" Value="BB22CC33DD44EE55FF66AA77BB88CC99DD00EE11" />
<Parameter Name="CertificateStoreLocation" Value="LocalMachine" />
<Parameter Name="CertificateProtectionLevel" Value="EncryptAndSign" />
<Parameter Name="CertificateRemoteCommonNames" Value="ServiceFabric-Test-Cert" />
</Section>
Использование X509_2 SecurityCredentialsType
С помощью пакета SDK для Java можно указать X509_2 для SecurityCredentialsType. Это соответствует типу X509Credentials2
SecurityCredentials
(Java) (Java).
При использовании ссылки X509_2 укажите параметр пути, чтобы найти сертификат в каталоге, отличном от /var/lib/sfcerts. В следующем XML-коде показаны параметры, используемые для указания расположения сертификата:
<Parameter Name="SecurityCredentialsType" Value="X509_2" />
<Parameter Name="CertificatePath" Value="/path/to/cert/CC33DD44EE55FF66AA77BB88CC99DD00EE11FF22.crt" />
В следующем XML-коде показан раздел TransportSettings на основе этого стиля.
<!--Section name should always end with "TransportSettings".-->
<!--Here we are using a prefix "HelloWorldStateless".-->
<Section Name="HelloWorldStatelessTransportSettings">
<Parameter Name="MaxMessageSize" Value="10000000" />
<Parameter Name="SecurityCredentialsType" Value="X509_2" />
<Parameter Name="CertificatePath" Value="/path/to/cert/CC33DD44EE55FF66AA77BB88CC99DD00EE11FF22.crt" />
<Parameter Name="CertificateProtectionLevel" Value="EncryptandSign" />
<Parameter Name="CertificateRemoteThumbprints" Value="CC33DD44EE55FF66AA77BB88CC99DD00EE11FF22" />
</Section>
Примечание.
Сертификат указывается как .crt-файл в приведённом выше XML. Это означает, что также есть файл .key, содержащий закрытый ключ в том же расположении.
Настройка приложения Reliable Services для запуска в кластерах Linux
Пакеты SDK Service Fabric позволяют взаимодействовать с API среды выполнения Service Fabric для использования платформы. При запуске любого приложения, использующего эту функцию в защищенных кластерах Linux, необходимо настроить приложение с сертификатом, который он может использовать для проверки с помощью среды выполнения Service Fabric. Для приложений, содержащих службы Service Fabric Reliable Service, созданные с использованием SDK для .NET Core или Java, требуется эта конфигурация.
Чтобы настроить приложение, добавьте элемент SecretCertificate под тегом Certificates , который находится под тегом ApplicationManifest в файле ApplicationManifest.xml . В следующем XML-коде показан сертификат, на который ссылается его отпечаток пальца:
<Certificates>
<SecretsCertificate X509FindType="FindByThumbprint" X509FindValue="0A00AA0AAAA0AAA00A000000A0AA00A0AAAA00" />
</Certificates>
Вы можете ссылаться на сертификат кластера или сертификат, установленный на каждом узле кластера. В Linux файлы сертификатов должны присутствовать в каталоге /var/lib/sfcerts . Дополнительные сведения см. в разделе "Расположение и формат сертификатов X.509" на узлах Linux.