Pag-set up sa awtomatik nga resibo sa letsencrypt nga mga sertipiko gamit ang docker sa linux

Bag-ohay lang akong giusab ang virtual server, ug kinahanglang i-configure pag-usab ang tanan. Mas gusto nako nga ang site ma-access pinaagi sa https ug letsencrypt nga mga sertipiko makuha ug awtomatiko nga mabag-o. Mahimo kini nga makab-ot pinaagi sa paggamit sa duha ka docker nga mga imahe nga nginx-proxy ug nginx-proxy-companion.

Kini usa ka giya kung giunsa ang pag-set up sa usa ka website sa Docker, nga adunay proxy nga awtomatikong makadawat mga sertipiko sa SSL. Ang CentOS 7 virtual server gigamit.

Nagtuo ko nga ang server napalit na, na-configure, naka-log in gamit ang usa ka yawe, na-install ang fail2ban, etc.

Una kinahanglan nimo i-install ang docker.

  1. Una kinahanglan nimo nga i-install ang mga dependency
    $ sudo yum install -y yum-utils  device-mapper-persistent-data lvm2
  2. Ikonektar ang repositoryo
    $ sudo yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
  3. Dayon i-install ang docker community edition
    $ sudo yum install docker-ce docker-ce-cli containerd.io
  4. Idugang ang docker sa pagsugod ug pagdagan
    $ sudo systemctl enable docker
    $ sudo systemctl start docker
  5. Pagdugang usa ka tiggamit sa grupo sa docker aron makadagan ang docker nga wala sudo
    $ usermod -aG docker user

Ang sunod nga lakang mao ang pag-install sa docker-compose. Ang utility mahimong ma-install sa daghang mga paagi, apan mas gusto nako nga i-install pinaagi sa pip manager ug virtualenv, aron dili ma-clutter ang sistema sa wala kinahanglana nga mga pakete.

  1. I-install ang pip
    $ sudo yum install python-pip
  2. I-install ang virtualenv
    $ pip install virtualenv
  3. Sunod kinahanglan nimo nga maghimo usa ka folder nga adunay proyekto ug unahon kini. Ang folder nga adunay tanan nga kinahanglan nimo sa pagdumala sa mga pakete tawgon nga ve.
    $ mkdir docker
    $ cd docker
    $ virtualenv ve
  4. Aron magsugod sa paggamit sa virtual nga palibot, kinahanglan nimo nga ipadagan ang mosunud nga mando sa folder sa proyekto.
    $ source ve/bin/activate
  5. Mahimo nimong i-install ang docker-compose.
    pip install docker-compose

    Aron makita sa mga sudlanan ang usag usa, maghimo kami usa ka network. Sa kasagaran, ang drayber sa tulay gigamit.

    $ docker network create network

    Sunod kinahanglan nimo nga i-configure ang docker-compose, ang proxy naa sa proxy folder, ang site sa pagsulay naa sa folder sa pagsulay. Pananglitan, gigamit nako ang domain name example.com

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

    Kontento 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:

    Variable sa palibot NGINX_PROXY_CONTAINER gikinahanglan alang sa letsencrypt nga sudlanan aron makita ang proxy nga sudlanan. Ang /etc/nginx/certs /etc/nginx/vhost.d ug /usr/share/nginx/html nga mga folder kinahanglang ipaambit sa duha ka sudlanan. Alang sa letsencrypt nga sudlanan nga molihok sa husto, ang aplikasyon kinahanglan nga ma-access sa parehong port 80 ug 443.

    Kontento 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]

    Dinhi, gikinahanglan ang mga variable sa palibot aron ang proxy maproseso sa husto ang hangyo sa server ug mangayo og sertipiko alang sa husto nga domain name.

    Ang nahabilin mao ang pagpadagan sa docker-compose

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

Source: www.habr.com

Idugang sa usa ka comment