Mengkonfigurasi penerimaan otomatis sertifikat allowencrypt menggunakan buruh pelabuhan di linux

Saya baru-baru ini mengubah server virtual, dan saya harus mengkonfigurasi semuanya lagi. Saya lebih suka situs itu dapat diakses melalui https dan biarkan sertifikat enkripsi diperoleh dan diperpanjang secara otomatis. Ini dapat dicapai dengan menggunakan dua gambar buruh pelabuhan, nginx-proxy dan nginx-proxy-pendamping.


Ini adalah panduan untuk mengatur situs di buruh pelabuhan, dengan proksi yang secara otomatis menerima sertifikat SSL. Server virtual CentOS 7 digunakan.


Saya berasumsi bahwa server telah dibeli, dikonfigurasi, login dengan kunci, fail2ban diinstal, dll.


Pertama, Anda perlu menginstal buruh pelabuhan.


  1. Pertama, Anda perlu menginstal dependensi

    $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2 
  2. Hubungkan repositori

     $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 
  3. Kemudian instal buruh pelabuhan edisi komunitas

     $ sudo yum install docker-ce docker-ce-cli containerd.io 
  4. Tambahkan buruh pelabuhan untuk pengisian otomatis dan jalankan

     $ sudo systemctl enable docker $ sudo systemctl start docker 
  5. Tambahkan pengguna ke grup buruh pelabuhan agar dapat menjalankan buruh pelabuhan tanpa sudo

     $ usermod -aG docker user 

Langkah selanjutnya adalah menginstal docker-compose. Utilitas dapat diinstal dalam beberapa cara, tetapi saya lebih memilih untuk menginstal melalui pip manager dan virtualenv, agar tidak menyumbat sistem dengan paket yang tidak perlu.


  1. Pasang pip

     $ sudo yum install python-pip 
  2. Instal virtualenv

     $ pip install virtualenv 
  3. Selanjutnya, Anda perlu membuat folder dengan proyek dan menginisialisasi itu. Folder dengan semua yang Anda butuhkan untuk manajemen paket akan dipanggil ve.

     $ mkdir docker $ cd docker $ virtualenv ve 
  4. Untuk mulai menggunakan lingkungan virtual, Anda perlu menjalankan perintah berikut di folder proyek.

     $ source ve/bin/activate 
  5. Anda dapat menginstal komposisi buruh pelabuhan.

     pip install docker-compose 

    Agar wadah saling melihat, buat jaringan. Secara default, driver jembatan digunakan.

     $ docker network create network 

    Selanjutnya, Anda perlu mengkonfigurasi docker-compose, proksi akan berada di folder proksi, situs uji di folder tes. Sebagai contoh, saya menggunakan nama domain example.com

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

    Konten proxy / buruh pelabuhan-menulis.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: 

    Variabel lingkungan NGINX_PROXY_CONTAINER diperlukan sehingga mari kita enkripsi kontainer melihat wadah proxy. Folder / etc / nginx / certs /etc/nginx/vhost.d dan / usr / share / nginx / html harus dibagi oleh keduanya. Agar wadah enkripsi dapat berfungsi dengan benar, aplikasi harus tersedia di port 80 dan 443.


    Isi 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 - LETSENCRYPT_EMAIL=admin@example.com 

    Di sini, variabel lingkungan diperlukan agar proxy memproses dengan benar permintaan ke server dan meminta sertifikat untuk nama domain yang benar.


    Tetap hanya menjalankan docker-compose


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

Source: https://habr.com/ru/post/id445448/


All Articles