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 veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster