Доверенные корневые сертификаты в DotNet Core в Linux (RHEL 7.1)

В настоящее время я развертываю.net-core web-api в док-контейнере на rhel 7.1. Все работает, как и ожидалось, но из моего приложения мне нужно вызывать другие сервисы через https, и эти хосты используют сертификаты, подписанные автономными корневыми сертификатами.

В этом созвездии я получаю ssl-ошибки при вызове этих сервисов (ssl-not valid), и поэтому мне нужно установить этот корневой сертификат в docker-контейнере или каким-то образом использовать корневой сертификат в приложении.net-core.

Как это может быть сделано? Есть ли лучшая практика, чтобы справиться с этой ситуацией? Будет ли доступ к хранилищу ключей в rhel-системе для.net-core?

1 ответ

Решение

Поскольку.NET Core использует OpenSSL в linux, вам необходимо настроить среду linux в контейнере, чтобы OpenSSL забрал сертификат.

Это делается с помощью (+ примеры Dockerfile):

  1. Копирование сертификата .crt файл в папку, которая update-ca-certificates будет проверять на наличие доверенных сертификатов - например, /usr/local/share/ca-certificates/ oron RHEL /etc/pki/ca-trust/source/anchors/:

    COPY myca.crt /usr/local/share/ca-certificates/
    
  2. Вызов update-ca-certificates:

    RUN update-ca-certificates
    
Другие вопросы по тегам