2015-02-17 22 views
9

Tôi có boot2docker 1.4.1 chạy trên các cửa sổ qua hộp ảo. Tôi đứng sau một proxy mà MITMs https chứng nhận. Tôi cấu hình proxy bằng cách thêm các dòng sau đây trong /var/lib/boot2docker/profile:Cách bỏ qua lỗi chứng chỉ trong Boot2Docker trên các cửa sổ

export HTTP_PROXY=<proxyhost>:80 
export HTTPS_PROXY=<proxyhost>:80 
DOCKER_TLS=no 
EXTRA_ARGS="--insecure-registry index.docker.io" 

tuy nhiên khi tôi chạy [email protected]:~$ docker run hello-world tôi nhận được

Unable to find image 'hello-world:latest' locally 
Pulling repository hello-world 
FATA[0006] Get https://index.docker.io/v1/repositories/library/hello-world/images 
: x509: certificate signed by unknown authority 

Xin hãy giúp tôi tìm ra cách chính xác để bỏ qua lỗi chứng chỉ. Cảm ơn!

+1

Cùng một vấn đề ở đây tìm thấy giải pháp ?? –

+0

Tôi đã kết thúc cài đặt docker trên một vm ubuntu và chạy vào cùng một vấn đề là tốt. Cuối cùng tôi đã nhận được rằng bằng cách thêm của tôi MITM proxy và chứng chỉ CA để lưu trữ đáng tin cậy ubuntu của tôi. Tôi chắc rằng bạn có thể làm tương tự trên boot2docker nếu bạn biết nơi lưu trữ đáng tin cậy. Nếu bạn vẫn còn bị mắc kẹt, tôi có thể tìm kiếm nó cho bạn. Tôi không biết đầu cờ '--insecure-registry' thực sự là gì. – RaGe

+1

Đây là tài liệu về https://insocs.docker.com/reference/commandline/cli/#insecure-registries. Nhưng nó không có vẻ muốn xem xét index.docker.io như là một đăng ký không an toàn và nó là cách quá nhiều công việc để sửa đổi các cửa hàng đáng tin cậy để có được xung quanh vấn đề này. Điều này thường xảy ra bởi vì các phòng CNTT chèn các chứng chỉ gốc của chính họ vào kho lưu trữ tin cậy của máy chủ để thu gọn lưu lượng HTTPS –

Trả lời

18

Chỉnh sửa Có vẻ như trình gắn đế mới chỉ hoạt động trên certain flavors of Windows 10. Nếu bạn vẫn còn bị mắc kẹt trên Windows 7, tôi đã cập nhật bên dưới để phản ánh các bước mà tôi đã phải thực hiện để sửa lỗi 'chứng chỉ tự ký trong chuỗi chứng chỉ' khi tôi cài đặt phiên bản mới nhất của docker-toolbox (Docker 1.11.2).


Cuối cùng đã làm việc này trên Windows 7 sau câu trả lời ở đây: https://github.com/boot2docker/boot2docker/issues/347

Kiểm tra rằng đây là vấn đề của bạn bằng cách chạy openssl s_client -showcerts:

[email protected]:~$ openssl s_client -showcerts -CApath . -connect index.docker.io:443 

(Edit: loại bỏ 32 từ -showcerts và tên máy chủ được sửa)

Trong chuỗi chứng chỉ, bạn sẽ thấy proxy đã tự chèn và xác minh trở về một cái gì đó lỗi như thế này

Verify return code: 19 (self signed certificate in certificate chain) 

Nếu bạn có cùng một vấn đề sau đó cung cấp các bước dưới đây thử xem:

  1. Đầu tiên, lưu chứng chỉ mà bạn cần. Dưới đây là các bước để sử dụng trong Firefox tương tự như https://stackoverflow.com/a/6966818/1981358 (Chrome và IE cũng sẽ hoạt động bằng Trình hướng dẫn xuất chứng chỉ; Lưu ý: trên Windows, mã hóa chứng chỉ PEM được gọi là X.509 (.CER) được mã hóa Base-64):
    • Trong Firefox, vào https://hub.docker.com/
    • Bấm vào biểu tượng khóa trên thanh địa chỉ để hiển thị các giấy chứng nhận
    • Bấm thông qua "Thông tin thêm" -> "Security" -> "View Certificate" -> "Chi tiết "
    • Chọn từng nút trong phân cấp bắt đầu bằng nút trên cùng và nhấp vào" Xuất "và" Lưu "(chọn định dạng Chứng chỉ X.509 (PEM))
    • Lưu các tệp ở trên vào ổ đĩa cục bộ của bạn, thay đổi tiện ích mở rộng thành.pem và di chuyển chúng vào thư mục người dùng của bạn (hoặc bất kỳ vị trí khác truy cập từ ssh)
  2. Tạo một thư mục để chứa các CERT (s): [email protected]cker:~$ sudo mkdir /var/lib/boot2docker/certs/
  3. Sao chép các tập tin cert (s) đến vị trí đó: [email protected]:~$ sudo cp /c/Users/<username>/<folder>/<proxy-cert>.pem /var/lib/boot2docker/certs/
  4. Tạo file /var/lib/boot2docker/bootlocal.sh và bao gồm các nguồn từ https://gist.github.com/irgeek/afb2e05775fff532f960 (tôi chỉ cần tạo tập tin trong Windows sử dụng Notepad ++ và sao chép nó vào vị trí đúng tương tự như các bước ở trên)
  5. Thoát ssh và khởi động lại: C:\>docker-machine restart
  6. mở thứ e shell docker-machine ssh và xác minh những thay đổi làm việc: docker run hello-world

Bạn sẽ thấy đầu ra, trong đó có cái gì đó như:

Hello from Docker. 
This message shows that your installation appears to be working correctly. 
+0

FYI Tôi di chuyển đến máy docker bằng cách sử dụng các hướng dẫn tại hộp công cụ docker (https://www.docker.com/docker- hộp công cụ) và không phải thực hiện các cập nhật tương tự như vậy ở trên có thể đã lỗi thời. – peater

+2

@ppeater, tôi nghi ngờ rằng bạn không cần thực hiện bất kỳ thay đổi nào khi bạn di chuyển một hình ảnh boot2docker đã tồn tại. Khi cài đặt mới, tôi phải tải lên các chứng chỉ và sử dụng bootlocal.sh để sao chép chúng vào /etc/docker/certs.d/ /ca.crt, vì vậy câu trả lời này vẫn có liên quan. – Dan

+0

Nếu bạn không cài đặt máy ảo "mặc định", hãy đảm bảo các lệnh trên máy docker ở trên bao gồm tên máy ảo của bạn. Ví dụ: 'docker-machine ssh dev' – peater

3

Nếu bạn có Docker cho Windows trên Windows 10 và bạn gặp lỗi "x509: chứng chỉ đã được ký bởi cơ quan không xác định", bạn có thể thử điều này:

  1. Chạy bộ điều hợp cho Windows.
  2. Sau một thời gian, bạn sẽ thấy biểu tượng Docker trong vùng thông báo Windows (góc dưới bên phải) enter image description here
  3. Kích chuột phải vào biểu tượng và chọn "Cài đặt ..."
  4. Các cửa sổ cài đặt sẽ mở ra. Chọn "Docker Daemon" ở bên trái.
  5. Thêm sổ đăng ký riêng của bạn vào bộ sưu tập "không an toàn-đăng ký" trong hộp văn bản hiển thị cấu hình ở định dạng JSON. Sau đó nhấp vào "Áp dụng". enter image description here
Các vấn đề liên quan