中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

私有安全docker registry授權訪問實驗分析

發布時間:2021-12-14 11:33:22 來源:億速云 閱讀:221 作者:iii 欄目:云計算

本篇內容主要講解“私有安全docker registry授權訪問實驗分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“私有安全docker registry授權訪問實驗分析”吧!

實驗環境

服務器端:使用registry v2.1啟動容器。
客戶端:安裝了Docker的機器,準備pull/push操作

實驗條件:
registry端生成私鑰以及證書:

1
openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key -x509 -days 365 -out certs/domain.crt

并啟動:

1
2
3
4
5
6
docker run -d -p 5000:5000 --restart=always \ 
--name registry  -v `pwd`/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
-v /images/:/var/lib/registry \
registry:2.1

實驗一

測試不安全的訪問:
docker端不存放證書。直接下載鏡像

1
docker pull registry.test.com:5000/test-busybox:v1

提示錯誤:

Error response from daemon: unable to ping registry endpoint https://registry.test.com:5000/v0/
v2 ping attempt failed with error: Get https://registry.test.com:5000/v2/: x509: certificate signed by unknown authority
v1 ping attempt failed with error: Get https://registry.test.com:5000/v1/_ping: x509: certificate signed by unknown authority

表示訪問的是安全倉庫,但是禁止訪問。同樣如果docker push的話也會提示:

The push refers to a repository     [registry.test.com:5000/test-busybox] (len: 1)
unable to ping registry endpoint https://registry.test.com:5000/v0/
v2 ping attempt failed with error: Get https://registry.test.com:5000/v2/: x509: certificate signed by unknown authority
v1 ping attempt failed with error: Get https://registry.test.com:5000/v1/_ping: x509: certificate signed by unknown authority

這個時候可以開啟docker daemon的不安全訪問,即在/etc/defaults/docker文件里,找到DOCKER_OPT參數,在后面追加–insecure-registry registry.test.com:5000。并重啟docker daemon。

再次測試docker push 和 docker pull。成功。

此時測試:

1
curl -XGET https://registry.test.com:5000/v2/_catalog

提示禁止訪問:

curl: (60) SSL certificate problem: self signed certificate
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). If the default
bundle file isn't adequate, you can specify an alternate file using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.

如果使用-k 或者 –insecure參數的話可以訪問到registry的相應內容。

實驗二

測試安全訪問,證書存放在/etc/docker/certs.d/registry.test.com:5000/下面。

實驗條件,首先使用scp命令將registry端前面生成的domain.crt拷貝到docker端。然后創建路徑:/etc/docker/certs.d/registry.test.com:5000/,并將domain.crt復制過去。

測試docker pull / docker push。可成功。說明此證書是即刻生效的。

如果將domain.crt從該路徑移走,docker pull / docker push失敗。

對于curl的測試:
curl -XGET方式提示禁止訪問
curl –insecure方式可訪問
而使用證書的訪問:

1
curl --cacert /etc/docker/certs.d/registry.test.com\:5000/domain.crt -XGET https://registry.test.com:5000/v2/_catalog

是成功的。

實驗三

測試安全訪問,證書放在/usr/local/share/ca-certificate/domain.crt。

實驗條件,首先使用scp命令將registry端前面生成的domain.crt拷貝到docker端,然后再移動到路徑:/usr/local/share/ca-certificate/下。

此時進行docker push / docker pull是失敗的。需要更新證書。

使用命令更新證書:

1
update-ca-certificate

現在再docker push / docker pull仍失敗。還需要重啟docker daemon。
重啟之后的docker push / docker pull是成功的。

測試curl,如果不帶證書的訪問,同樣可以正常訪問。

同樣,再移除了/usr/local/share/ca-certificate/domain.crt之后,更新update-ca-certificate之后,docker pull / docker push仍成功。

在重啟了docker daemon之后,docker push / docker pull失敗。

實驗結論

對于使用了SSL方式進行授權訪問的私有docker registry。對于它的訪問,有3種方式:

1. 修改docker daemon的配置,添加--insecure-registry ...的形式訪問。
2. 將證書拷貝到docker的certs.d路徑下,證書只對docker daemon生效,立即生效
3. 將證書拷貝到/usr/local/share/ca-certificate/....的路徑里,證書在更新update-ca-certificate之后全局生效,docker daemon需重啟

小問題

通過將擁有證書的一方視為可信的一方來授權訪問是沒有問題的。在這種形式里,雙方都認為對方是可信的。

但前面也提示了可以加–insecure參數進行不安全訪問,這表示docker端不在意registry是否可信,而registry端也并不阻攔docker端的訪問。這樣安全性就降低了很多。

關于update-ca-certificates

通過update-ca-certificates的man page可以了解到,

它會更新/etc/ssl/certs,并讀取/etc/ca-certificates.conf,這個文件中每行都是在/usr/share/ca-certificates的文件都是可信的。

而在/usr/local/share/ca-certificates下的.crt文件也視作可信

一般ca-certificate路徑有:

/etc/ca-certificates
/usr/share/ca-certificates
/usr/share/doc/ca-certificates
/usr/local/share/ca-certificates

到此,相信大家對“私有安全docker registry授權訪問實驗分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

梨树县| 华坪县| 阳江市| 汽车| 富顺县| 天等县| 梁山县| 巴林右旗| 镇原县| 津南区| 巴塘县| 宝鸡市| 观塘区| 沛县| 荥阳市| 内江市| 九龙城区| 安丘市| 金湖县| 勐海县| 渭源县| 新干县| 麟游县| 化州市| 通许县| 旬邑县| 东兰县| 浑源县| 芒康县| 萝北县| 阳江市| 修武县| 东明县| 永城市| 广宗县| 福鼎市| 清远市| 张掖市| 文成县| 琼海市| 汾西县|