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


        簡介:我們可以把自己的image上傳到dockerhub或者阿里雲的docker鏡像倉庫,但在實際使用中我們很多時候都用的是自己的registry,便於內部的共享等等優點,docker鏡像默認支持https協議,可以用http協議,但是強烈不推薦,http協議只適合用實驗階段而且不支持設置用戶名和密碼。http認證是需要錢的對於只想做做實驗的同學來說是不可接受的,下面我們介紹下利用Let’s Encrypt構建免費的https協議。

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

        環境:

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

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

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

        步驟:

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

         $ cd letsencrypt

         $ sudo ./letsencrypt-auto certonly

         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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM