Letsencrypti sertifika automaatse hankimise seadistamine docker'i abil linuxis

Vahetasin hiljuti virtuaalservi ja pidin kõik seaded uuesti üles seadma. Eelistaksin, et veebisait oleks saadaval https kaudu ja letsencrypti sertifikaadid saaks automaatselt hankida ja pikendada. Seda on võimalik saavutada, kasutades kahte docker'i pilti nginx-proxy ja nginx-proxy-companion.

See juhend näitab, kuidas seadistada veebisait docker'is, kasutades proksi, mis automaatselt saadab SSL sertifikaadid. Kasutatakse virtuaalserverit CentOS 7.

Eeldan, et server on juba ostetud, seadistatud, ja sisse logimine toimub võtme abil, fail2ban on installitud jne.

Esmalt tuleb installida docker.

  1. Esmalt tuleb installida sõltuvused
    $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  2. Lisa repository
    $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  3. Seejärel installige docker community edition
    $ sudo yum install docker-ce docker-ce-cli containerd.io
  4. Lisa docker autoload'i ja käivita see
    $ sudo systemctl enable docker
    $ sudo systemctl start docker
  5. Lisa kasutaja docker gruppi, et saada võimalus käivitada docker ilma sudo't kasutamata
    $ usermod -aG docker user

Järgmine samm on docker-compose'i installimine. Tööriista saab installida mitmel moel, kuid eelistaksin seda installida pip manageri ja virtualenv'i abil, et mitte süsteemi tarbetute pakettidega ummistada.

  1. Installige pip
    $ sudo yum install python-pip
  2. Installige virtualenv
    $ pip install virtualenv
  3. Seejärel tuleb luua projektikaust ja see initsialiseerida. Kõik vajalik pakettide haldamiseks olev kaust kannab nime ve.
    $ mkdir docker
    $ cd docker
    $ virtualenv ve
  4. Et hakata virtuaalsest keskkonnast kasutama, tuleb projekti kaustas käivitada järgmine käsk.
    $ source ve/bin/activate
  5. Nüüd saab installida docker-compose'i.
    pip install docker-compose

    Et konteinerid üksteist näeksid, loome võrgu. Vaikimisi kasutatakse silla draiverit.

    $ docker network create network

    Seejärel tuleb seadistada docker-compose, proksi asub kaustas proxy, test veebisait kaustas test. Näiteks kasutan domeeninime example.com

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

    Sisu proxy/docker-compose.yml

    versioon: '3'
    
    võrgud:
      vaikimisi:
        väline:
          nimi: võrk
    
    teenused:
      nginx-proxy:
        konteineri_nimi: nginx-proxy
        pilt: jwilder/nginx-proxy
        sadamad:
          - 80:80
          - 443:443
        mahutid:
          - 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:
        konteineri_nimi: nginx-proxy-letsencrypt
        pilt: jrcs/letsencrypt-nginx-proxy-companion
        mahutid: 
          - certs:/etc/nginx/certs
          - vhost.d:/etc/nginx/vhost.d
          - html:/usr/share/nginx/html
          - /var/run/docker.sock:/var/run/docker.sock:ro
        keskkond:
          - NGINX_PROXY_CONTAINER=nginx-proxy
    
    mahutid:
      certs:
      vhost.d:
      html:

    Keskkonnamuutuja NGINX_PROXY_CONTAINER on vajalik, et letsencrypt konteiner näeks proxy konteinerit. Kaustad /etc/nginx/certs, /etc/nginx/vhost.d ja /usr/share/nginx/html peavad olema jagatud mõlema konteineri vahel. Letsencrypt konteineri korrektseks tööks peab rakendus olema juurdepääsetav nii sadamas 80 kui 443.

    Sisu test/docker-compose.yml

    versioon: '3'
    
    võrgud:
      vaikimisi:
        väline:
          nimi: võrk
    
    teenused:
    
      nginx:
        konteineri_nimi: nginx
        pilt: nginx:latest
        keskkond:
          - VIRTUAL_HOST=example.com
          - LETSENCRYPT_HOST=example.com
          - LETSENCRYPT_EMAIL=admin@example.com

    Siin on keskkonnamuutujad vajalikud, et proxy saaks õigesti töötlema päringut serverile ja küsida sertifikaati õige domeeninime jaoks.

    Jäänud on ainult käivitada docker-compose

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

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster