Thứ năm, 14/11/2019 | 00:00 GMT+7

Cách lấy chứng chỉ Let's Encrypt bằng Ansible trên Ubuntu 18.04

Quản lý cơ sở hạ tầng hiện đại được thực hiện tốt nhất bằng cách sử dụng các quy trình và công cụ tự động. Có được certificate Let's Encrypt bằng ứng dụng client Certbot tiêu chuẩn rất nhanh chóng và dễ dàng, nhưng nói chung là một nhiệm vụ phải được thực hiện thủ công khi vận hành server . Điều này có thể quản lý được đối với một cài đặt server riêng lẻ, nhưng có thể trở nên tẻ nhạt khi triển khai một group lớn hơn.

Sử dụng một công cụ quản lý cấu hình như Ansible để có được certificate làm cho tác vụ này hoàn toàn tự động và có thể tái tạo. Nếu bạn phải xây dựng lại hoặc cập nhật server của bạn , bạn chỉ có thể chạy playbook Ansible của bạn , thay vì phải thực hiện lại các bước theo cách thủ công.

Trong hướng dẫn này, bạn sẽ viết một playbook Ansible để tự động nhận certificate Let's Encrypt cho server Ansible.

Yêu cầu

Để hoàn thành hướng dẫn này, bạn cần :

Server đầu tiên sẽ được sử dụng làm server Ansible của bạn, mà ta sẽ gọi là server Ansible trong suốt hướng dẫn này. Đây là nơi Ansible sẽ chạy để gửi các lệnh đến server . Ngoài ra, bạn có thể sử dụng máy local của bạn hoặc bất kỳ máy nào khác có khoảng không quảng cáo Ansible được cấu hình làm server Ansible của bạn.

Trên server Ansible của bạn , bạn cần :

Server thứ hai sẽ được sử dụng làm server Ansible của bạn, mà ta sẽ gọi là server trong suốt hướng dẫn này. Đây là máy mà bạn muốn cấu hình và cấp certificate . Máy này cũng sẽ chạy một web server để phục vụ các file xác thực việc cấp certificate .

Trên server của bạn, bạn cần :

  • Tên domain mà bạn đủ điều kiện để có certificate TLS, với các bản ghi DNS bắt buộc được cấu hình để trỏ đến server Ansible của bạn. Trong ví dụ cụ thể này, playbook sẽ có certificate hợp lệ cho your-domainwww. your-domain , tuy nhiên nó có thể được điều chỉnh cho các domain hoặc domain phụ khác nếu được yêu cầu.

  • Một web server có thể truy cập từ internet qua cổng 80 (HTTP), chẳng hạn theo các bước 1, 2 và 3 của Cách cài đặt Server Web Apache trên Ubuntu 18.04 . Đây cũng có thể là server Nginx hoặc bất kỳ phần mềm web server phù hợp nào khác.

Khi bạn đã có những thứ này sẵn sàng, hãy đăng nhập vào server Ansible của bạn với quyền là user không phải root của bạn để bắt đầu.

Bước 1 - Cấu hình cài đặt cho module Let's Encrypt Ansible

Ansible có một module tích hợp có tên letsencrypt , cho phép bạn lấy certificate TLS hợp lệ bằng cách sử dụng giao thức ACME ( Môi trường quản lý certificate tự động ).

Trong bước đầu tiên này, bạn sẽ thêm file cấu hình biến server để xác định các biến cấu hình được yêu cầu để sử dụng module .

Lưu ý: Mô-đun letsencrypt đã được đổi tên thành acme_certificate kể từ Ansible 2.6.Tên letsencrypt hiện là alias của acme_certificate , do đó sẽ vẫn hoạt động, nhưng bạn muốn sử dụng acme_certificate thay thế, đảm bảo tính chống thấm trong tương lai cho sách acme_certificate của bạn. Bạn có thể kiểm tra version Ansible của bạn bằng cách sử dụng ansible --version . Kể từ khi viết hướng dẫn này, repository Ubuntu 18.04 Apt chưa hỗ trợ acme_certificate .

Đầu tiên, tạo folder host_vars Ansible trên server Ansible của bạn:

  • sudo mkdir /etc/ansible/host_vars

Tiếp theo, tạo một file mới trong folder /etc/ansible/host_vars với tên của server Ansible của bạn. Trong ví dụ này, bạn sẽ sử dụng host1 làm tên của server :

  • sudo nano /etc/ansible/host_vars/host1

Cấu hình mẫu sau đây bao gồm mọi thứ bạn cần để bắt đầu, bao gồm: phương pháp xác thực và địa chỉ server , địa chỉ email để nhận dấu nhắc hết hạn certificate và các folder lưu các khóa và certificate Let's Encrypt của bạn.

Sao chép cấu hình mẫu vào file :

/ etc / ansible / host_vars / host1
--- acme_challenge_type: http-01 acme_directory: https://acme-v02.api.letsencrypt.org/directory acme_version: 2 acme_email: certificate-reminders@your-domain letsencrypt_dir: /etc/letsencrypt letsencrypt_keys_dir: /etc/letsencrypt/keys letsencrypt_csrs_dir: /etc/letsencrypt/csrs letsencrypt_certs_dir: /etc/letsencrypt/certs letsencrypt_account_key: /etc/letsencrypt/account/account.key domain_name: your-domain 

Lưu file khi bạn đã hoàn tất.

Điều chỉnh domain và địa chỉ email theo yêu cầu. Bạn có thể sử dụng bất kỳ địa chỉ email nào — địa chỉ đó không nhất thiết phải là địa chỉ trên your-domain .

Một số đường dẫn folder / file được xác định có thể chưa thực sự tồn tại trên server của bạn. Điều này là ổn; phần đầu tiên của playbook sẽ là tạo các folder này và gán các quyền liên quan.

Bạn đã thêm các biến cấu hình bắt buộc vào file khoảng không quảng cáo Ansible của bạn . Tiếp theo, bạn sẽ bắt đầu viết playbook để lấy certificate .

Bước 2 - Tạo folder Let's Encrypt và khóa account

Trong bước này, bạn sẽ viết các việc Ansible mà bạn sẽ sử dụng để tạo các folder Let's Encrypt cần thiết, gán quyền chính xác và tạo khóa account Let's Encrypt.

Trước tiên, hãy tạo một playbook mới có tên letsencrypt-issue.yml trên server Ansible của bạn trong một folder mới mà bạn chọn, ví dụ: /home/user/ansible-playbooks :

  • cd ~
  • mkdir ansible-playbooks
  • cd ansible-playbooks
  • nano letsencrypt-issue.yml

Trước khi có thể bắt đầu viết các việc Ansible, bạn cần chỉ định server và các cài đặt liên quan. Điều chỉnh phần sau theo cách bạn đã giới thiệu đến server của bạn trong hướng dẫn yêu cầu . Sau đó, thêm phần sau vào đầu file :

letsencrypt-issue.yml
--- - hosts: "host1"   tasks: 

Đến đây bạn có thể bắt đầu viết các việc cần thiết, việc đầu tiên là tạo các folder hệ thống file cần thiết để lưu trữ các file Let's Encrypt. Thêm tác vụ Ansible sau vào file sau nội dung trước đó:

letsencrypt-issue.yml
...   - name: "Create required directories in /etc/letsencrypt"     file:       path: "/etc/letsencrypt/{{ item }}"       state: directory       owner: root       group: root       mode: u=rwx,g=x,o=x     with_items:     - account     - certs     - csrs     - keys 

Nhiệm vụ Ansible Điều này sẽ tạo ra các account , certs , csrs , và keys folder trong /etc/letsencrypt , đó là nơi các file cần thiết cho việc mua giấy chứng nhận sẽ được lưu trữ.

Bạn đặt chủ sở hữu của các folder thành root và áp dụng các quyền u=rwx,g=x,o=x để chỉ root có quyền đọc và ghi đối với chúng. Điều này được khuyến khích vì các folder sẽ chứa private key , yêu cầu ký certificate (CSR) và certificate đã ký nên được giữ bí mật.

Tiếp theo, khóa account Let's Encrypt cần được tạo. Bạn sẽ sử dụng điều này để xác định mình với dịch vụ Let's Encrypt.

Thêm nhiệm vụ sau vào sổ chơi của bạn:

letsencrypt-issue.yml
...   - name: "Generate a Let's Encrypt account key"     shell: "if [ ! -f {{ letsencrypt_account_key }} ]; then openssl genrsa 4096 | sudo tee {{ letsencrypt_account_key }}; fi" 

Khóa account không cần phải được tạo lại mỗi khi bạn gia hạn certificate , vì vậy bạn cũng có thể thêm kiểm tra cho khóa hiện có if [ ! -f {{ letsencrypt_account_key }} ]; , đảm bảo rằng nó không bị overrides .

Bạn sẽ tiếp tục làm việc trong letsencrypt-issue.yml trong bước tiếp theo, vì vậy đừng đóng file này.

Bạn đã tạo playbook của bạn và cài đặt cấu hình cũng như tác vụ ban đầu để chuẩn bị lấy certificate Let's Encrypt. Tiếp theo, bạn sẽ thêm các việc khác cho private key và tạo CSR.

Bước 3 - Tạo private key và yêu cầu ký certificate của bạn

Trong bước này, bạn sẽ viết các việc playbook để tạo private key cần thiết và yêu cầu ký certificate .

Tác vụ đầu tiên trong phần này sẽ tạo private key cần thiết cho certificate của bạn. Thêm phần sau vào cuối playbook mà bạn đã bắt đầu viết ở Bước 2:

letsencrypt-issue.yml
...   - name: "Generate Let's Encrypt private key"     shell: "openssl genrsa 4096 | sudo tee /etc/letsencrypt/keys/{{ domain_name }}.key" 

Tất cả các domain phụ trên cùng một domain sẽ được thêm vào cùng một certificate thông qua việc sử dụng Tên thay thế chủ đề (SAN) , vì vậy bạn chỉ cần tạo một private key ngay bây giờ.

Bạn sẽ sử dụng tác vụ tiếp theo để tạo Yêu cầu ký certificate (CSR) cho certificate mà bạn muốn lấy. Điều này được gửi đến Let's Encrypt để họ xác thực và cấp từng certificate .

Thêm phần sau vào cuối playbook:

letsencrypt-issue.yml
...   - name: "Generate Let's Encrypt CSR"     shell: "openssl req -new -sha256 -key /etc/letsencrypt/keys/{{ domain_name }}.key -subj \"/CN={{ domain_name }}\" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf \"\n[SAN]\nsubjectAltName=DNS:{{ domain_name }},DNS:www.{{ domain_name }}\")) | sudo tee /etc/letsencrypt/csrs/{{ domain_name }}.csr"     args:       executable: /bin/bash 

Tác vụ này tạo CSR cho domain của bạn, với domain phụ www được thêm vào certificate dưới dạng SAN.

Bạn sẽ tiếp tục làm việc trong letsencrypt-issue.yml trong bước tiếp theo, vì vậy đừng đóng file này.

Bạn đã viết các việc Ansible để tạo private key và CSR cho certificate của bạn . Tiếp theo, bạn sẽ thực hiện các nhiệm vụ sẽ bắt đầu quá trình xác nhận và phát hành.

Bước 4 - Bắt đầu quy trình xác thực ACME

Trong bước này, bạn sẽ viết một nhiệm vụ để gửi Yêu cầu ký certificate để Hãy mã hóa bằng cách sử dụng các file được xuất ra từ tác vụ được ghi lại trong Bước 3. Thao tác này sẽ trả về một số file challenge , mà bạn cần cung cấp trên web server của bạn trong để chứng minh quyền sở hữu domain và domain phụ mà bạn đang certificate request .

Tác vụ sau sẽ gửi CSR cho your-domain . Thêm nó vào cuối playbook của bạn:

letsencrypt-issue.yml
...   - name: "Begin Let's Encrypt challenges"     letsencrypt:       acme_directory: "{{ acme_directory }}"       acme_version: "{{ acme_version }}"       account_key_src: "{{ letsencrypt_account_key }}"       account_email: "{{ acme_email }}"       terms_agreed: 1       challenge: "{{ acme_challenge_type }}"       csr: "{{ letsencrypt_csrs_dir }}/{{ domain_name }}.csr"       dest: "{{ letsencrypt_certs_dir }}/{{ domain_name }}.crt"       fullchain_dest: "{{ letsencrypt_certs_dir }}/fullchain_{{ domain_name }}.crt"       remaining_days: 91     register: acme_challenge_your_domain 

Tác vụ này sử dụng rộng rãi các biến mà bạn đã cấu hình ở Bước 1. Nó đăng ký một biến chứa các file thử thách ACME mà bạn sẽ sử dụng trong bước tiếp theo. Bạn cần phải điều chỉnh thủ công tên của biến để chứa your-domain , nhưng với tất cả . các ký tự được thay thế bằng dấu _ , vì không thể sử dụng dấu chấm trong tên biến. Ví dụ: biến cho example.com sẽ trở thành acme_challenge_example_com .

Bạn sẽ tiếp tục làm việc trong letsencrypt-issue.yml trong bước tiếp theo, vì vậy đừng đóng file này.

Bạn đã viết một nhiệm vụ để gửi CSR của bạn đến Let's Encrypt. Tiếp theo, bạn sẽ thêm một nhiệm vụ để triển khai các file thử thách ACME để hoàn thiện quy trình xác thực certificate .

Bước 5 - Triển khai các file thử thách ACME

Trong bước này, bạn sẽ viết một nhiệm vụ Ansible để đọc và triển khai các file thử thách ACME. Các file này chứng minh rằng bạn đủ điều kiện để có được certificate cho các domain và domain phụ được yêu cầu.

Tệp thử thách ACME phải được phân phối trên web server đang nghe trên cổng 80 , tại đường dẫn /.well-known/acme-challenge/ cho domain hoặc domain phụ mà bạn đang certificate request . Ví dụ: để xác thực certificate request cho www. your-domain , file thử thách ACME cần phải truy cập được qua internet theo đường dẫn sau: http://www. your-domain /.well-known/acme-challenge .

Phương thức phân phát các file này tại các điểm đến được yêu cầu sẽ khác nhau đáng kể tùy thuộc vào cài đặt web server hiện tại của bạn. Tuy nhiên, trong hướng dẫn này, ta sẽ giả định bạn có một web server (theo hướng dẫn yêu cầu ) được cấu hình để phục vụ các file ngoài folder /var/www/html . Do đó, bạn có thể cần phải điều chỉnh tác vụ cho phù hợp để tương thích với cài đặt web server của bạn .

Trước tiên, hãy thêm tác vụ sau để tạo cấu trúc folder .well-known/acme-challenge/ cần thiết để cung cấp các file vào cuối playbook của bạn:

letsencrypt-issue.yml
...   - name: "Create .well-known/acme-challenge directory"     file:       path: /var/www/html/.well-known/acme-challenge       state: directory       owner: root       group: root       mode: u=rwx,g=rx,o=rx 

Đảm bảo điều chỉnh đường dẫn cho phù hợp nếu bạn đang sử dụng folder không phải /var/www/html để phân phát file với web server của bạn .

Tiếp theo, bạn sẽ triển khai các file thử thách ACME đã được lưu vào biến acme_challenge_ your-domain ở Bước 4 với tác vụ sau:

letsencrypt-issue.yml
...   - name: "Implement http-01 challenge files"     copy:       content: "{{ acme_challenge_your_domain['challenge_data'][item]['http-01']['resource_value'] }}"       dest: "/var/www/html/{{ acme_challenge_your_domain['challenge_data'][item]['http-01']['resource'] }}"       owner: root       group: root       mode: u=rw,g=r,o=r     with_items:     - "{{ domain_name }}"     - "www.{{ domain_name }}" 

Lưu ý bạn cần điều chỉnh thủ công tên biến acme_challenge_ your_domain trong tác vụ được đặt thành tên của biến thử thách ACME của bạn, domain này là acme_challenge_ theo sau là domain của bạn, nhưng với tất cả . các ký tự được thay thế bằng _ . Tác vụ Ansible này sao chép các file xác thực ACME từ biến vào đường dẫn .well-known/acme-challenge trên web server của bạn. Điều này sẽ cho phép Let's Encrypt truy xuất chúng để xác minh quyền sở hữu domain và tính đủ điều kiện của bạn để có được certificate .

Bạn sẽ tiếp tục làm việc trong letsencrypt-issue.yml trong bước tiếp theo, vì vậy đừng đóng file này.

Bạn đã viết các việc Ansible cần thiết để tạo file và folder xác thực ACME. Tiếp theo, bạn sẽ hoàn tất quá trình xác minh ACME và nhận được certificate đã ký.

Bước 6 - Lấy certificate của bạn

Trong bước này, bạn sẽ viết một nhiệm vụ để kích hoạt Let's Encrypt để xác minh các file thử thách ACME mà bạn đã gửi, điều này sẽ cho phép bạn lấy (các) certificate đã ký của bạn .

Tác vụ sau đây xác thực các file thử thách ACME mà bạn đã triển khai ở Bước 5 và lưu các certificate đã ký của bạn vào các đường dẫn được chỉ định. Thêm nó vào cuối playbook của bạn:

letsencrypt-issue.yml
...   - name: "Complete Let's Encrypt challenges"     letsencrypt:       acme_directory: "{{ acme_directory }}"       acme_version: "{{ acme_version }}"       account_key_src: "{{ letsencrypt_account_key }}"       account_email: "{{ acme_email }}"       challenge: "{{ acme_challenge_type }}"       csr: "{{ letsencrypt_csrs_dir }}/{{ domain_name }}.csr"       dest: "{{ letsencrypt_certs_dir }}/{{ domain_name }}.crt"       chain_dest: "{{ letsencrypt_certs_dir }}/chain_{{ domain_name }}.crt"       fullchain_dest: "{{ letsencrypt_certs_dir }}/fullchain_{{ domain_name }}"       data: "{{ acme_challenge_your_domain }}" 

Tương tự như Bước 4, tác vụ này sử dụng các biến mà bạn đã cấu hình ở Bước 1. Sau khi hoàn thành tác vụ, nó sẽ lưu certificate đã ký vào các đường dẫn được chỉ định, cho phép bạn bắt đầu sử dụng certificate đó cho ứng dụng hoặc dịch vụ của bạn .

Lưu ý bạn cần điều chỉnh thủ công giá trị data trong tác vụ được đặt thành tên của biến thử thách ACME của bạn, tương tự như Bước 5.

Sau đây là toàn bộ playbook hiển thị từng nhiệm vụ bạn đã thêm:

letsencrypt-issue.yml
- hosts: "host1"   tasks:    - name: "Create required directories in /etc/letsencrypt"     file:       path: "/etc/letsencrypt/{{ item }}"       state: directory       owner: root       group: root       mode: u=rwx,g=x,o=x     with_items:     - account     - certs     - csrs     - keys    - name: "Generate a Let's Encrypt account key"     shell: "if [ ! -f {{ letsencrypt_account_key }} ]; then openssl genrsa 4096 | sudo tee {{ letsencrypt_account_key }}; fi"    - name: "Generate Let's Encrypt private key"     shell: "openssl genrsa 4096 | sudo tee /etc/letsencrypt/keys/{{ domain_name }}.key"    - name: "Generate Let's Encrypt CSR"     shell: "openssl req -new -sha256 -key /etc/letsencrypt/keys/{{ domain_name }}.key -subj \"/CN={{ domain_name }}\" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf \"\n[SAN]\nsubjectAltName=DNS:{{ domain_name }},DNS:www.{{ domain_name }}\")) | sudo tee /etc/letsencrypt/csrs/{{ domain_name }}.csr"     args:       executable: /bin/bash    - name: "Begin Let's Encrypt challenges"     letsencrypt:       acme_directory: "{{ acme_directory }}"       acme_version: "{{ acme_version }}"       account_key_src: "{{ letsencrypt_account_key }}"       account_email: "{{ acme_email }}"       terms_agreed: 1       challenge: "{{ acme_challenge_type }}"       csr: "{{ letsencrypt_csrs_dir }}/{{ domain_name }}.csr"       dest: "{{ letsencrypt_certs_dir }}/{{ domain_name }}.crt"       fullchain_dest: "{{ letsencrypt_certs_dir }}/fullchain_{{ domain_name }}.crt"       remaining_days: 91     register: acme_challenge_your_domain    - name: "Create .well-known/acme-challenge directory"     file:       path: /var/www/html/.well-known/acme-challenge       state: directory       owner: root       group: root       mode: u=rwx,g=rx,o=rx    - name: "Implement http-01 challenge files"     copy:       content: "{{ acme_challenge_your_domain['challenge_data'][item]['http-01']['resource_value'] }}"       dest: "/var/www/html/{{ acme_challenge_your_domain['challenge_data'][item]['http-01']['resource'] }}"       owner: root       group: root       mode: u=rw,g=r,o=r     with_items:     - "{{ domain_name }}"     - "www.{{ domain_name }}"    - name: "Complete Let's Encrypt challenges"     letsencrypt:       acme_directory: "{{ acme_directory }}"       acme_version: "{{ acme_version }}"       account_key_src: "{{ letsencrypt_account_key }}"       account_email: "{{ acme_email }}"       challenge: "{{ acme_challenge_type }}"       csr: "{{ letsencrypt_csrs_dir }}/{{ domain_name }}.csr"       dest: "{{ letsencrypt_certs_dir }}/{{ domain_name }}.crt"       chain_dest: "{{ letsencrypt_certs_dir }}/chain_{{ domain_name }}.crt"       fullchain_dest: "{{ letsencrypt_certs_dir }}/fullchain_{{ domain_name }}"       data: "{{ acme_challenge_your_domain }}" 

Lưu file của bạn khi bạn hoàn tất.

Bạn đã thêm nhiệm vụ để hoàn thành các thử thách ACME và có được certificate đã ký của bạn . Tiếp theo, bạn sẽ chạy playbook với server Ansible của bạn để chạy tất cả các hành động.

Bước 7 - Chạy Playbook của bạn

Đến đây bạn đã viết playbook và tất cả các việc bắt buộc, bạn có thể chạy nó trên server Ansible của bạn để cấp certificate .

Từ server Ansible của bạn , bạn có thể chạy playbook bằng lệnh ansible-playbook :

  • ansible-playbook letsencrypt-issue.yml

Thao tác này sẽ chạy playbook, từng tác vụ một. Bạn sẽ thấy kết quả tương tự như sau:

Output
PLAY [host1] ********************************************************************************** TASK [Gathering Facts] ************************************************************************ ok: [host1] TASK [Create required directories in /etc/letsencrypt] **************************************** changed: [host1] => (item=account) changed: [host1] => (item=certs) changed: [host1] => (item=csrs) changed: [host1] => (item=keys) TASK [Generate a Let's Encrypt account key] *************************************************** changed: [host1] TASK [Generate Let's Encrypt private key] ***************************************************** changed: [host1] TASK [Generate Let's Encrypt CSR] ************************************************************* changed: [host1] TASK [Begin Let's Encrypt challenges] ********************************************************* changed: [host1] TASK [Create .well-known/acme-challenge directory] ******************************************** changed: [host1] TASK [Implement http-01 challenge files] ****************************************************** changed: [host1] => (item=your-domain) changed: [host1] => (item=www.your-domain) TASK [Complete Let's Encrypt challenges] ****************************************************** changed: [host1] PLAY RECAP ************************************************************************************ host1 : ok=9 changed=8 unreachable=0 failed=0

Nếu gặp bất kỳ lỗi nào trong khi playbook đang chạy, chúng sẽ được xuất ra để bạn xem xét.

Sau khi playbook kết thúc, certificate Let's Encrypt hợp lệ của bạn sẽ được lưu vào folder /etc/letsencrypt/certs trên server của bạn. Sau đó, bạn có thể sử dụng khóa này, cùng với private key trong /etc/letsencrypt/keys , để bảo mật kết nối với web server , server thư, v.v.

Chứng chỉ Let's Encrypt có giá trị trong 90 ngày theo mặc định. Bạn sẽ nhận được dấu nhắc gia hạn qua email đến địa chỉ mà bạn đã chỉ định ở Bước 1. Để gia hạn certificate , bạn có thể chạy lại playbook. Đảm bảo kiểm tra kỹ xem bất kỳ dịch vụ nào sử dụng certificate của bạn đã nhận được certificate mới chưa, vì đôi khi bạn có thể cần phải cài đặt thủ công nó, di chuyển nó vào một folder cụ thể hoặc khởi động lại dịch vụ để nó áp dụng đúng certificate mới.

Trong bước này, bạn đã chạy playbook của bạn để cấp certificate Let's Encrypt hợp lệ.

Kết luận

Trong bài viết này, bạn đã viết một playbook Ansible để yêu cầu và có được certificate Let's Encrypt hợp lệ.

Bước tiếp theo, bạn có thể xem xét việc sử dụng playbook mới của bạn để cấp certificate cho một group server lớn. Bạn thậm chí có thể tạo một server xác thực ACME trung tâm có thể cấp certificate một cách tập trung và phân phối chúng đến các web server .

Cuối cùng, nếu bạn muốn tìm hiểu thêm về đặc tả ACME và dự án Let's Encrypt, bạn có thể cần xem lại các liên kết sau:

Bạn cũng có thể cần xem một số hướng dẫn Ansible có liên quan khác:


Tags:

Các tin liên quan

Cách cài đặt MongoDB trên Ubuntu 16.04
2019-10-13
Cách thêm và xóa người dùng trên Ubuntu 18.04
2019-09-12
Cách cài đặt và bảo mật Grafana trên Ubuntu 18.04
2019-09-05
Cách nhúng một ứng dụng React vào WordPress trên Ubuntu 18.04
2019-08-27
Cách cài đặt và cấu hình Laravel với LEMP trên Ubuntu 18.04
2019-08-01
Cách triển khai và quản lý DNS của bạn bằng OctoDNS trên Ubuntu 18.04
2019-07-23
Cách thiết lập hệ thống bàn trợ giúp với OTRS trên Ubuntu 18.04
2019-06-28
Cách triển khai và quản lý DNS của bạn bằng DNSControl trên Ubuntu 18.04
2019-06-26
Cách cấu hình Cụm Galera với MariaDB trên server Ubuntu 18.04
2019-06-20
Cách backup thư mục lớn với Unison trên Ubuntu 18.04
2019-05-21