Admháil uathoibríoch deimhnithe letsencrypt a shocrú ag baint úsáide as docker ar linux

D'athraigh mé an freastalaí fíorúil le déanaí, agus bhí orm gach rud a chumrú arís. Is fearr liom go mbeadh an suíomh inrochtana trí https agus go bhfaighfí agus go n-athnuachann deimhnithe letsencrypt go huathoibríoch. Is féidir é seo a bhaint amach trí dhá íomhá docker nginx-proxy agus nginx-proxy-companion a úsáid.

Is treoir é seo maidir le conas suíomh Gréasáin a bhunú ar Docker, le seachfhreastalaí a fhaigheann deimhnithe SSL go huathoibríoch. Úsáidtear freastalaí fíorúil CentOS 7.

Glacaim leis go bhfuil an freastalaí ceannaithe cheana féin, cumraithe, logáilte isteach ag baint úsáide as eochair, suiteáilte fail2ban, etc.

Ar dtús ní mór duit docker a shuiteáil.

  1. An Chéad is gá duit a shuiteáil spleáchais
    $ sudo yum install -y yum-utils  device-mapper-persistent-data lvm2
  2. Ceangail stór
    $ sudo yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
  3. Ansin suiteáil eagrán pobail docker
    $ sudo yum install docker-ce docker-ce-cli containerd.io
  4. Cuir docker leis an am tosaithe agus a rith
    $ sudo systemctl enable docker
    $ sudo systemctl start docker
  5. Cuir úsáideoir leis an ngrúpa docker chun a bheith in ann docker a rith gan sudo
    $ usermod -aG docker user

Is é an chéad chéim eile ná docker-compose a shuiteáil. Is féidir an fóntais a shuiteáil ar bhealaí éagsúla, ach is fearr liom a shuiteáil tríd an mbainisteoir pip agus virtualenv, ionas nach gcuirfí clutter ar an gcóras le pacáistí gan ghá.

  1. Suiteáil pip
    $ sudo yum install python-pip
  2. Suiteáil virtualenv
    $ pip install virtualenv
  3. Ansin ní mór duit fillteán a chruthú leis an tionscadal agus é a thúsú. Tabharfar ve ar an bhfillteán ina bhfuil gach rud atá uait chun pacáistí a bhainistiú.
    $ mkdir docker
    $ cd docker
    $ virtualenv ve
  4. Chun an timpeallacht fhíorúil a úsáid, ní mór duit an t-ordú seo a leanas a reáchtáil san fhillteán tionscadail.
    $ source ve/bin/activate
  5. Is féidir leat docker-compose a shuiteáil.
    pip install docker-compose

    Ionas go bhfeicfidh na coimeádáin a chéile, cruthóimid líonra. De réir réamhshocraithe, úsáidtear an tiománaí droichead.

    $ docker network create network

    Ansin ní mór duit docker-compose a chumrú, beidh an seachfhreastalaí san fhillteán seachfhreastalaí, beidh an suíomh tástála san fhillteán tástála. Mar shampla, tá an t-ainm fearainn sampla.com á úsáid agam

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

    Ábhar seachfhreastalaí/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:

    Athróg timpeallachta NGINX_PROXY_CONTAINER ní mór don choimeádán letsencrypt an coimeádán seachfhreastalaí a fheiceáil. Caithfidh an dá choimeádán na fillteáin /etc/nginx/certs /etc/nginx/vhost.d agus /usr/share/nginx/html a roinnt. Chun go n-oibreoidh an coimeádán letsencrypt i gceart, ní mór an feidhmchlár a bheith inrochtana ar chalafoirt 80 agus 443 araon.

    Ábhar 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]

    Anseo, tá gá le hathróga timpeallachta ionas go ndéanann an seachfhreastalaí próiseáil cheart ar an iarratas chuig an bhfreastalaí agus go n-iarrann sé teastas don ainm fearainn ceart.

    Níl fágtha ach cumadóireacht docker a rith

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

Foinse: will.com

Add a comment