Gia hạn tên miền bằng certbot và sử dụng thử thách DNS


9

Tôi đã tạo một số chứng chỉ SSL cho một số tên miền bằng phương pháp độc lập. Tôi chỉ quan tâm đến các chứng chỉ, không tích hợp máy chủ.

Bây giờ họ đang đổi mới. Vì vậy, tôi đã chạy:

certbot -d example.com --manual --preferred-challenges dns certonly

Và làm theo hướng dẫn cho từng tên miền (thêm mục nhập DNS cần thiết cho mỗi tên miền). Bằng cách này, tôi đã không phải dừng máy chủ và nhận chứng chỉ mới.

Sự hiểu biết (mơ hồ) của tôi về tất cả là không có cách nào hiện tại để tự động gia hạn chứng chỉ bằng cách sử dụng thử thách DNS. Hoặc có thể bạn không thể tự động gia hạn chứng chỉ cho phương pháp "thủ công"?

Dù sao, tôi, đã viết kịch bản này:

#!/bin/bash

for i in renewal/*;do
  n=${i:8:-5};
  echo $n;
  # echo "\n" | certbot --text --agree-tos -d $n --manual --preferred-challenges dns --expand --renew-by-default  --manual-public-ip-logging-ok certonly;
done

Tại thời điểm này, trong renewalthư mục TẤT CẢ các tên miền có:

xác thực = thủ công

Và:

pref_challs = dns-01

Câu hỏi:

  • Bây giờ ... khi tôi chạy "certbot refresh", nó có tự động gia hạn tất cả chúng mà không cần sử dụng tập lệnh của tôi không?

  • Làm cách nào để tôi thực sự tạo chứng chỉ mới bằng thử thách DNS để bắt đầu?

Câu trả lời:


4

Cập nhật câu trả lời (xem câu trả lời gốc bên dưới)

Trong câu trả lời ban đầu của tôi, tôi tập trung vào thực tế là tập lệnh bạn cung cấp không bắt buộc khi sử dụng renewlệnh. Tuy nhiên, tôi không chắc chắn rằng renewlệnh thực sự được áp dụng trong kịch bản này.

Vì cdhowie và bobpaul ở trạng thái bình luận: certbot renewlà chế độ không tương tác - kết hợp với thử thách dns - yêu cầu bạn cung cấp tập lệnh thông qua --manual-auth-hooktham số. Kịch bản đã nói phải có khả năng thiết lập một TXTbản ghi. Bạn cũng có thể cung cấp một tập lệnh khác để dọn dẹp sau đó thông qua --manual-cleanup-hooktham số.

Nếu bạn cung cấp các tham số này, toàn bộ quá trình sẽ tự động chạy mà không có bất kỳ tương tác nào.

Nếu bạn không cung cấp các tham số này, certbot sẽ thất bại:

/opt/certbot # certbot renew --force-renewal
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/foobar.w9f.de.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Could not choose appropriate plugin: The manual plugin is not working; there may be problems with your existing configuration.
The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.',)

Nếu bạn muốn làm mới chứng chỉ của mình thông qua chế độ thủ công, bạn phải chạy lại các lệnh bạn đã sử dụng để lấy chứng chỉ. Trong trường hợp này, tập lệnh của bạn là một tùy chọn tốt vì certonlylệnh không xem xét các chứng chỉ / cấu hình hiện tại và thay vào đó yêu cầu bạn cung cấp tên miền thông qua -dtham số hoặc trong chế độ tương tác.


Khi tôi chạy "certbot refresh", nó có tự động gia hạn tất cả chúng mà không cần sử dụng tập lệnh của tôi không?

TL; DR: Vâng, nó nên.

Hãy để chúng tôi xem tài liệu của certbot :

Kể từ phiên bản 0.10.0, Certbot hỗ trợ hành động gia hạn để kiểm tra tất cả các chứng chỉ đã cài đặt để biết sắp hết hạn và cố gắng làm mới chúng. Hình thức đơn giản nhất là đơn giản

gia hạn certbot

Càng xa càng tốt.

Lệnh này cố gắng gia hạn mọi chứng chỉ đã đạt được trước đó hết hạn sau chưa đầy 30 ngày.

Điêu nay co thể trả lơi câu hỏi của bạn. Chú ý: Tôi không biết làm thế nào certbotcó thể xử lý tốt các tình huống khi bạn di chuyển chứng chỉ đến các thư mục khác nhau.

Sau đó trong cùng một đoạn:

Các plugin và tùy chọn tương tự được sử dụng tại thời điểm chứng chỉ ban đầu được cấp sẽ được sử dụng cho lần thử gia hạn, trừ khi bạn chỉ định các plugin hoặc tùy chọn khác. Không giống như certonly, renewhành động trên nhiều chứng chỉ và luôn luôn tính đến việc mỗi chứng chỉ sắp hết hạn.

Vì vậy, có; certbotnên gia hạn tất cả các chứng chỉ của bạn mà không cần sự trợ giúp của tập lệnh của bạn.


Làm cách nào để tôi thực sự tạo chứng chỉ mới bằng thử thách DNS để bắt đầu?

Có gì sai với lệnh bạn đã đăng ở đầu bài viết của bạn? certbot -d example.com --manual --preferred-challenges dns certonlysẽ có được một chứng chỉ cho example.com bằng cách sử dụng thử thách dns.

Các bước để tạo chứng chỉ là:

  • Chạy certbotlệnh bạn đã đăng
  • Đợi lệnh hiển thị cho bạn bản ghi DNS TXT
  • Tạo bản ghi TXT đó
  • Tiếp tục certbotlệnh
  • Nhận chứng chỉ cho tên miền được chỉ định
  • Xóa bản ghi TXT (vì bạn chỉ cần nó để tạo và một bản ghi mới để gia hạn)

Nếu bạn muốn tự động hóa quá trình hoàn chỉnh đó, bạn có thể muốn xem một công cụ như lego hỗ trợ một vài nhà cung cấp DNS .


Tuyệt vời, sẽ cho bạn biết nếu nó hoạt động trong một vài tháng!
Merc


Vâng, vì vậy thường không sử dụng --manual. Toàn bộ mục đích --manuallà để buộc chế độ tương tác. Nhưng bạn có thể sử dụng các plugin DNS như aws hoặc digitalocean certonlymà không có --manualtùy chọn và chúng sẽ tự động gia hạn trước 90 ngày.
bobpaul

Cảm ơn cho đầu vào, tôi đã cập nhật câu trả lời.
malte
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.