Я разрабатываю API для самостоятельного размещения .Net Core Rest, который будет размещен в контейнере Docker в Service Fabric. Я не могу настроить SSL / Https в Service Fabric. Http вроде работает. Я использую HttpSys в качестве веб-сервера, а не Kestrel, поскольку я читал, что это не рекомендуемый вариант для служб без обратного прокси (например, IIS).
Вот фрагмент кода веб-сервера.
return WebHost.CreateDefaultBuilder(args)
.UseApplicationInsights()
.UseStartup<Startup>()
.UseHttpSys(
options =>
{
options.Authentication.Schemes = AspNetCore.Server.HttpSys.AuthenticationSchemes.None;
options.Authentication.AllowAnonymous = true;
}
)
.Build();
Вот фрагмент ServiceManifest.xml Endpoints.
<Endpoints>
<Endpoint Name = "ServiceEndpoint" Protocol = "http" Port = "80" />
<Endpoint Name = "ServiceEndpointHttps" Protocol = "https" Port = "443" Type = "Input" CertificateRef = "SSLCertificate" />
</Endpoints>
Вот фрагмент ApplicationManifest EnvironmentVariable.
<EnvironmentVariable Name = "ASPNETCORE_URLS" Value = "https://*:443/;http://*:80/"/>
Вот фрагмент политик ApplicationManifest.xml.
<Policies>
<ContainerHostPolicies CodePackageRef = "Code">
<RepositoryCredentials AccountName = "accountname" Password = "password" PasswordEncrypted = "false" />
<PortBinding ContainerPort = "80" EndpointRef = "ServiceEndpoint"/>
<PortBinding ContainerPort = "443" EndpointRef = "ServiceEndpointHttps"/>
</ContainerHostPolicies>
<EndpointBindingPolicy CertificateRef = "SSLCertificate" EndpointRef = "ServiceEndpointHttps" />
</Policies>
Вот фрагмент сертификатов ApplicationManifest.xml.
<Certificates>
<EndpointCertificate Name = "SSLCertificate" X509FindValue = "cert thumbprint"/>
</Certificates>
Изначально у меня были проблемы с развертыванием сертификата, когда у меня был сертификат SSL только в CurrentUser \ My Certificate Store. Я решил это после развертывания сертификата в LocalMachine \ My Certificate Store. С этим исправлением служба, похоже, работает только с протоколом HTTP на порту 80, а не с протоколом HTTPS на порту 443.
Обозреватель Service Fabric не показывает ошибок и ошибок в журнале событий. Я столкнулся с этой проблемой как в локальной Service Fabric, так и в экземплярах Azure Service Fabric.
Любые мысли / указатели по этому поводу будут оценены.
Service Fabric использует ОС Windows.
Проверьте это, ссылка на сайт, развертывание контейнера linux для служебной фабрики.
привет .. у тебя есть решение для этого.


Использование Service Fabric для контейнера и https может следовать за этим док.
Сертификат будет вставлен в контейнер как переменные среды.
Но для кластеров linux есть проблема. Файлы, представленные Certificates_ServicePackageName_CodePackageName_CertName_PEM и Certificates_ServicePackageName_CodePackageName_CertName_PrivateKey, имеют точно такое же содержимое.
Я жду от сторонника Azure China дальнейшие разъяснения по этому поводу, не уверен, что это проблема Китая.
Какую базовую ОС вы используете для служебной сети, Windows или Ubuntu?