Tên miền riêng cho GitHub Pages: cấu hình DNS, CNAME và HTTPS
Cách trỏ tên miền riêng về GitHub Pages: bản ghi DNS cho apex và www, tệp CNAME dùng để làm gì, xác minh tên miền và bật HTTPS từng bước.
Câu hỏi thường gặp
Tôi dùng địa chỉ IP nào cho tên miền apex của GitHub Pages?
Tài liệu của GitHub (kiểm tra tháng 11/2026) liệt kê bốn bản ghi A cho host apex (@): 185.199.108.153, 185.199.109.153, 185.199.110.153 và 185.199.111.153. Nếu muốn dùng thêm IPv6, hãy thêm bốn bản ghi AAAA: 2606:50c0:8000::153, 2606:50c0:8001::153, 2606:50c0:8002::153 và 2606:50c0:8003::153. GitHub khuyến nghị giữ các bản ghi A song song với bản ghi AAAA. Hãy đối chiếu với tài liệu trước khi sao chép, vì GitHub có thể thay đổi các giá trị này.
Tôi có cần tệp CNAME trong kho mã (repository) không?
Chỉ khi bạn xuất bản từ một nhánh (branch). Khi đó, việc lưu tên miền riêng trong Settings > Pages sẽ tự động commit một tệp CNAME vào thư mục gốc của nhánh nguồn. Nếu bạn xuất bản bằng workflow GitHub Actions tùy chỉnh, GitHub cho biết sẽ không có tệp CNAME nào được tạo, và tệp CNAME có sẵn (nếu có) sẽ bị bỏ qua và không bắt buộc.
Vì sao ô Enforce HTTPS bị mờ, không tick được?
GitHub cho biết có thể mất tới 24 giờ sau khi bạn thêm tên miền thì tùy chọn này mới khả dụng. Chứng chỉ được cấp tự động, nên nguyên nhân thường gặp khiến ô này bị kẹt là DNS chưa cập nhật xong, hoặc có thêm bản ghi thừa, chẳng hạn bản ghi A, AAAA, ALIAS hay ANAME bổ sung trên apex, hoặc bản ghi CNAME của www trỏ đến nơi khác ngoài GitHub. GitHub cũng lưu ý tên miền phải dưới 64 ký tự. Nếu vẫn kẹt, hãy bấm Remove (Xóa) cạnh tên miền, nhập lại và lưu lần nữa.
Nên dùng tên miền apex hay www?
GitHub khuyến nghị dùng www. Tài liệu của GitHub nêu rằng tên miền con www là loại tên miền riêng ổn định nhất vì không bị ảnh hưởng khi GitHub thay đổi địa chỉ IP máy chủ. Dù bạn đặt cái nào làm tên miền riêng, GitHub sẽ chuyển hướng cái còn lại về đó, miễn là DNS của cả hai đều trỏ về GitHub Pages.
Tên miền riêng của GitHub Pages mất bao lâu thì hoạt động?
GitHub cho biết thay đổi DNS có thể mất tới 24 giờ để cập nhật. Thực tế nhiều bản ghi có hiệu lực sớm hơn, nhưng bạn nên chờ khoảng một ngày trước khi kết luận là có lỗi.
Dùng bản ghi DNS wildcard cho GitHub Pages có an toàn không?
GitHub đặc biệt khuyến cáo không dùng bản ghi wildcard như *.example.com. Tài liệu của GitHub nêu rằng chúng khiến bạn có nguy cơ bị chiếm quyền tên miền ngay lập tức, kể cả khi bạn đã xác minh tên miền. Thay vào đó, hãy tạo bản ghi riêng cho từng tên miền con bạn thực sự dùng.
Trả lời nhanh: Trong repository, vào Settings > Pages, nhập tên miền của bạn vào ô Custom domain (Tên miền riêng) rồi lưu. Sau đó, tại nhà cung cấp DNS, trỏ www về <username>.github.io bằng bản ghi CNAME, và trỏ tên miền gốc (example.com) về GitHub bằng bốn bản ghi A. Khi GitHub cấp xong chứng chỉ, hãy tick Enforce HTTPS. Toàn bộ quy trình chỉ gồm một thiết lập trong repo và vài bản ghi DNS. Phần lớn sự chậm trễ đến từ việc DNS cập nhật, mà theo GitHub có thể mất tới 24 giờ.
Mọi nội dung dưới đây đã được đối chiếu với tài liệu chính thức của GitHub vào tháng 11/2026. Giá trị DNS là phần dễ thay đổi nhất, vì vậy hãy kiểm tra lại trên tài liệu tên miền riêng của GitHub Pages trước khi sao chép.
Chọn loại tên miền trước
| Bạn muốn khách truy cập vào | Đặt làm tên miền riêng | Bản ghi DNS cần có | Ghi chú |
|---|---|---|---|
www.example.com | www.example.com | CNAME cho www trỏ đến <username>.github.io, cộng với các bản ghi A trên apex | Cách thiết lập GitHub khuyến nghị. example.com sẽ chuyển hướng về www. |
example.com | example.com | Các bản ghi A trên apex (hoặc một bản ghi ALIAS/ANAME), cộng với CNAME cho www | www.example.com sẽ chuyển hướng về apex. |
blog.example.com | blog.example.com | CNAME cho blog trỏ đến <username>.github.io | Không cần bản ghi apex. |
Tài liệu của GitHub nêu rằng tên miền con www là lựa chọn ổn định nhất vì không bị ảnh hưởng khi GitHub đổi địa chỉ IP máy chủ. Nếu không có lý do đặc biệt để dùng tên miền gốc, hãy chọn www. Nếu bạn vẫn đang cân nhắc nơi đăng ký tên miền, bài so sánh nhà đăng ký tên miền của chúng tôi điểm qua các lựa chọn, còn chi phí một tên miền giải thích về giá gia hạn.
Từng bước: kết nối tên miền
- Thêm tên miền trong GitHub. Mở repository, bấm Settings, rồi chọn Pages (trong mục "Code, planning, and automation"). Nếu không thấy tab Settings, hãy tìm trong menu thả xuống "More". Nhập tên miền vào ô Custom domain và bấm Save.
- Kiểm tra GitHub đã làm gì với repo của bạn. Nếu bạn xuất bản từ một nhánh, GitHub sẽ commit một tệp
CNAMEvào thư mục gốc của nhánh đó. Nếu bạn xuất bản bằng workflow GitHub Actions tùy chỉnh, sẽ không có tệp CNAME nào được tạo, và tệp có sẵn (nếu có) sẽ bị bỏ qua. - Xóa các bản ghi DNS mặc định. Nếu nhà cung cấp DNS đã tự tạo bản ghi đỗ (parking) hoặc bản ghi mặc định cho host bạn sắp dùng, hãy xóa chúng trước.
- Tạo các bản ghi DNS tại nhà cung cấp DNS (xem phần tiếp theo).
- Chờ DNS cập nhật. GitHub cho biết tối đa 24 giờ. Bạn có thể theo dõi tiến độ từ terminal bằng lệnh
dig www.example.com +noall +answer. - Bật Enforce HTTPS khi tùy chọn này khả dụng (xem bên dưới).
Thứ tự không quan trọng như bạn nghĩ
Bạn có thể tạo bản ghi DNS trước hoặc sau khi lưu tên miền trong GitHub. Rủi ro nằm ở việc để DNS trỏ về GitHub Pages trong khi tên miền chưa được repo nào đứng ra nhận. GitHub cảnh báo rằng cấu hình DNS mà không thêm tên miền vào GitHub có thể khiến người khác dựng trang web trên một trong các tên miền con của bạn. Vì vậy hãy lưu tên miền trong GitHub trước, rồi mới làm DNS.
Các bản ghi DNS
www hoặc bất kỳ tên miền con nào: một bản ghi CNAME
| Loại | Host | Giá trị |
|---|---|---|
| CNAME | www | <username>.github.io |
Hãy dùng tên người dùng hoặc tên tổ chức của bạn, không kèm tên repository. GitHub đặc biệt lưu ý không trỏ CNAME về địa chỉ *.pages.github.io riêng hiển thị trong phần cài đặt repository.
Tên miền apex: bốn bản ghi A (kiểm tra tháng 11/2026)
| Loại | Host | Giá trị |
|---|---|---|
| A | @ | 185.199.108.153 |
| A | @ | 185.199.109.153 |
| A | @ | 185.199.110.153 |
| A | @ | 185.199.111.153 |
Tùy chọn thêm IPv6, nếu bạn muốn, dưới dạng bản ghi AAAA trên @:
| Loại | Host | Giá trị |
|---|---|---|
| AAAA | @ | 2606:50c0:8000::153 |
| AAAA | @ | 2606:50c0:8001::153 |
| AAAA | @ | 2606:50c0:8002::153 |
| AAAA | @ | 2606:50c0:8003::153 |
GitHub khuyến nghị vẫn thêm các bản ghi A dù bạn đã thêm bản ghi AAAA, vì IPv6 vẫn chưa được dùng đồng đều. Nếu nhà cung cấp DNS hỗ trợ bản ghi ALIAS hoặc ANAME, bạn có thể dùng một bản ghi duy nhất trỏ đến <username>.github.io thay cho các bản ghi A và AAAA.
Hai lỗi cần tránh:
- Bản ghi thừa trên apex. GitHub cho biết các bản ghi A, AAAA, ALIAS hoặc ANAME bổ sung trên
@, hoặc CNAME của www trỏ đến nơi khác, có thể khiến chứng chỉ HTTPS không được tạo. - Trỏ tên miền con về apex. GitHub cảnh báo điều này gây lỗi khi bật HTTPS và có thể khiến tên miền con không truy cập được trang của bạn. Hãy trỏ tên miền con về
<username>.github.io.
Một số nhà cung cấp dùng @ cho host apex, số khác yêu cầu để trống ô này hoặc nhập đầy đủ tên miền. Đó là đặc thù của nhà cung cấp, không phải thiết lập của GitHub.
Bật HTTPS
GitHub cấp chứng chỉ cho tên miền riêng thông qua Let's Encrypt. Sau khi DNS đã phân giải đúng:
- Quay lại Settings > Pages.
- Tìm dấu tích bên cạnh tên miền, nghĩa là bước kiểm tra DNS đã đạt.
- Tick Enforce HTTPS.
GitHub cho biết tùy chọn này có thể mất tới 24 giờ mới khả dụng. Nếu sau vài phút kể từ khi lưu vẫn chưa thấy, cách GitHub gợi ý là bấm Remove cạnh tên miền riêng, nhập lại rồi bấm Save lần nữa. Tên miền cũng phải dưới 64 ký tự thì chứng chỉ mới được tạo.
Nếu ô tick vẫn bị mờ, hãy rà soát danh sách sau:
- [ ] DNS của host đã phân giải về GitHub (
dighiển thị bốn IP hoặc CNAME<username>.github.iocủa bạn) - [ ] Không có bản ghi A, AAAA, ALIAS hoặc ANAME thừa trên apex
- [ ] CNAME của
wwwtrỏ đến<username>.github.io, không trỏ về apex hay địa chỉ pages.github.io - [ ] Tên miền trong Settings > Pages khớp chính xác với tên miền bạn nhập trong DNS
- [ ] Bạn đã xóa và thêm lại tên miền một lần
Xác minh tên miền (rất nên làm)
Xác minh giúp ngăn các tài khoản GitHub khác chiếm tên miền của bạn nếu trang Pages bị ngắt liên kết. GitHub nêu rằng việc chiếm quyền tên miền có thể xảy ra khi bạn xóa repository, khi gói thanh toán bị hạ cấp, hoặc sau bất kỳ thay đổi nào làm tên miền bị ngắt liên kết trong khi vẫn được cấu hình cho GitHub Pages mà chưa được xác minh.
- Mở phần cài đặt hồ sơ cá nhân (không phải cài đặt repo), rồi chọn Pages ở thanh bên.
- Bấm Add a domain, nhập tên miền và xác nhận.
- Tạo bản ghi TXT mà GitHub hiển thị. Host sẽ có dạng
_github-pages-challenge-USERNAME.example.com. - Kiểm tra bản ghi đã hiển thị bằng lệnh
dig _github-pages-challenge-USERNAME.example.com +nostats +nocomments +nocmd TXT. - Quay lại GitHub, dùng menu bên cạnh tên miền, chọn Continue verifying, rồi Verify.
GitHub cho biết bước này có thể có hiệu lực ngay hoặc mất tới 24 giờ. Hãy giữ nguyên bản ghi TXT sau đó. Ngoài ra, đừng dùng bản ghi wildcard như *.example.com: GitHub cho biết chúng có nguy cơ bị chiếm quyền kể cả khi tên miền đã được xác minh.
Các sự cố thường gặp
- Tên miền riêng báo lỗi 404, nhưng trang vẫn chạy ở github.io. Tên miền chưa được lưu trong Settings > Pages, hoặc DNS chưa cập nhật xong. Hãy kiểm tra cả hai.
- Tên miền cứ bị đặt lại sau mỗi lần deploy. Nếu bạn xuất bản từ một nhánh, tệp
CNAMEtrong nhánh nguồn phải chứa tên miền của bạn. Một bản build xóa sạch thư mục gốc của nhánh, hoặc một lần deploy bỏ sót tệp này, có thể làm mất nó. Chuyển sang workflow Actions tùy chỉnh sẽ giúp bạn không cần đến tệp này nữa. - Apex chạy được nhưng www thì không (hoặc ngược lại). Cả hai host đều cần có bản ghi. Hãy nhớ rằng GitHub chỉ chuyển hướng host còn lại nếu DNS của nó cũng trỏ về GitHub Pages.
- Chứng chỉ mãi không được cấp. Hãy chạy qua danh sách kiểm tra ở trên, ưu tiên tìm các bản ghi thừa trước.
Nếu bạn không muốn tự quản lý DNS
GitHub Pages phù hợp với các trang tĩnh bạn đã lưu trong repository. Nếu chủ yếu bạn chỉ cần đưa một trang web lên mạng với tên miền riêng, tính năng tên miền riêng của We.Inc hướng dẫn bạn bước DNS tương tự ngay trong trình xây dựng, còn hướng dẫn kết nối tên miền áp dụng cho mọi nhà cung cấp. Gói miễn phí của We.Inc cho phép bạn xuất bản tối đa ba trang web từ các mẫu có sẵn; trình xây dựng AI tạo bản nháp trang web từ một câu lệnh bắt đầu từ gói Starter với giá $20 một tháng. Bạn có thể đăng ký tại đây.
Bắt đầu miễn phí · Không cần thẻ tín dụng
Nhà sáng lập We.Inc
Umair là nhà sáng lập We.Inc. Anh viết về xây dựng website bằng AI, các agency và việc kinh doanh, vận hành một studio web.
Sẵn sàng tạo nên điều tuyệt vời?
Tham gia cùng 15,000+ doanh nghiệp đang dùng We.Inc để ra mắt, phát triển và tự động hóa, tất cả trên một nền tảng.
Bắt đầu miễn phíKhông cần thẻ tín dụng · Liên hệ bộ phận kinh doanh
Liên quan: Blog
- Dùng Gmail với tên miền riêng
- Cài DKIM trên GoDaddy
- Định giá tên miền GoDaddy
- Chuyển hướng tên miền GoDaddy
- Bản ghi MX GoDaddy
- Đổi Nameserver GoDaddy
- Cách thêm bản ghi TXT trên GoDaddy từng bước
- Vibe Coding Google AI Studio
Sản phẩm
Dành cho ai
- Dành cho đại lý
- Cho freelancer
- Cho nhà cung cấp hosting
- Cho nền tảng SaaS
- Cho startup
- Dịch vụ tài chính
- Giải pháp y tế
Tính năng
- Trình chỉnh sửa trực quan
- SEO & phân tích
- Thương hiệu riêng
- Bảng điều khiển khách hàng
- Thanh toán cho đại lý
Tài nguyên
- Blog
- Trung tâm trợ giúp
- Công cụ kinh doanh miễn phí
- Free UI Components
- Mẫu
- Bộ sưu tập mẫu
- Ví dụ website
- Hướng dẫn
- So sánh
- Lựa chọn thay thế
- Tốt nhất
- Đánh giá
- Hướng dẫn giá
- Trường hợp sử dụng
- Thuật ngữ và hướng dẫn
- Tích hợp
- Nhà phát triển
- Benchmark
- Windows App