docker使用Let’s Encrypt協議構建免費https協議

        簡介:咱們能夠把本身的image上傳到dockerhub或者阿里雲的docker鏡像倉庫,但在實際使用中咱們不少時候都用的是本身的registry,便於內部的共享等等優勢,docker鏡像默認支持https協議,能夠用http協議,可是強烈不推薦,http協議只適合用實驗階段並且不支持設置用戶名和密碼。http認證是須要錢的對於只想作作實驗的同窗來講是不可接受的,下面咱們介紹下利用Let’s Encrypt構建免費的https協議。git

        Let’s Encrypt官網:https://letsencrypt.org/        github

        環境:docker

        docker版本:Docker version 17.03.0-ce, build 60ccb22ubuntu

        服務器版本:CentOS Linux release 7.3.1611 (Core)瀏覽器

        端口開放:443,80(防火牆開放)服務器

        步驟:dom

        1.從該服務器上面獲取證書:
         $ git clone https://github.com/letsencrypt/letsencrypt.gitui

         $ cd letsencrypt阿里雲

         $ sudo ./letsencrypt-auto certonlyrest

         2.根據該向導,選用standalone模式填寫本身的郵箱域名等等,最後獲取到的證書文件放在/etc/letsencrypt/archive/docker.mydomain.com/。首先備份這些證書到本身電腦上去

         3.而後找一個地方存放證書       

         cp /etc/letsencrypt/archive/mydomain.com/cert1.pem /home/certs/docker.mydomain.com.crt
         cp /etc/letsencrypt/archive/mydomain.com/privkey1.pem /home/certs/docker.mydomain.com.key

         啓動這個證書後在瀏覽器裏面已經能夠看到https成功訪問了,可是docker支持的不夠好,但你push,pull的時候會報錯unknow authority,這個時候咱們須要繼續在Let’s Encrypt官網下載兩個證書

         wget https://letsencrypt.org/certs/isrgrootx1.pem

         wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem

         下好了之後咱們把下面兩個證書整合到.crt證書中,最簡單的辦法就是進入下面兩個文件文件直接copy所有內容,而後粘貼到上面的.crt文件中,最後.crt文件有三對begin和end

         最後咱們啓動docker registry:

        docker run -d -p 5000:5000 --restart=always --name registry \
        -v /opt/data:/var/lib/registry \
        -v /home/certs:/certs \
        -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/docker.mydomain.com.crt \
        -e REGISTRY_HTTP_TLS_KEY=/certs/docker.mydomain.com.key \
        registry:2

        咱們就能夠直接push,pull了例如:push ubuntu docker.mydomain.com:5000/ubuntu

相關文章
相關標籤/搜索