Linux-da docker ilə letsencrypt sertifikatlarının avtomatik alınmasını konfiqurasiya etmək

Mən yaxınlarda virtual serverimi dəyişdim və hər şeyi yenidən qurmalı oldum. Saytın HTTPS vasitəsilə əlçatan olmasını istəyirəm və letsencrypt sertifikatlarının avtomatik şəkildə alınmasını və uzadılmasını təmin etmək istəyirəm. Bu, nginx-proxy və nginx-proxy-companion adlı iki docker imicini istifadə etməklə mümkündür.

Bu, docker-a sayt qurmağı öyrədən bir təlimatdır, avtomatik olaraq əldə edilən proxy ilə SSL sertifikatları. CentOS 7 virtual serveri istifadə olunur.

Mənim fikrimcə, server artıq alınıb, konfiqurasiya edilib, ona daxil olma açar vasitəsilə həyata keçirilir, fail2ban quraşdırılıb və s.

Əvvəlcə docker quraşdırılmalıdır.

  1. İlk öncə asılılıqları quraşdırmaq lazımdır
    $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  2. Depozitu qoşun
    $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  3. Sonra docker community edition-i quraşdırın
    $ sudo yum install docker-ce docker-ce-cli containerd.io
  4. Docker-i avtomatik yükləməyə əlavə edin və başladın
    $ sudo systemctl enable docker
    $ sudo systemctl start docker
  5. Docker qrupuna istifadəçini əlavə edin ki, docker-i sudo olmadan işə sala biləsiniz
    $ usermod -aG docker user

Sonrakı addım - docker-compose-i quraşdırmaqdır. Bu vasitə bir neçə yolla quraşdırıla bilər, amma mən sistemin lazımsız paketlərlə dolmaması üçün pip menecerindən və virtualenv-dən istifadə etməyi üstün tuturam.

  1. Pip-i quraşdırın
    $ sudo yum install python-pip
  2. Virtualenv-i quraşdırın
    $ pip install virtualenv
  3. Sonra layihə üçün bir qovluq yaratmaq və onu başlatmaq lazımdır. Paketləri idarə etmək üçün lazım olan hər şeyin yerləşdiyi qovluq ve adlanacaq.
    $ mkdir docker
    $ cd docker
    $ virtualenv ve
  4. Virtual mühitdən istifadə etməyə başlamaq üçün layihə qovluğunda aşağıdakı əmri yerinə yetirəcəyik.
    $ source ve/bin/activate
  5. Docker-compose-i quraşdıra bilərsiniz.
    pip install docker-compose

    Konteynerlərin bir-birini görməsi üçün şəbəkə yaradacağıq. Default olaraq bridge sürücüsü istifadə olunur.

    $ docker network create network

    Sonra docker-compose-i konfiqurasiya etməliyik, proxy proxy qovluğunda yerləşəcək, test saytı test qovluğunda olacaq. Nümunə olaraq example.com domen adından istifadə edirəm

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

    Məzmun proxy/docker-compose.yml

    versiya: '3'
    
    şəbəkələr:
      default:
        xarici:
          ad: şəbəkə
    
    xidmətlər:
      nginx-proxy:
        konteyner_adı: nginx-proxy
        şəkil: jwilder/nginx-proxy
        portlar:
          - 80:80
          - 443:443
        həcmlər:
          - sertifikatlar:/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:
        konteyner_adı: nginx-proxy-letsencrypt
        şəkil: jrcs/letsencrypt-nginx-proxy-companion
        həcmlər:
          - sertifikatlar:/etc/nginx/certs
          - vhost.d:/etc/nginx/vhost.d
          - html:/usr/share/nginx/html
          - /var/run/docker.sock:/var/run/docker.sock:ro
        mühit:
          - NGINX_PROXY_CONTAINER=nginx-proxy
    
    həcmlər:
      sertifikatlar:
      vhost.d:
      html:

    Ətraf mühit dəyişəni NGINX_PROXY_CONTAINER letsencrypt konteynerinin proxy konteynerini görməsi üçün lazımdır. /etc/nginx/certs, /etc/nginx/vhost.d və /usr/share/nginx/html qovluqları hər iki konteyner tərəfindən birgə istifadə edilməlidir. letsencrypt konteynerinin düzgün işləməsi üçün tətbiq 80 və 443 portlarında əlçatan olmalıdır.

    Məzmun test/docker-compose.yml

    versiya: '3'
    
    şəbəkələr:
      default:
        xarici:
          ad: şəbəkə
    
    xidmətlər:
    
      nginx:
        konteyner_adı: nginx
        şəkil: nginx:latest
        mühit:
          - VIRTUAL_HOST=example.com
          - LETSENCRYPT_HOST=example.com
          - LETSENCRYPT_EMAIL=admin@example.com

    Burada ətraf mühit dəyişənləri serverə sorğu prosesi düzgün başa çatdırılması və düzgün domen adı üçün sertifikat istəməsi üçün lazımdır.

    Yalnız docker-compose-u işə salmaq qalıb

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

Mənbə: habr.com

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster