Letsencrypti sertifikaatide automaatse saamise seadistamine Dockeris Linuxis

Hiljem vahetasin virtuaalset serverit ja pidin kõik uuesti seadistama. Eelistaksin, et veebileht oleks saadaval https protokolli kaudu ja et letsencrypt sertifikaadid saadakse ja pikendatakse automaatselt. Seda saab saavutada, kasutades kahte docker pildi: nginx-proxy ja nginx-proxy-companion.

See juhend selgitab, kuidas seadistada veebilehte dockeris, koos proksi, mis automaatselt saab SSL sertifikaadid. Kasutatakse virtuaalset serverit CentOS 7.

Oletan, et server on juba ostetud, seadistatud, sisselogimine toimub võtme kaudu, fail2ban on paigaldatud jne.

Esmalt tuleb paigaldada docker.

  1. Esialgu tuleb paigaldada sõltuvused
    $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  2. Ühendage hoidla
    $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  3. Siis paigaldage docker community edition
    $ sudo yum install docker-ce docker-ce-cli containerd.io
  4. Lisage docker automaatkäivitusse ja käivitage
    $ sudo systemctl enable docker
    $ sudo systemctl start docker
  5. Lisage kasutaja docker gruppi, et saada võimalus käivitada docker ilma sudo-ta
    $ usermod -aG docker user

Järgmine samm on docker-compose'i 설치imine. Tööriista saab installida mitmel viisil, kuid mina eelistan seda installida pip-i halduriga ja virtualenv-iga, et mitte süsteemi tarbetute paketidega täita.

  1. Paigaldada pip
    $ sudo yum install python-pip
  2. Paigaldada virtualenv
    $ pip install virtualenv
  3. Seejärel tuleb luua projekti kaust ja see initsialiseerida. Kõik pakettide haldamiseks vajalikud asjad on kaustas nimega ve.
    $ mkdir docker
    $ cd docker
    $ virtualenv ve
  4. Et alustada virtuaalse keskkonna kasutamist, tuleb projektikaustas käivitada järgmine käsk.
    $ source ve/bin/activate
  5. Docker-compose'i saab installida.
    pip install docker-compose

    Konteinerite omavaheliseks nägemiseks loome võrgu. Vaikimisi kasutatakse silda (bridge) draiverit.

    $ docker network create network

    Seejärel tuleb seadistada docker-compose, proxy asub kaustas proxy ja testimisleht 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:
      default:
        väline:
          nimi: network
    
    teenused:
      nginx-proxy:
        konteineri_nimi: nginx-proxy
        pilt: jwilder/nginx-proxy
        portid:
          - 80:80
          - 443:443
        mahud:
          - 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
        mahud:
          - 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
    
    mahud:
      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 mõlema konteineri jaoks jagatud. Letsencrypt konteineri nõuetekohaseks tööks peab rakendus olema juurdepääsetav nii 80. kui 443. pordil.

    Sisu test/docker-compose.yml

    versioon: '3'
    
    võrgud:
      default:
        väline:
          nimi: network
    
    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 korralikult teen serverist taotlusi ning küsib sertifikaati õige domeeninime jaoks.

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

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

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster