您的位置:首页 > 运维架构 > Docker

docker使用Let’s Encrypt协议构建免费https协议

2017-03-20 10:44 267 查看

        简介:我们可以把自己的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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: