2017-02-17 10 views
3

Я запускаю ASP.NET Core 1.1 Web API в контейнере Docker 1.13.1 на Ubuntu 14.04.Как добавить корневой сертификат CA внутри изображения докеров?

Когда код пытается получить некоторые данные с сервера HTTPS, я получаю эту ошибку аутентификации сертификата:

An error occurred while sending the request. ---> System.Net.Http.CurlException: Peer certificate cannot be authenticated with given CA certificates 
    at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) 
    at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) 

Сервер HTTPS является внутренним сертификатом, подписанным нашей корпоративной CA, поэтому знаю, что я могу необходимо зарегистрировать внутренний ЦС.

Все, что я нашел до сих пор об этой ошибке, и Docker рассказывает о запуске докера, подключении к репозиториям и т. Д. My Docker работает нормально, а веб-API работает на сервере Ubuntu за пределами контейнера без проблем ,

1) Нужно ли мне добавить корневой сертификат CA внутри изображения докеров?

2) Если да, то как это сделать?

3) Если нет, то как это исправить?

+0

Причину вниз голосования, пожалуйста? Я не вижу ничего плохого в этом вопросе, и, как я уже сказал, ответ явно не доступен. Если вы так думаете, укажите это. – Peter

ответ

7

Задача сама по себе не относится к докеру, так как вам нужно будет добавить этот CA в обычную систему. Ответ на вопрос о том, как это сделать, есть на askubuntu community.

Так в Dockerfile вы могли бы сделать следующее:

ADD your_ca_root.crt /usr/local/share/ca-certificates/foo.crt 
RUN update-ca-certificates 
+0

Спасибо, я попробую. Я успешно добавил CA на свои серверы, но команды, которые я намеревался выполнить, не работают, когда я вхожу в контейнер. – Peter

+0

Спасибо, это отлично поработало, хотя я использовал «завиток», чтобы вытащить сертификаты из нашего репо. – Peter