2017-02-17 124 views
3

我在Ubuntu 14.04的Docker 1.13.1容器中運行ASP.NET Core 1.1 Web API。如何在Docker鏡像中添加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簽發的證書,所以我知道我可能需要註冊內部CA.

到目前爲止我發現的關於這個錯誤的一切,Docker談到讓docker本身運行,連接到repos等。我的Docker工作正常,並且Web 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