Mametraka fandraisana automatique ny mari-pankasitrahana letsencrypt mampiasa docker amin'ny linux

Vao haingana aho no nanova ny mpizara virtoaly, ary tsy maintsy nanamboatra ny zava-drehetra indray. Aleoko raha azo idirana amin'ny alΓ lan'ny https ny tranokala ary ny mari-pankasitrahana letsencrypt dia azo sy havaozina ho azy. Izany dia azo atao amin'ny fampiasana sary docker roa nginx-proxy sy nginx-proxy-companion.

Ity dia torolΓ lana momba ny fomba fametrahana tranokala ao amin'ny Docker, miaraka amin'ny proxy izay mahazo mari-pankasitrahana SSL ho azy. Ny mpizara virtoaly CentOS 7 no ampiasaina.

Heveriko fa efa novidina ny server, namboarina, niditra tamin'ny fampiasana fanalahidy, nametrahana fail2ban, sns.

Voalohany dia mila mametraka docker ianao.

  1. Voalohany dia mila mametraka dependencies ianao
    $ sudo yum install -y yum-utils  device-mapper-persistent-data lvm2
  2. Connect repository
    $ sudo yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
  3. Avy eo apetraho ny fanontana vondrom-piarahamonina docker
    $ sudo yum install docker-ce docker-ce-cli containerd.io
  4. Ampio docker hanombohana sy hihazakazaka
    $ sudo systemctl enable docker
    $ sudo systemctl start docker
  5. Ampio mpampiasa iray ao amin'ny vondrona docker mba hahafahana mihazakazaka docker tsy misy sudo
    $ usermod -aG docker user

Ny dingana manaraka dia ny fametrahana docker-compose. Ny fitaovana dia azo apetraka amin'ny fomba maro, fa aleoko mametraka amin'ny alΓ lan'ny mpitantana pip sy virtualenv, mba tsy hanakorontana ny rafitra amin'ny fonosana tsy ilaina.

  1. Mametraka pip
    $ sudo yum install python-pip
  2. Mametraka virtualenv
    $ pip install virtualenv
  3. Avy eo dia mila mamorona lahatahiry miaraka amin'ny tetikasa ianao ary manomboka izany. Ny lahatahiry misy ny zavatra rehetra ilainao hitantana ny fonosana dia antsoina hoe ve.
    $ mkdir docker
    $ cd docker
    $ virtualenv ve
  4. Mba hanombohana mampiasa ny tontolo virtoaly dia mila manatanteraka ity baiko manaraka ity ianao ao amin'ny lahatahiry tetikasa.
    $ source ve/bin/activate
  5. Azonao atao ny mametraka docker-compose.
    pip install docker-compose

    Mba hahafahan'ny kaontenera mifankahita dia hamorona tambajotra izahay. Amin'ny alΓ lan'ny default, ny mpamily tetezana no ampiasaina.

    $ docker network create network

    Avy eo dia mila manamboatra docker-compose ianao, ny proxy dia ho ao amin'ny lahatahiry proxy, ny tranokala fitsapana dia ho ao amin'ny lahatahiry fitsapana. Ohatra, mampiasa ny anarana domain example.com aho

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

    Hevitra ato Anatiny 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:

    Tontolo iainana miovaova NGINX_PROXY_CONTAINER ilaina ho an'ny container letsencrypt ny mahita ny container proxy. Ny lahatahiry /etc/nginx/certs /etc/nginx/vhost.d sy ​​/usr/share/nginx/html dia tsy maintsy zaraina amin'ireo fitoeran-javatra roa ireo. Mba hahafahan'ny container letsencrypt miasa tsara, ny fampiharana dia tsy maintsy azo idirana amin'ny seranana 80 sy 443.

    Hevitra ato Anatiny 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]

    Eto dia ilaina ny fari-piainan'ny tontolo iainana mba hahafahan'ny proxy manodinkodina tsara ny fangatahana amin'ny mpizara ary mangataka mari-pankasitrahana momba ny anaran-tsehatra marina.

    Ny hany sisa tavela dia ny mihazakazaka docker-compose

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

Source: www.habr.com

Add a comment