menu

Thêm SSL cho domain trang web

Đăng lúc 12/07/2017, trong chuyên mục Lập trình web

Bài viết hướng dẫn bạn cách thêm SSL mua từ NameCheap cho trang web tạo bởi Github Pages và Jekyll nói riêng.

errorLưu ý quan trọng: Cách thức này tuy thành công như được báo trên trang NameCheap nhưng thực tế thì thất bại do khi dùng các trang check ssl online, ví dụ Comodo, thì sẽ xuất hiện lỗi mismatch.

Lời nói đầu

Theo mặc định, khi bạn tạo trang web bằng Github Pages và Jekyll, bạn sẽ có một địa chỉ trang web dạng https://tencuaban.github.io, tức là giao thức HTTPs đã được bao gồm luôn trong đó. Tuy nhiên nếu bạn dùng tên miền tùy chỉnh (custom domain) thì giao thức này không còn khả dụng nữa, khi ấy trang web của bạn sẽ có dạng http://tencuaban.com (không có s phía sau http).

Bình thường khi không có giao thức HTTPs, các dữ liệu truyền tải thông qua trang web của bạn sẽ không được mã hóa, do đó các trình duyệt và ngay cả các bộ máy tìm kiếm như Google sẽ xem trang của bạn là “không an toàn” (unsecured) và trang của bạn sẽ bị “lờ đi” đối với Google hay các bộ máy khác, điều này sẽ ảnh hưởng không nhỏ đến vị trí trang của bạn trong kết quả tìm kiếm.

Bài này tôi sẽ hướng dẫn bạn dựa trên một số điều kiện như sau

  • Tôi dùng Godaddy để quản lý domain tencuaban.com và tôi giả sử bạn đã gán thành công domain này cho trang github của bạn, tức là http://tencuaban.com đã hoạt động.
  • Tôi mua chứng chỉ SSL (HTTPs) trên NameCheap.
  • Host trang web của tôi (trang mà tencuaban.com trả về) tạo từ host của Github Pages.
keyboard_arrow_right Nếu bạn muốn biết trang web này được tạo ra như thế nào, vui lòng đọc bài viết này.

Chọn nơi để mua chứng nhận SSL

Tôi chọn mua chứng chỉ SSL trên NameCheap.com là vì nó phù hợp với khả năng tài chính của tôi, cũng như nó phù hợp với mục đích tôi sử dụng trang web (cá nhân, không cần quá nhiều truy suất thông tin từ người dùng). Tôi chọn gói PositiveSSL (7$/năm). Bạn có thể chọn mua các gói tại đây.

Bạn cũng có thể dùng một số dịch vụ SSL miễn phí, ví dụ như CloudFlare (hỗ trợ tốt cho các trang web Githubs) hay StartCom. Tuy nhiên tôi không có hướng dẫn sâu về các dịch vụ miễn phí này. Nếu muốn, bạn có thể thảo luận thêm ở bên dưới bài viết.

Cách làm

Bước 1. Bạn cần đăng ký tài khoản NameCheap (nhớ xác nhận email) và mua gói PositiveSSl cho một domain. Sau đó bạn đi đến mục Product list trong trang quản lý trên NameCheap. Tại đây bạn sẽ thấy gói PositveSSL bạn vừa mua, nhấn vào nút Activate như hình dưới

Gói PositiveSSL bạn mua trên NameCheap Gói PositiveSSL bạn mua trên NameCheap.

Bước 2. Bạn sẽ đến trang xác nhận thông tin, bước đầu tiên là điền vào đoạn mã CSR. Có rất nhiều cách để lấy được mã này, đây là danh sách các hướng dẫn trên chính trang NameCheap. Tuy nhiên vì tôi đang làm với host là Github Pages nên không có bất cứ hướng dẫn nào trong các hướng dẫn trên trang trên là phù hợp. Do đó tôi chọn thử một cái khả dĩ nhất và tôi chọn using MMC/Certreq/Powershell on a Windows-based server. Nếu bạn đọc tiếng Anh tốt, bạn có thể xem hướng dẫn trực tiếp trên này, còn không, hãy đọc bước tiếp theo.

Trang xác nhận Trang xác nhận kêu bạn điền mã CSR.

Lấy mã CSR

Tôi chọn cách lấy mã CSR làm trực tiếp trên Windows. Có nhiều cách để làm điều này. Tôi chọn cách tạo từ Certreq utility.

Bước 3. Bạn dùng Notepad (mở dưới quyền Administrator) tạo một file mới, tên “request.inf” với nội dung như sau

;----------------- request.inf -----------------

[Version] 
Signature="$Windows NT$"

[NewRequest] 
Subject = "C=VN, O=Math2IT, CN=dinhanhthi.com, L=Ben Tre, S=Ben Tre" 
KeyAlgorithm = ECDSA_P384 ; can be changed to 256 or 521 
Exportable = TRUE 
MachineKeySet = TRUE 
SMIME = False 
PrivateKeyArchive = FALSE 
UserProtected = FALSE 
UseExistingKeySet = FALSE 
ProviderName = "Microsoft Software Key Storage Provider" 
ProviderType = 12 
RequestType = PKCS10 
KeyUsage = 0xa0 
HashAlgorithm = SHA256

[EnhancedKeyUsageExtension] 
OID=1.3.6.1.5.5.7.3.1 
;-----------------------------------------------
  • Thay VN bởi mã nước mà bạn đang ở, xem danh sách mã quốc gia tại đây.
  • Thay Math2IT bởi tên công ty của bạn. Lưu ý không dùng tiếng Việt có dấu.
  • Thay dinhanhthi.com bởi domain của bạn, trong bài này là tencuaban.com
  • Thay Ben Tre bởi tên thành phố mà bạn đang ở (hai chỗ cần thay, L là tên thành phố, S là tên tiểu bang).

Sau đó bạn lưu file request.inf vào đường dẫn C:\ để tiện cho các bước tiếp theo.

Bước 4. Nhấn Windows + R để mở hộp thoại Run, sau đó bạn gõ vào cmd để mở cửa sổ command prompt lên. Trong đây bạn gõ cd C:\ rồi nhấn enter. Sau đó bạn gõ vào

certreq.exe -new request.inf tencuaban.csr

Bước 5. Mở file tencuaban.csr lên, copy hết nội dung của nó và quay lại trình duyệt, ngay chỗ trang xác nhận kêu bạn điền mã CSR ở hình dưới.

Trang xác nhận Trang xác nhận kêu bạn điền mã CSR.

Bạn dán đoạn code đã copy ở Bước 4 vào ô Enter CSR, trang web sẽ tự động phân tích đoạn mã và sẽ hiển thị trong Primary domain trang web của bạn, trong trường hợp này là tencuaban.com (trong hình là nctest.com). Web-Server bạn chọn “Windows…” (tôi đã chọn như thế). Cuối cùng nhấn Submit để đến trang xác nhận lại thông tin một lần nữa.

Bước 6. Mục DCV method, bạn chọn Email. Nhấn Next để đến trang điền thông tin cá nhân, các mục không có dấu * thì bạn có thể không điền. Riêng chỗ Email address, bạn điền email mà bạn dùng để quản lý tên miền và ssh, sau đó nhấn Next rồi Confirm.

Một email sẽ được gởi đến email của bạn có chứa đường link xác nhận từ Comodo. Nhấn vào bạn sẽ đến hình dưới

Trang xác nhận của Comodo Hoàn tất tiến trình.

Quá trình xác nhận có thể mất một khoản thời gian, bạn sẽ nhận được email thông báo.

lập trình web
ssl
domain
Top