Letsencrypt ziurtagirien harrera automatikoa konfiguratzea docker linux-en erabiliz

Duela gutxi zerbitzari birtuala aldatu dut, eta dena berriro konfiguratu behar izan dut. Nahiago dut gunea https bidez atzitzea eta ziurtagiriak automatikoki lortu eta berritzea ahalbidetzea. Hau bi docker irudi nginx-proxy eta nginx-proxy-companion erabiliz lor daiteke.

Hau Docker-en webgune bat konfiguratzeko gida da, SSL ziurtagiriak automatikoki jasotzen dituen proxy batekin. CentOS 7 zerbitzari birtuala erabiltzen da.

Suposatzen dut zerbitzaria dagoeneko erosi dela, konfiguratuta, gako baten bidez saioa hasi dela, fail2ban instalatuta, etab.

Lehenik eta behin, docker instalatu behar duzu.

  1. Lehenik eta behin menpekotasunak instalatu behar dituzu
    $ sudo yum install -y yum-utils  device-mapper-persistent-data lvm2
  2. Konektatu biltegia
    $ sudo yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
  3. Ondoren, instalatu docker komunitatearen edizioa
    $ sudo yum install docker-ce docker-ce-cli containerd.io
  4. Gehitu docker abiarazteko eta exekutatzeko
    $ sudo systemctl enable docker
    $ sudo systemctl start docker
  5. Gehitu erabiltzaile bat docker taldean docker sudorik gabe exekutatu ahal izateko
    $ usermod -aG docker user

Hurrengo urratsa docker-compose instalatzea da. Erabilgarritasuna hainbat modutan instalatu daiteke, baina nahiago dut pip manager eta virtualenv bidez instalatu, sistema behar ez diren paketeekin ez nahasteko.

  1. Instalatu pip
    $ sudo yum install python-pip
  2. Instalatu virtualenv
    $ pip install virtualenv
  3. Ondoren, proiektuarekin karpeta bat sortu eta hasieratu behar duzu. Paketeak kudeatzeko behar duzun guztia duen karpetari ve deituko zaio.
    $ mkdir docker
    $ cd docker
    $ virtualenv ve
  4. Ingurune birtuala erabiltzen hasteko, hurrengo komandoa exekutatu behar duzu proiektuaren karpetan.
    $ source ve/bin/activate
  5. Docker-compose instala dezakezu.
    pip install docker-compose

    Edukiontziek elkar ikusi ahal izateko, sare bat sortuko dugu. Lehenespenez, zubi-gidaria erabiltzen da.

    $ docker network create network

    Ondoren, docker-compose konfiguratu behar duzu, proxya proxy karpetan egongo da, proba gunea proba karpetan. Adibidez, example.com domeinu izena erabiltzen ari naiz

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

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

    Ingurunearen aldagaia NGINX_PROXY_CONTAINER beharrezkoa da letsencrypt edukiontziak proxy edukiontzia ikusteko. /etc/nginx/certs /etc/nginx/vhost.d eta /usr/share/nginx/html karpetak bi edukiontziek partekatu behar dituzte. Letsencrypt edukiontziak behar bezala funtziona dezan, aplikazioa eskuragarri egon behar du 80 eta 443 atakan.

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

    Hemen, ingurune-aldagaiak behar dira, proxyak zerbitzariari eskaera zuzen prozesatu eta domeinu-izen zuzenaren ziurtagiria eskatzeko.

    Docker-compose exekutatu besterik ez da geratzen

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

Iturria: www.habr.com

Gehitu iruzkin berria