🔒 Chứng chỉ SSL cho địa chỉ IP
- HTTPS cho mọi địa chỉ IP: Nhận chứng chỉ SSL qua Let's Encrypt cho bất kỳ địa chỉ IP nào
- Được xác thực bởi các trình duyệt: Tất cả các chứng chỉ được xác nhận chính thức, không có lỗi trên trình duyệt
- Không cần cấu hình: Không cần cấu hình DNS hoặc máy chủ SSL
- Cập nhật tự động: Chứng chỉ được cập nhật tự động
🔧 Cách thức hoạt động
Không thể trực tiếp nhận chứng chỉ SSL cho địa chỉ IP: các trung tâm chứng nhận (bao gồm Let's Encrypt) không cấp chứng chỉ cho các địa chỉ IP thô. Dịch vụ DNSBox giải quyết vấn đề này — bạn nhận được chứng chỉ SSL miễn phí cho bất kỳ địa chỉ IP công cộng nào trong vài giây, mà không cần cấu hình tên miền hoặc DNS riêng.
Chúng tôi tự động thay đổi DNS và thực hiện xác thực ACME, cấp chứng chỉ từ Let's Encrypt qua tên miền con dạng 123.123.123.123.dnsbox.io
. Hỗ trợ cả IPv4 và IPv6. Mọi thứ hoạt động ngay lập tức — chỉ cần truy cập vào địa chỉ IP cần thiết qua HTTPS thông qua DNSBox.
DNSBox tự động ánh xạ các địa chỉ IP với tên miền. Chỉ cần mã hóa IP trong tên miền con:
- IPv4:
1.2.3.4.dnsbox.io
→1.2.3.4
- IPv6:
2a01-4f8-c17-b8f--1.dnsbox.io
→2a01:4f8:c17:b8f::1
- HTTPS: Nhận chứng chỉ SSL hợp lệ qua Let's Encrypt
- WebSocket: Hỗ trợ đầy đủ (các tiêu đề Upgrade được giữ nguyên)
🎯 Kịch bản sử dụng
DNSBox là công cụ đa năng giúp bạn truy cập nhanh vào các địa chỉ IP thông qua DNS và HTTPS, không cần cấu hình phức tạp:
- Phát triển và kiểm thử web: Tạo các tên miền tạm thời cho các máy chủ nội bộ và từ xa. Hoàn hảo để trình diễn dự án cho khách hàng và kiểm thử mà không cần thay đổi các bản ghi DNS.
- Internet of Things (IoT): Đảm bảo truy cập ổn định vào các thiết bị IoT trong các mạng động thông qua tên miền cố định. Đơn giản hóa việc quản lý và giám sát thiết bị.
- Máy chủ tạm thời: Nhận tên miền ngay lập tức cho các buổi trình diễn và dự án tạm thời. Tiết kiệm thời gian mà không cần mua và cấu hình các tên miền riêng.
- Sử dụng doanh nghiệp: Triển khai nút DNSBox của riêng bạn để có toàn quyền kiểm soát các bản ghi DNS và chứng chỉ SSL. Đảm bảo an toàn và bảo mật dữ liệu.
🌍 Tại sao nên sử dụng DNSBox để nhận SSL cho IP?
- ✨ Không cần sở hữu hoặc cấu hình tên miền
- ✨ Cấp chứng chỉ SSL từ Let's Encrypt mà không cần tên miền
- ✨ Hỗ trợ tất cả các IP (IPv4 và IPv6), không cần địa chỉ tĩnh
- ✨ Tự động cấu hình DNS và HTTPS
- ✨ Nhanh chóng, đáng tin cậy, công khai và phù hợp cho production
- ✨ Lý tưởng cho API, CI/CD, DevOps, máy chủ tạm thời và VPN
❓ Câu hỏi thường gặp
- DNSBox làm gì? DNSBox cho phép bạn nhận chứng chỉ SSL miễn phí cho bất kỳ địa chỉ IP nào — ngay cả khi bạn không có tên miền. Bạn chỉ cần sử dụng subdomain theo định dạng 123.123.123.123.dnsbox.io và chúng tôi sẽ tự động cấp và duy trì chứng chỉ.
- Làm thế nào để sử dụng DNSBox? Chỉ cần thay thế IP của bạn trong URL thành
IP.dnsbox.io
. Ví dụ: https://167.172.5.205.dnsbox.io Chúng tôi sẽ tự động cấu hình DNS và chứng chỉ — bạn không cần làm gì cả. - Liệu tôi có thể sử dụng DNSBox để nhận HTTPS cho địa chỉ IP mà không có tên miền? Có. Đây chính là nhiệm vụ của DNSBox — bạn nhận chứng chỉ SSL cho địa chỉ IP mà không cần sở hữu tên miền. Chỉ cần sử dụng subdomain dạng của
IP.dnsbox.io
và chúng tôi sẽ thực hiện xác thực ACME tự động qua Let's Encrypt. - Điều này có an toàn không? Có. Chúng tôi sử dụng Let's Encrypt và mã hóa kết nối qua HTTPS. Bạn cũng có thể tự kiểm tra chứng chỉ đã nhận.
- Điều này có miễn phí không? Có, cho việc sử dụng công khai — và mã nguồn là mở.
- DNSBox hỗ trợ với những IP nào? Hỗ trợ tất cả các địa chỉ IP công khai IPv4 và IPv6.
- Vậy nếu tôi có IP động thì sao? Bạn vẫn có thể sử dụng DNSBox, nhưng chứng chỉ chỉ có hiệu lực đối với IP mà bạn chỉ định. Đối với các địa chỉ động, chúng tôi khuyến khích sử dụng dịch vụ DDNS.
- Chứng chỉ có hiệu lực trong bao lâu? Chứng chỉ của Let's Encrypt có hiệu lực trong 90 ngày, và chúng tôi sẽ tự động gia hạn.
- Tôi có thể sử dụng DNSBox trong môi trường production không? Có. DNSBox được thiết kế cho các trường hợp production: CI/CD, API công khai, trang web một trang, thiết bị IoT — tất cả những gì yêu cầu HTTPS cho địa chỉ IP.
- Tôi có cần phải đăng ký không? Không. Mọi thứ hoạt động mà không cần tài khoản.
- Điều gì sẽ xảy ra nếu máy chủ của tôi không phản hồi hoặc bị tắt? Nếu không thể kết nối với địa chỉ IP trong *.dnsbox.io, trình duyệt sẽ hiển thị lỗi mặc định. DNSBox sẽ tiếp tục phục vụ chứng chỉ và nó sẽ hoạt động lại khi máy chủ trở lại khả dụng.
- Xác minh IP hoạt động như thế nào trước khi cấp chứng chỉ? Chúng tôi sử dụng xác thực DNS qua subdomain. Hệ thống DNSBox quản lý vùng DNS của dnsbox.io, vì vậy có thể nhanh chóng thiết lập các bản ghi TXT cần thiết cho Let's Encrypt.
- Có thể sử dụng DNSBox với các IP nội bộ hoặc IP riêng tư (ví dụ: 192.168.0.1) không? Không. Dịch vụ chỉ hoạt động với các địa chỉ IP công khai có thể truy cập từ Internet.
- Mã nguồn ở đâu? Xem trên GitHub
🧪 Muốn triển khai tự động?
DNSBox cho phép bạn nhận chứng chỉ SSL cho địa chỉ IP mà không cần mua tên miền hoặc cấu hình DNS — bạn có thể sử dụng các tên miền phụ dạng IP.dnsbox.io
, và mọi thứ sẽ hoạt động ngay lập tức.
Tuy nhiên, nếu bạn muốn một phiên bản độc lập hoàn toàn, tự quản lý các bản ghi DNS và chứng chỉ của mình, bạn sẽ cần cấu hình hạ tầng thủ công:
Những gì bạn cần cho triển khai tự quản:
1. ✅ Mua tên miền (ví dụ: example.com
).
2. 🖥 Thuê ít nhất hai máy chủ với địa chỉ IP tĩnh công khai — chúng sẽ hoạt động như các máy chủ NS.
3. 🛠 Tạo bản ghi NS tại nhà đăng ký, trỏ đến các IP này. Ví dụ:
ns1.example.com → 167.172.5.205
ns2.example.com → 134.199.248.116
4. 🚀 Cài đặt DNSBox trên mỗi máy chủ, chỉ định các tham số chính xác:
bash <(curl -sSL https://install.dnsbox.io) \
--ip=167.172.5.205 \
--domain=example.com \
--ns=ns1
Giải thích các tham số:
--ip
— địa chỉ IP công khai của máy chủ hiện tại (cũng là địa chỉ trong bản ghi NS).--domain
— tên miền gốc, ví dụ example.com
.--ns
— tên của máy chủ NS hiện tại (ns1
, ns2
, v.v.).
Thêm vào đó:
--force-resolv
— tắt systemd-resolved (nếu cổng 53 bị chiếm dụng).--debug
— kích hoạt ghi lại thông tin chi tiết (DNSBOX_DEBUG=true
).
📌 Sau khi cài đặt, DNSBox của bạn sẽ:
- hoạt động như một máy chủ NS có thẩm quyền,
- xử lý các yêu cầu DNS,
- tự động nhận chứng chỉ SSL cho địa chỉ IP từ Let's Encrypt,
- mở quyền truy cập HTTPS và WSS mà không cần phụ thuộc vào các tên miền phụ
dnsbox.io
.
💡 Giải pháp này lý tưởng nếu bạn:
- muốn kiểm soát hoàn toàn hạ tầng của mình,
- triển khai API, dịch vụ phát triển hoặc VPN trên IP 'trần',
- tạo các dự án tự động mà cần HTTPS mà không có tên miền.
🔗 Tìm hiểu mã nguồn và tài liệu tại:
github.com/crypto-chiefs/dnsbox
✅ Cách kiểm tra xem mọi thứ đã hoạt động chưa
Sau khi cài đặt DNSBox, bạn cần xác nhận rằng Chứng chỉ SSL cho địa chỉ IP của bạn đã được cấp và có thể truy cập qua HTTPS. Dưới đây là hướng dẫn cho hai kịch bản: sử dụng các tên miền phụ IP.dnsbox.io
và triển khai tự động.
1. Nếu bạn sử dụng IP.dnsbox.io
DNSBox tự động tạo DNS và proxy HTTPS cho địa chỉ IP của bạn, vì vậy mọi thứ sẽ hoạt động mà không cần cài đặt thêm.
Kiểm tra bản ghi DNS:
dig +short 167.172.5.205.dnsbox.io
Dự kiến phản hồi là địa chỉ IP của một trong các máy chủ NS của DNSBox (ví dụ: 167.172.5.205
, nếu được chỉ định khi cài đặt).
Kiểm tra HTTPS trong trình duyệt:
https://167.172.5.205.dnsbox.io
🔒 Trình duyệt phải hiển thị kết nối an toàn với chứng chỉ hợp lệ từ Let's Encrypt.
2. Nếu bạn triển khai DNSBox tự động
Trong trường hợp này, bạn quản lý cơ sở hạ tầng của riêng mình: tên miền, bản ghi NS và các máy chủ DNSBox. Hãy kiểm tra xem mọi thứ có hoạt động đúng hay không:
Kiểm tra bản ghi NS của tên miền:
dig NS example.com
Hãy chắc chắn rằng các bản ghi NS trả về ns1.example.com.
, ns2.example.com.
v.v.
Kiểm tra địa chỉ IP của các máy chủ NS:
dig A ns1.example.com
dig A ns2.example.com
Phản hồi phải chứa địa chỉ IP thực tế của các máy chủ VPS của bạn.
Kiểm tra vùng qua một máy chủ NS cụ thể:
dig @167.172.5.205 A example.com
Hãy chắc chắn rằng tên miền phân giải đến địa chỉ IP mong muốn.
📌 Nếu có lỗi xảy ra, hãy chắc chắn rằng DNS hoạt động, các bản ghi NS chính xác, và DNSBox đang chạy trên tất cả các máy chủ NS.
⚙️ Chi tiết kỹ thuật
Triển khai cơ bản
- Được viết bằng Go mà không có phụ thuộc bên ngoài ở cấp độ HTTP/DNS
- Sử dụng miekg/dns cho máy chủ DNS riêng
- DNS tích hợp (UDP + TCP trên cổng 53), HTTPS (:443) và REST API (:80)
- Một tệp nhị phân và unit systemd — phù hợp cho máy chủ, VPS và edge-node
DNS và định tuyến
Phân tích IP từ tên miền:
1.2.3.4.dnsbox.io
→1.2.3.4
2a01-4f8-c17-b8f--1.dnsbox.io
→2a01:4f8:c17:b8f::1
(где -- → ::, - → :)
Các loại yêu cầu DNS được hỗ trợ:
- A, AAAA: Địa chỉ IP từ tên miền
- TXT: Lưu trữ và sao chép thách thức ACME
- NS, SOA, SRV: Được tạo động (bao gồm khám phá peer)
- CNAME, MX, TXT: Có thể được chỉ định thủ công thông qua custom_domains.txt
Mô-đun customdns
- Cho phép thêm các bản ghi A, CNAME, MX, TXT, AAAA qua custom_domains.txt
- Tệp được nhúng như embed.FS, không yêu cầu công cụ quản lý cấu hình bên ngoài
- Hoạt động song song với việc tạo ra từ IP
TLS và HTTPS
- Cấp chứng chỉ tự động từ Let's Encrypt qua dns-01
- Bản ghi TXT được lưu trữ cục bộ và đồng bộ qua REST API giữa các nút
- Mã hóa chứng chỉ giữa các nút: ECDH tạm thời (X25519) + AES-GCM
- Chứng chỉ được lưu trữ trong /var/lib/dnsbox/certs và tự động xác minh với mỗi yêu cầu
WebSocket
- Hỗ trợ Connection: Upgrade + Upgrade: websocket
- Hoạt động với tất cả các khách hàng wss://, bao gồm trình duyệt và công cụ CLI
Bảo mật và hạn chế
- Chặn IP qua blacklist.txt (hỗ trợ IPv4, IPv6 và CIDR)
- Không trả lời HTTPS và DNS cho các địa chỉ bị chặn
- Tất cả các giao tiếp peer sử dụng khóa tạm thời và mã hóa giao tiếp
Triển khai và cấu hình
-
Quản lý qua các biến môi trường:
- DNSBOX_DOMAIN
- DNSBOX_IP
- DNSBOX_NS_NAME
- DNSBOX_DEBUG
- Cài đặt bằng một lệnh curl | bash, cài đặt unit systemd
- Hỗ trợ cờ --force-resolv để tắt systemd-resolved
- Hỗ trợ cờ --debug để bật tất cả các log
Cách nhận chứng chỉ SSL cho địa chỉ IP
Các CA thông thường (các tổ chức chứng nhận) không cấp chứng chỉ cho địa chỉ IP trực tiếp. DNSBox là một dịch vụ độc đáo giúp vượt qua giới hạn này bằng cách sử dụng thay thế DNS động. Sử dụng tên miền phụ theo định dạng IP.dnsbox.io
, và chúng tôi sẽ thực hiện xác thực qua Let's Encrypt, cấp chứng chỉ HTTPS hợp lệ.
Đây là giải pháp lý tưởng nếu bạn cần SSL cho máy chủ theo IP, HTTPS cho API mà không có tên miền, hoặc bạn làm việc với IoT, môi trường thử nghiệm, các đường hầm, nơi không thể đăng ký tên miền.