Интеграция IdentityServer4 с CertManager в Куберне
Я разрабатываю приложение, используя подход микросервисов. У нас есть множество микросервисов, работающих за шлюзом Ocelot, одним из этих микросервисов является IdentityServer4. Первоначально приложение работало с использованием HTTP, так как я не знал, как обрабатывать HTTPS на тот момент.
При использовании Docker для Windows все работало как положено. На этом этапе внутри моего стартапа микросервиса сервера идентификации у меня есть что-то вроде этого:
services.AddIdentityServer()
.AddDeveloperSigningCredential()
.AddConfigurationStore(options =>
{
options.ConfigureDbContext = builder =>
builder.UseSqlServer(Configuration[IDENTITYSERVERDB_CONNECTIONSTRING],
sql => sql.MigrationsAssembly(migrationsAssembly));
})
.AddOperationalStore(options =>
{
options.ConfigureDbContext = builder =>
builder.UseSqlServer(Configuration[IDENTITYSERVERDB_CONNECTIONSTRING],
sql => sql.MigrationsAssembly(migrationsAssembly));
options.EnableTokenCleanup = true;
options.TokenCleanupInterval = 30;
})
.AddAspNetIdentity<User>();
Теперь мы хотим работать с HTTPS и сертификатами, и я не знаю, как это сделать. Я полагаю, что мне нужно сначала избавиться от AddDeveloperSigningCredential().
Я нашел этот пост в Интернете, чтобы использовать сертификаты со стороны IdentityServer. По-видимому, самый простой способ обработки защищенных соединений в Kubernets - это создание обратного прокси-контроллера (входного) с Cert-Manager и Let's Encrypt для обработки сертификатов - пример здесь.
С одной стороны у меня есть сертификаты, обработанные Cert-Manager. С другой стороны, у меня есть сертификаты, созданные вручную для целей IdentityServer4. Я не знаю, каков наиболее оптимальный подход для обработки сертификатов IdentityServer в kubernetes.