ASP .NET использует сертификат SSL снаружи своего контейнера докеровLinux

Ответить
Anonymous
 ASP .NET использует сертификат SSL снаружи своего контейнера докеров

Сообщение Anonymous »

Я использую сервер Ubuntu с док-контейнером, содержащим мой веб-сайт ASP .NET. Мне удалось запустить его нормально, прежде чем переключиться на использование HTTPS, но теперь, когда я запускаю контейнер, я получаю следующие ошибки.

Код: Выделить всё

app_1  | warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60]
app_1  |       Storing keys in a directory '/root/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed.
app_1  | Unhandled exception. Interop+Crypto+OpenSslCryptographicException: error:2006D080:BIO routines:BIO_new_file:no such file
Теперь я предполагаю, что проблема в том, что мой контейнер не может прочитать сертификат SSL, поскольку он расположен вне контейнера. Я предполагаю, что неправильно настраиваю том внутри docker-compose или что-то в этом роде, но я уже некоторое время пытаюсь это исправить и не уверен, в чем именно проблема, поскольку ключи существуют. Я также создал множество различных SSL-сертификатов и никогда раньше не имел с ними проблем, за исключением того факта, что я переключился на использование ASP .NET поверх nginx, чтобы опробовать его.

Код: Выделить всё

:~# ls /etc/letsencrypt/live/example.com/privkey.pem
/etc/letsencrypt/live/example.com/privkey.pem
Теперь вот мой раздел тома внутри docker-compose.

Код: Выделить всё

    volumes:
- /etc/letsencrypt/live/example.com/fullchain.pem:/etc/ssl/certs/fullchain.pem:ro
- /etc/letsencrypt/live/example.com/privkey.pem:/etc/ssl/private/privkey.pem:ro
Теперь это мой метод CreateHostBuilder внутри моего класса Program.

Код: Выделить всё

        public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup()
.UseKestrel(options =>
{
options.ListenAnyIP(80); // HTTP
options.ListenAnyIP(443, listenOptions =>
{
listenOptions.UseHttps("/etc/ssl/certs/fullchain.pem", "/etc/ssl/private/privkey.pem");
});
});
});
Я также пытался изменить chmod на 644 для этих файлов, но это тоже ничего не дало, есть ли у кого-нибудь идеи, в чем может быть проблема?

Подробнее здесь: https://stackoverflow.com/questions/792 ... -container
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»