Доверенные корневые сертификаты в 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):
Копирование сертификата
.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/
Вызов
update-ca-certificates
:RUN update-ca-certificates