Obtain and renew certificates automatically with ACME
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- go
- Lĩnh vực
- backend-api-design, security
Hướng nghiên cứu
Start with cmd/fanout/main.go, internal/server/http.go, and internal/config/config.go to trace TLS configuration and how the HTTP, MCP, OTLP/HTTP, and gRPC services share the listener. Check the existing TLS tests and identify how to run a local ACME test server. Done means the acceptance criteria pass, including renewal, error handling, and the documentation updates.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
What
Direct TLS requires bringing your own certificate today, so most public installs need Caddy or nginx in front. Add built-in ACME so one setting gives a single binary real HTTPS.
Use golang.org/x/crypto/acme/autocert with the TLS-ALPN-01 challenge, which runs on the existing port 443 listener and needs no port 80. Settings are something like FANOUT_TLS_ACME_DOMAIN and FANOUT_TLS_ACME_EMAIL. Certificates are cached under the data directory.
Acceptance criteria
- With the ACME settings and a publicly reachable
:443, Fanout obtains a certificate and serves HTTPS, API, MCP, OTLP/HTTP, and gRPC on the one listener - Certificates renew with no restart and no dropped connections
- The host policy accepts only the configured domain
- The cached account key and certificates are stored with owner-only permissions and survive restarts
- Startup fails with an error naming the settings when ACME is combined with
FANOUT_TLS_CERT_FILE,FANOUT_TLS_KEY_FILE, orFANOUT_TLS_CLIENT_CA_FILE; requiring client certificates would fail the ACME challenge handshake - Startup fails with a clear error when the listener is not on port 443
- A failed issuance is logged with the reason and retried with backoff, without rate-limit loops
- Tests run against a local ACME test server, with no calls to a public certificate authority
- Configuration reference, TLS guide, and backup docs updated, including that the cache belongs to the data directory
References
cmd/fanout/main.gointernal/server/http.gointernal/config/config.gosite/src/content/docs/docs/guides/tls.mdx- RFC 8737: ACME TLS-ALPN-01
One pull request. Use the latest stable version of any dependency added, verified against its registry and pinned exactly.
- Ngôn ngữ chính
- Go
- Star
- 11
- Fork
- 0
- Merge trung bình
- 7 giờ 5 phút
- Pull request đã merge (30 ngày)
- 112
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của labstack/fanout
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 58/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 57/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của labstack/fanout
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
tomasz-tomczyk/crit#1159 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
SelectOneHealthyInstance panics when instance weights are fractional (e.g. 0.5)Có thể đã có người làm @Ajax-1 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
nacos-group/nacos-sdk-go#929 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
google/osv-scanner#3270 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Batch JSON validation reports the wrong input indexCó thể đã có người làm @Dazhou-del đã nhận hôm nay. Đang mởtype/bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
gin-gonic/gin#4928 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 6 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày