Khắc phục lỗi kết nối SSL
Chứng chỉ SSL (SSL certificate) được sử dụng trên hàng triệu trang web để cung cấp bảo mật cho các giao dịch trực tuyến. Tuy nhiên trong quá trình triển khai ...
Chứng chỉ SSL (SSL certificate)được sử dụng trên hàng triệu trang web để cung cấp bảo mật cho các giao dịch trực tuyến. Tuy nhiên trong quá trình triển khai SSL, một số vấn đề có thể xảy ra, trên màn hình người dùng truy cập trang web hiển thị thông báo lỗi.
Lỗi kết nối SSL
Lỗi kết nối SSL xảy ra trong quá trình nếu bạn cố gắng kết nối với một rtang web được kích hoạt SSL và trình duyệt của bạn (client - khách) không thể tạo kết nối an toàn với máy chủ của trang web.
Tùy thuộc vào nguyên nhân gây ra lỗi kết nối SSL, trình duyệt sẽ hiển thị các cảnh báo như “This Connection is Untrusted”, “The site's security certificate is not trusted” hoăc “Your Connection is not private”.
Dưới đây Zaidap.com sẽ hướng dẫn bạn cách khắc phục lỗi kết nối SSL.
Sửa lỗi The SSL certificate for this website is not trusted
Trình duyệt Internet sẽ hiển thị thông báo lỗi nói rằng chứng chỉ trang web không đáng tin cậy trong trường hợp nếu chứng chỉ đó chưa được đăng ký bởi một nhà cung cấp chứng thực số (Certificate Authority - CA) đáng tin cậy. Để trình duyệt chấp nhận chứng chỉ, trình duyệt đó phải được liên kết “chứng chỉ gốc đáng tin cậy” (trusted root certificate).
Chứng chỉ gốc đáng tin cậy được nhúng vào các trình duyệt phổ biến như Internet Explorer, Firefox, Chrome và Comodo Dragon. Các chứng chỉ gốc này được dùng làm “công cụ tin cậy” để xác minh tính hợp lệ của tất cả các chứng chỉ trang web mà trình duyệt bắt gặp. Nếu bắt gặp một chứng chỉ không được ký bởi một trong những chứng chỉ gốc này, trình duyệt sẽ thông báo rằng nó là chứng chỉ không đáng tin cậy và khách truy cập sẽ nhận được thông báo lỗi ở trên.
Hầu hết các chứng chỉ gốc đáng tin cậy trên trình duyệt được nhà cung cấp chứng thực số (Certificate Authority - CA) công nhận. Khi CA ký giấy chứng nhận một trang web, chứng chỉ của trang web được liên kết với một trong những chứng chỉ gốc đáng tin cậy của họ trong kho chứng chỉ trình duyệt.
Vì lý do bảo mật, hầu hết các nhà cung cấp chứng thực số - CA không đăng ký end-entity trực tiếp từ chứng chỉ gốc, thay vào đó họ sử dụng chứng chỉ Intermediate để tạo một “chuỗi tin cậy” (chain of trust) trong chứng chỉ gốc. Trong hệ thống này chứng chỉ gốc sẽ ký chứng chỉ Intermediate và chứng chỉ Intermediate được sử dụng để ký giấy chứng nhận cho các trang web cá nhân.
Vì vậy lỗi “Untrusted” (không đáng tin cậy) thường là do 1 trong 2 nguyên nhân dưới đây gây ra:
- Trang web sử dụng chứng chỉ tự ký (Self Signed Certificate)
Trong nhiều trường hợp, lỗi “Untrusted” (không đáng tin cậy) xảy ra là do trang web đang sử dụng chứng chủ tự ký (Self Signed Certificate). Đúng như tên gọi của nó, chứng chỉ tự ký là chứng chỉ do chủ trang web sử dụng phần mềm webserver tự tạo và tự ký chứng chỉ cho mình. Vì vậy, chứng chỉ này không được liên kết với bất kỳ chứng chỉ gốc tin cậy nào trong kho chứng chỉ của trình duyệt và trình duyệt sẽ hiển thị lỗi “Untrusted” (không đáng tin cậy).
Chứng chỉ tự ký có nhiều lợi thế. Thứ nhất đây là chứng chỉ được tạo miễn phí và sử dụng khá ổn trên các máy chủ nội bộ. Tuy nhiên không nên các chứng chỉ này để triển khai trên các trang web thương mại.
- Chứng chỉ Intermediate chưa được cài đặt
Một nguyên nhân tiềm ẩn khác gây ra lỗi “Untrusted” (không đáng tin cậy) là do Admin của trang web không cài đặt chính xác tất cả các chứng chỉ Intermediate trên webserver của họ. Dưới đây là một ví dụ minh họa cho lỗi này:
Trong sơ đồ trên bạn có thể nhìn thấy chứng chỉ cho www.comodo.com . Tab Certification Path hiển thị chuỗi tin cậy mà trình duyệt Internet sử dụng để xác minh chứng chỉ. Chứng chỉ gốc đáng tin cậy ký chứng chỉ Intermediate, sau đó chứng chỉ Intermediate ký chứng chỉ trang web (trong ví dụ này là www.comodo.com ).
Khi khách truy cập tạo kết nối với www.comodo.com , webserver phải xuất trình cả chứng chỉ trang web và chứng chỉ Intermediate cho trình duyệt của khách truy cập. Sau đó trình duyệt kiểm tra tất cả các chứng chỉ trong chuỗi tin cậy trong chứng chỉ gốc.
Hầu hết các nhà cung cấp chứng thực số (CA) sẽ gửi file CA bundle có chứa tất cả các chứng chỉ Intermediate bắt buộc kèm theo end-entity cho chủ sở hữu trang web. Tuy nhiên nếu Admin của webserver không cài đặt tất cả các chứng chỉ Intermediate thì người dùng sẽ nhận được thông báo lỗi “certificate not trusted” (chứng chỉ không đáng tin cậy).
Lỗi Certificate Name Mismatch
Lỗi “Certificate Name Mismatch” xảy ra khi máy chủ hiển thị tên miền (domain) được liệt kê trên chứng chỉ SSL không khớp với tên miền mà trình duyệt được kết nối. Để bắt đầu phiên HTTPS, tên miền trên chứng chỉ phải khớp chính xác với tên miền trên thanh địa chỉ của trình duyệt.
Dưới đây là một số nguyên nhân gây ra lỗi:
- Trang web / máy chủ được truy cập sử dụng tên máy chủ nội bộ hoặc địa chỉ IP nhưng chứng chỉ thì chỉ được cấp tên miền địa chỉ đầy đủ (Fully Qualified Domain Name) (chẳng hạn như www.domain.com ). Truy cập máy chủ bằng cách sử dụng tên máy chủ nội bộ hoặc địa chỉ IP có thể đưa bạn đến cùng một trang web, nhưng nếu chứng chỉ mà chỉ chứa FQDN, nó có thể gây ra lỗi “Certificate Name Mismatch”.
- Chứng chỉ được cấp là domain.com, nhưng trên thanh địa chỉ trình duyệt được nhập là www.domain.com (cơ bản, www chỉ là tên miền phụ của domain.com). Lỗi “Certificate Name Mismatch” vẫn có thể xảy ra nhưng ít phổ biến hơn vì hầu hết các nhà cung cấp chứng thực số lớn, bao gồm cả Comodo, đều cấp chứng chỉ miền duy nhất bao gồm cả domain.com và www.domain.com .
Tuy nhiên nếu phải đối mặt với lỗi “Certificate Name Mismatch” thì đây có thể là nguyên nhân gây lỗi. Sử dụng chứng chỉ Wildcard có thể giúp bạn khắc phục lỗi kết nối SSL này xảy ra vì bất kỳ và tất cả các tên miền phụ của domain.com sẽ được tự động được bảo vệ.
- Lỗi Certificate Name Mismatch có thể xảy ra khi nhiều trang web được lưu trữ trên cùng một địa chỉ IP. Điều này thường xảy ra trong nhiều môi trường chia sẻ lưu trữ. Trong một kết nối HTTP bình thường, trình duyệt sẽ cho máy chủ biết miền nào nó muốn kết nối với host header.
Tuy nhiên khi một kết nối HTTPS được thực hiện, bắt tay với SSL đồng nghĩa với việc trình duyệt yêu cầu một chứng chỉ từ máy chủ trước khi xuất trình host header. Kết quả là máy chủ không có thông tin cần thiết để quyết định chứng chỉ nào để gửi và sẽ xuất trình sai chứng chỉ.
Nếu chỉ có một trang web và một chứng chỉ trên một địa chủ IP, nguyên nhân gây ra lỗi lại không nằm ở đây. Tuy nhiên nếu có nhiều trang web nằm trên cùng một địa chỉ IP, máy chủ có thể cung cấp một chứng chỉ cho tên miền sai. Để ngăn chặn tình trạng này người dùng có thể sử dụng chứng chỉ Multi-Domain, cho phép chủ sở hữu trang web thêm tất cả các trang web và tên máy chủ vào trường khung Subject Alternative Name (SAN) của chứng chỉ.
Lỗi Mixed content
Để kết nối an toàn, HTTPS được thiết lập, các mục trên trang phải được lấy từ một nguồn an toàn. Tức là tất cả hình ảnh, video, iframes, flash movies và Javascripts phải được lấy từ nguồn an toàn. Nếu có bất kỳ một mục nào không được lấy từ nguồn an toàn, khách truy cập trang web sẽ nhận được thông báo lỗi tương tự như lỗi dưới đây:
Nếu khách truy cập chọn Yes, tất cả các mục sẽ được hiển thị nhưng kết nối sẽ trở lại kết nối HTTP không an toàn. Nếu chọn No thì chỉ có các mục an toàn mới được hiển thị. Tức là một số video và hình ảnh nhất định sẽ không được hiển thị hoặc trang sẽ không thực hiện các script quan trọng. Dù cách nào đi nữa thì đây cũng là tín hiệu xấu gửi đến khách truy cập trang web của bạn.
Dưới đây là cách mà các Admin trang web có thể áp dụng để khắc phục lỗi kết nối SSL Mixed content:
- Không gọi bất kỳ nội dung không an toàn nào thông qua HTTP hoặc cổng số 80. Thay đổi tất cả các tham chiếu từ HTTP sang HTTPS. Cần đảm bảo rằng bạn đã thiết lập SSL trên vị trí nguồn. Nếu sử dụng tên miền phụ (sub-domain) để lưu trữ các phần tử trang web của mình, một chứng chỉ Wildcard có thể hữu ích với bạn.
- Sử dụng liên kết tương đối trên trang web của bạn thay vì sử dụng liên kết tuyệt đối. Ví dụ: thay vì sử dụng src = http: //mydomain.com/my-script.js, bạn có thể sử dụng scr = / my-script.js. Nếu trang chủ của bạn được truy cập thông qua HTTPS, trình duyệt sẽ tải /my-script.js thông qua HTTPS. Kỹ thuật này cũng rất hữu ích nếu trang web của bạn tham chiếu nội dung bên ngoài là máy chủ thông qua HTTP (ví dụ như YouTube hoặc Google Analytics).
- Triển khi SSL trên toàn bộ trang web của bạn. Điều này để đảm bảo mức độ bảo mật cho khách truy cập trang web của bạn tốt hơn, và đây cũng là tiêu chí mà Google sử dụng để xếp hạng thứ hạng trang web, cải thiện SEO được phần nào.
Lưu ý rằng khi triển khai SSL trên toàn bộ trang web của bạn đồng nghĩa với việc bạn có 2 bản sao nội dung , vì vậy bạn sẽ phải “nói” cho công cụ tìm kiếm biết phiên bản nào có thẩm quyền. Để làm được điều này:
+ Nói cho công cụ tìm kiếm biết phiên bản HTTPS nào có thẩm quyền bằng cách cập nhật link để trỏ đến phiên bản HTTPS. Cập nhật XML sitemap để tham chiếu phiên bản HTTPS nội dung của bạn. Thực hiện những thay đổi này đồng nghĩa công cụ tìm kiếm sẽ lập chỉ mục phiên bản SSL trang web của bạn và hiển thị phiên bản này trong kết quả của công cụ tìm kiếm.
+ Đảm bảo robots.txt có sẵn trên HTTPS.
+ Chuyển hướng tất cả các yêu cầu HTTP tới phiên bản HTTPS bằng chuyển hướng 301 vĩnh viễn. Tức là thứ hạng trang công cụ tìm kiếm của bạn sẽ được chuyển sang phiên bản HTTPS.
+ Cập nhật các công cụ webmaster để tham chiếu phiên bản HTTPS trên trang web của bạn thay vì HTTP.
Trên đây Zaidap.com vừa giới thiệu và hướng dẫn bạn một số cách khắc phục lỗi kết nối SSL. Nếu đang phải đối mặt với lỗi kết nối SSL bạn đọc có thể áp dụng một trong số những cách trên để sửa lỗi.
Bên cạnh những lỗi SSL phổ biến, khi bạn truy cập một số website phổ biến như Facebook, Gmail cũng có thể rơi vào tình trạng này. Trong trường hợp này, cách sửa lỗi SSL khi vào Facebook, Gmail mà Zaidap.com có thể giúp được bạn kết nối trở lại.
http://thuthuat.taimienphi.vn/khac-phuc-loi-ket-noi-ssl-26246n.aspx
Nếu có bất kỳ câu hỏi nào cần giải đáp, bạn có thể để lại ý kiến của mình trong phần bình luận dưới bài viết nhé!