Setja upp sjálfvirka móttöku letsencrypt vottorða með því að nota docker á linux

Ég breytti nýlega sýndarþjóninum og þurfti að stilla allt aftur. Ég vil frekar að vefsíðan sé aðgengileg í gegnum https og látasencrypt vottorð fást og endurnýjast sjálfkrafa. Þetta er hægt að ná með því að nota tvær docker myndir nginx-proxy og nginx-proxy-companion.

Þetta er leiðbeining um hvernig á að setja upp vefsíðu á Docker, með umboði sem fær sjálfkrafa SSL vottorð. CentOS 7 sýndarþjónninn er notaður.

Ég geri ráð fyrir að þjónninn hafi þegar verið keyptur, stilltur, skráður inn með lykil, fail2ban settur upp o.s.frv.

Fyrst þarftu að setja upp docker.

  1. Fyrst þarftu að setja upp ósjálfstæði
    $ sudo yum install -y yum-utils  device-mapper-persistent-data lvm2
  2. Tengdu geymslu
    $ sudo yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
  3. Settu síðan upp docker samfélagsútgáfu
    $ sudo yum install docker-ce docker-ce-cli containerd.io
  4. Bættu docker við ræsingu og keyrðu
    $ sudo systemctl enable docker
    $ sudo systemctl start docker
  5. Bættu notanda við docker hópinn til að geta keyrt docker án sudo
    $ usermod -aG docker user

Næsta skref er að setja upp docker-compose. Hægt er að setja upp tólið á nokkra vegu, en ég kýs að setja upp í gegnum pip manager og virtualenv, til að troða ekki kerfinu með óþarfa pökkum.

  1. Settu upp pip
    $ sudo yum install python-pip
  2. Settu upp virtualenv
    $ pip install virtualenv
  3. Næst þarftu að búa til möppu með verkefninu og frumstilla það. Mappan með öllu sem þú þarft til að stjórna pakka verður kölluð ve.
    $ mkdir docker
    $ cd docker
    $ virtualenv ve
  4. Til að byrja að nota sýndarumhverfið þarftu að keyra eftirfarandi skipun í verkefnamöppunni.
    $ source ve/bin/activate
  5. Þú getur sett upp docker-compose.
    pip install docker-compose

    Til þess að gámarnir sjái hver annan munum við búa til net. Sjálfgefið er að brúardrifinn er notaður.

    $ docker network create network

    Næst þarftu að stilla docker-compose, proxy verður í proxy möppunni, prófunarstaðurinn verður í prófunarmöppunni. Til dæmis er ég að nota lénið example.com

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

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

    Umhverfisbreyta NGINX_PROXY_CONTAINER það er nauðsynlegt fyrir letsencrypt ílátið að sjá proxy-ílátið. /etc/nginx/certs /etc/nginx/vhost.d og /usr/share/nginx/html möppurnar verða að deila með báðum gámunum. Til að letsencrypt gámurinn virki rétt verður forritið að vera aðgengilegt bæði á höfn 80 og 443.

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

    Hér þarf umhverfisbreytur til að umboðið vinni beiðnina til netþjónsins rétt og biðji um vottorð fyrir rétt lén.

    Það eina sem er eftir er að keyra docker-compose

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

Heimild: www.habr.com

Bæta við athugasemd