لينڪس تي ڊڪر استعمال ڪندي letsencrypt سرٽيفڪيٽ جي خودڪار رسيد کي ترتيب ڏيڻ

مون تازو تبديل ڪيو مجازي سرور، ۽ هر شيء کي ٻيهر ترتيب ڏيڻو هو. مان ترجيح ڏيان ٿو ته سائيٽ https جي ذريعي دستياب هجي ۽ letsencrypt سرٽيفڪيٽ حاصل ڪيا وڃن ۽ خودڪار طور تي تجديد ڪيا وڃن. اهو حاصل ڪري سگهجي ٿو ٻه ڊاکر تصويرون استعمال ڪندي nginx-proxy ۽ nginx-proxy-companion.

اهو هڪ گائيڊ آهي ته ڪيئن ٺاهيو ويب سائيٽ Docker تي، هڪ پراکسي سان جيڪا خودڪار طور تي SSL سرٽيفڪيٽ حاصل ڪري ٿي. CentOS 7 ورچوئل سرور استعمال ڪيو ويندو آهي.

مان سمجهان ٿو ته سرور اڳ ۾ ئي خريد ڪيو ويو آهي، ترتيب ڏنو ويو آهي، هڪ چيڪ استعمال ڪندي لاگ ان، fail2ban انسٽال ٿيل، وغيره.

پهرين توهان کي انسٽال ڪرڻ جي ضرورت آهي docker.

  1. پهرين توهان کي انحصار کي نصب ڪرڻ جي ضرورت آهي
    $ sudo yum install -y yum-utils  device-mapper-persistent-data lvm2
  2. مخزن کي ڳنڍيو
    $ sudo yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
  3. پوء انسٽال ڪريو ڊڪر ڪميونٽي ايڊيشن
    $ sudo yum install docker-ce docker-ce-cli containerd.io
  4. شروع ڪرڻ ۽ هلائڻ لاءِ ڊڪر شامل ڪريو
    $ sudo systemctl enable docker
    $ sudo systemctl start docker
  5. هڪ صارف شامل ڪريو ڊڪر گروپ ۾ سوڊو کان سواء ڊڪر کي هلائڻ جي قابل
    $ usermod -aG docker user

ايندڙ قدم docker-compose انسٽال ڪرڻ آهي. يوٽيلٽي کي ڪيترن ئي طريقن سان انسٽال ڪري سگهجي ٿو، پر مان پائپ مئنيجر ۽ ورچوئلنوي ذريعي انسٽال ڪرڻ کي ترجيح ڏيان ٿو، ته جيئن غير ضروري پيڪيجز سان سسٽم کي خراب نه ٿئي.

  1. انسٽال ڪريو پائپ
    $ sudo yum install python-pip
  2. virtualenv انسٽال ڪريو
    $ pip install virtualenv
  3. اڳيون توهان کي پروجيڪٽ سان فولڊر ٺاهڻ ۽ ان کي شروع ڪرڻ جي ضرورت آهي. فولڊر هر شي سان گڏ توهان کي پيڪيجز کي منظم ڪرڻ جي ضرورت آهي ve سڏيو ويندو.
    $ mkdir docker
    $ cd docker
    $ virtualenv ve
  4. ورچوئل ماحول کي استعمال ڪرڻ شروع ڪرڻ لاءِ، توھان کي ھيٺ ڏنل حڪم هلائڻو پوندو پروجيڪٽ فولڊر ۾.
    $ source ve/bin/activate
  5. توھان انسٽال ڪري سگھو ٿا docker-compose.
    pip install docker-compose

    ڪنٽينرز لاءِ هڪ ٻئي کي ڏسڻ لاءِ، اسان هڪ نيٽ ورڪ ٺاهينداسين. ڊفالٽ طور، پل ڊرائيور استعمال ڪيو ويندو آهي.

    $ docker network create network

    اڳيون توھان کي ترتيب ڏيڻ جي ضرورت آھي docker-compose، پراکسي پراکسي فولڊر ۾ ھوندي، ٽيسٽ سائيٽ ٽيسٽ فولڊر ۾ ھوندي. مثال طور، مان ڊومين نالو استعمال ڪري رهيو آهيان example.com

    $ mkdir proxy
    $ mkdir test
    $ touch proxy/docker-compose.yml
    $ touch test/docker-compose.yml

    مواد proxy/docker-compose.yml

    version: '3'
    
    networks:
      default:
        external:
          name: network
    
    services:
      nginx-proxy:
        container_name: nginx-proxy
        image: jwilder/nginx-proxy
        ports:
          - 80:80
          - 443:443
        volumes:
          - certs:/etc/nginx/certs
          - vhost.d:/etc/nginx/vhost.d
          - html:/usr/share/nginx/html
          - /var/run/docker.sock:/tmp/docker.sock:ro
    
      nginx-proxy-letsencrypt:
        container_name: nginx-proxy-letsencrypt
        image: jrcs/letsencrypt-nginx-proxy-companion
        volumes: 
          - certs:/etc/nginx/certs
          - vhost.d:/etc/nginx/vhost.d
          - html:/usr/share/nginx/html
          - /var/run/docker.sock:/var/run/docker.sock:ro
        environment:
          - NGINX_PROXY_CONTAINER=nginx-proxy
    
    volumes:
      certs:
      vhost.d:
      html:

    ماحولياتي تبديلي NGINX_PROXY_CONTAINER اهو ضروري آهي ته letsencrypt ڪنٽينر کي پراکسي ڪنٽينر ڏسڻ لاءِ. /etc/nginx/certs /etc/nginx/vhost.d ۽ /usr/share/nginx/html فولڊر ٻنهي ڪنٽينرز طرفان حصيداري ڪرڻ گهرجن. letsencrypt ڪنٽينر لاءِ صحيح ڪم ڪرڻ لاءِ، ايپليڪيشن کي لازمي طور تي ٻنهي بندرگاهن 80 ۽ 443 تي دستياب هجڻ گهرجي.

    مواد test/docker-compose.yml

    version: '3'
    
    networks:
      default:
        external:
          name: network
    
    services:
    
      nginx:
        container_name: nginx
        image: nginx:latest
        environment:
          - VIRTUAL_HOST=example.com
          - LETSENCRYPT_HOST=example.com
          - [email protected]

    هتي، ماحوليات جي متغيرن جي ضرورت آهي ته جيئن پراکسي صحيح طور تي سرور ڏانهن درخواست تي عمل ڪري ۽ صحيح ڊومين جي نالي لاءِ سرٽيفڪيٽ جي درخواست ڪري.

    باقي اهو آهي ته ڊاڪر ڪمپوز کي هلائڻو آهي

    $ cd proxy
    $ docker-compose up -d
    $ cd ../test
    $ docker-compose up -d

جو ذريعو: www.habr.com

تبصرو شامل ڪريو