Cài đặt chung chi ssl cho xampp trên windows
Một khi cài đặt SSL cho Xampp trên windows thành công thì chúng ta sẽ nhận được hai chữ Bảo Mật hoặc Secure cùng với ổ khóa xanh rờn trên thanh địa chỉ của Chrome nếu ngôn ngữ trình duyệt của bạn là English. Tương tự là Kết nối an toàn/Secure Connection đối với các trình duyệt khác.
1 Tổng quan, quy trình & lưu ý trước khi bắt đầu.Kể từ phiên bản 58 trở đi đối với các trình duyệt sử dụng mã nguồn mở Chromium, điển hình là trình duyệt Chrome cũng như phiên bản nâng cấp ‘đồng hành’ của một số trình duyệt thông dụng khác. Khi chúng ta truy cập địa chỉ trang web có sử dụng giao thức bảo mật HTTPS được tự ký (self signed) và cấp phát bằng OpenSSL thì sẽ gặp phải lỗi “Subject Alternative Name Missing” hay NET::ERR_CERT_COMMON_NAME_INVALID hoặc là “Your connection is not private”.
Tổng quanSở dĩ gặp phải lỗi trên là do các nhà phát triển trình duyệt đã có một số thay đổi về phương thức xác thực chứng chỉ SSL khi nó được gọi từ trình duyệt thông qua giao thức HTTPS. Giờ đây, các trình duyệt sẽ không còn quá chú trọng vào commonName (CN) như trong quá khứ nữa, mà chỉ tập trung vào subject alternaltive name (SAN) được cung cấp trong chứng chỉ SSL, SAN này tạm dịch là tên thay thế hay địa chỉ phụ, nó có thể là tên miền(domain name) hoặc địa chỉ IP. Nếu chứng chỉ của bạn không có một SAN thì trình duyệt sẽ thông báo lỗi NET::ERR_CERT_COMMON_NAME_INVALID và cho biết kết nối này không bảo mật, không an toàn. Hoặc chứng chỉ của bạn có một SAN nhưng cấu hình không chính xác, ví dụ như tên miền chính đang sử dụng lại không nằm trong danh sách của SAN thì sẽ nhận được cảnh báo subject alternative name is missing. Bạn có thể xem chi tiết cảnh báo này trong tab Bảo mật/Security của trình phát triển trình duyệt.
Quy trình chính trong bài viết
Lưu ý trước khi bắt đầu
2 Trở thành CA.Để các chứng chỉ tạo ra hợp lệ và có hiệu lực thì việc trở thành nhà cung cấp chứng thực số tức CA là một bước vô cùng quan trọng không thể thiếu. 2.1 Tạo tập tin cấu hình mặc định cho CATruy cập vào thư mục C:\Packages-DEV\xampp\apache\conf, nhớ sửa lại theo đường dẫn của bạn nếu bạn cài đặt Xampp tại vị trí khác. Trong C:\Packages-DEV\xampp\apache\conf, bạn sẽ dễ dàng nhìn thấy tập tin openssl.cnf, Đây là tập tin cấu hình gốc của OpenSSL, có thể mở lên để quan sát nhưng tốt nhất không nên chỉnh sửa gì trong đó, bởi vì trong bài này chúng ta sẽ không động vào nó. Tại vị trí này, tạo một tập tin mới và đặt tên là openssl-ca.cnf Bạn nào lười cũng có thể copy tập tin openssl.cnf rồi đổi tên lại thành openssl-ca.cnf. Sau đó dùng chương trình biên tập code của bạn mở file openssl-ca.cnf này lên. Dán toàn bộ code bên dưới vào, hoặc thay thể toàn bộ nếu các bạn copy từ tập tin openssl.cnf
Còn lại, cái nào không hiểu thì tốt nhất giữ nguyên không nên động chạm vào. Hoặc nếu lười thì khỏi cần thay đổi, dùng luôn thông tin của mình cũng được. 🙂 Sau đó lưu tập tin lại. 2.2 Tiến hành đăng ký trở thành CA2.2.1 Tạo tập tin makecert.ca.batQuay trở lại thư mục C:\Packages-DEV\xampp\apache ta cũng sẽ thấy tập tin tạo chứng chỉ mặc định makecert.bat của OpenSSL. Tương tự như trên, chúng ta cũng không nên đụng chạm vào tập tin gốc này mà tạo tập tin mới đặt tên là makecert.ca.bat Tiếp đó mở tập tin makecert.ca.bat vừa tạo thay thế toàn bộ code bên dưới vào rồi lưu lại.
Tập tin makecert.ca.bat này đã được mình cố định để tái sử dụng liên tục, không nên chỉnh sửa gì trong này nếu bạn không thực sự hiểu về nó. 2.2.2 Thực thi makecert.ca.batNhấp đúp chuột vào tập tin makecert.ca.bat vừa mới lưu để tiến hành đăng ký trở thành CA. Một cửa sổ dòng lệnh CMD sẽ bật lên. Do mọi thông tin chúng ta đã tạo sẵn trong tập tin openssl-ca.cnf trong thư mục C:\Packages-DEV\xampp\apace\conf ở trên rồi nên cứ nhấn Enter để nó lấy thông tin theo mặc định. Sau khi nó chạy xong thì nhấn phiếm bất kỳ để thoát. Kết quả xuất ra trên CMD sẽ tương tự như sau:
Sau khi chạy xong, mở thư mục theo đường dẫn C:\Packages-DEV\xampp\apache\conf\ssl.ca ta sẽ thấy 4 tập tin được tạo như hình. 1.3 Hoàn tất thủ tục trở thành CA với Windows (Microsoft)Đại khái là nói với Máy tính của bạn rằng bạn là một CA đáng tin cậy 🙂 Chẳng lẽ bản thân minh còn không tin được mình. 🙂 Nhấn phím Windows + R để mở hộp lệnh Run. Gõ lệnh certmgr.msc sau đó nhấn Enter để chạy chương trình Certificates Manager. Hộp thoại Certificates Manager sẽ được gọi ra. Chọn dòng thứ 2 Trusted Root Certification Authorities > Certificates (Chuột phải) > All Task > Import… Trong hộp thoại Certificate Import Wizard hiện lên chọn Next Trong hộp thoại tiếp theo, nhấn Browser và duyệt tìm tới file cacert.crt đã được khởi tạo ra trong quá trình đăng ký trở thành CA ở trên và nhấn Next. Trong trường hợp của mình thì đường dẫn tuyệt đối của nó là C:\Packages-DEV\xampp\apache\conf\ssl.ca\cacert.crt Next để lưu chứng nhận CA vào kho dữ liệu của máy tính Finish để kết thúc quá trình lưu trữ CA Sau khi nhấn Finish thì sẽ có một hộp thoại cảnh báo bảo mật Security Warning hiện lên. Sở dĩ có cái cảnh báo này là bởi vì chúng ta đang tự tạo CA, đây là vấn đề an ninh nên Windows cần phải xác nhận lại lần cuối. Chọn Yes để xác nhận và một cửa sổ thông báo thành công được hiện lên. Click Ok để kết thúc quá trình kích hoạt chứng nhận. Vậy là xong phần đăng ký trở thành CA. 2.4 Kiểm tra thông tin CA vừa tạoThử mở hộp thoại Certificates Manager > Trusted Root Certification Authorities > Certificates, tìm tới chứng nhận CA vừa tạo, nháy đúp chuột với mở lên kiểm tra lại thông tin xem thử ra sao. 3 Tạo CSR cho localhost cùng các SAN của nó, đồng thời dùng CA để chứng thực CSRCSR – Certificate Signing Request là 1 đoạn text (chứa thông tin của chủ sở hữu tên miền) được mã hóa từ server (máy chủ) chuẩn bị cài đặt SSL. Nó chứa thông tin sẽ được bao gồm trong giấy chứng nhận của bạn như tên tổ chức của bạn, tên thông thường, địa phương và quốc gia. CSR sẽ được tạo ra trước khi gửi yêu cầu cho bên cung cấp chứng thức số tức CA để sinh ra chứng chỉ số SSL. 3.1 Tạo tập tin cấu hình SSL mặc định cho localhostTương tự như tạo file cấu hình cho CA ở trên. Truy cập vào thư mục cài đặt Xampp C:\Packages-DEV\xampp\apache\conf, nhớ sửa lại theo đường dẫn của bạn nếu bạn cài đặt Xampp tại vị trí khác. Trong C:\Packages-DEV\xampp\apache\conf, tạo tập tin mới và đặt tên là openssl-localhost.cnf. Đây sẽ là tập tin cấu hình cho localhost và các SAN của nó. Mở tập tin openssl-localhost.cnf lên và thay thế hoặc dán toàn bộ code bên dưới vào. Sau đó lưu lại.
3.2 Tiến hành tạo CSR cho miền localhost cùng các SAN đồng thời dùng CA để chứng thực CSR3.2.1 Tạo tập tin thực thi makecert.localhost.batQuay trở lại thư mục C:\Packages-DEV\xampp\apache Tương tự như ở trên, chúng ta cũng tạo mới một tập tin có tên makecert.localhost.bat rồi dán toàn bộ code sau đây vào:
Nhớ lưu tập tin lại. 3.2.2 Thực thi makecert.localhost.batNhấp đúp chuột vào tập tin makecert.localhost.bat vừa mới lưu để tiến hành tạo yêu cầu ký chứng chỉ (CSR) cho tên miền localhost và các SAN của nó. Một cửa sổ dòng lệnh CMD sẽ bật lên. Mọi thông tin chúng ta đã định sẵn trong tập tin cấu hình mặc định trong tập tin C:\Packages-DEV\xampp\apache\conf\openssl-localhost.cnf rồi nên cứ nhấn Enter là được. Chú ý đọc kỹ chú thích mình in sẵn trên CMD rồi hãy nhấn Enter. Lẽ ra, mỗi một công đoạn, mình sẽ tạo một tập tin thực thi .bat khác và tiến hành riêng lẻ cho mọi người dễ hiểu. Nhưng mà do mình lười và cũng để tiết kiệm thời gian cho các bạn nên đã gộp chung tất cả trong một tập tin makecert.localhost.bat. Mình cũng đã ghi chú về ý nghĩa của mỗi công đoạn và dòng lệnh trong tập tin cả rồi, nó cũng sẽ được hiển thị trong của sổ CMD, mọi người cứ làm theo nhắc nhở trong ghi chú là được. Kết quả xuất ra trên CMD khi chạy xong tập tin makecert.localhost.bat sẽ tương tự như sau:
Sau khi chạy xong thì nhấn phím bất kỳ để thoát CMD. Xong phần này, đến phần kế tiếp 4 Cài đặt SSL cho Xampp trên Windows và cấu hình SSL cho miền localhostTruy cập thư mục C:\Packages-DEV\xampp\apache\conf\extra tìm đến tập tin httpd-vhosts.conf, đổi tên tập tin này và tạo một tập tin httpd-vhosts.conf mới. Mục đích là để backup tập tin gốc, đề phòng có sai sót thì có cái mà phục hồi, đã nhắc nhiều lần ở trên rồi. 🙂 Dán toàn bộ nội dung phần code sau đây vào tập tin httpd-vhosts.conf mới và lưu lại:
Tương tự, cũng trong thư mục C:\Packages-DEV\xampp\apache\conf\extra, tìm đến tập tin httpd-ssl.conf backup nó và tạo lại tập tin mới. Sau đó dán toàn bộ nội dung dưới đây vào và lưu lại:
Giờ thì khởi động lại Xampp và truy cập localhost cùng các SAN của nó với giao thức HTTPS và xem kết quả đi nào! Kiểm tra SSL của localhost5 Tạo CSR và chứng thực SSL đồng thời cho nhiều tên miền ảo trong Xampp.5.1 Trỏ IP cho tên miền ảoTìm đến tập tin hosts của Windows tại C:\Windows\System32\drivers\etc. Mở tập tin hosts này bằng trình biên tập code của bạn dưới quyền Administrators, thêm vào cuối dòng code này
Nhớ lưu tập tin lại. 5.2 Tạo tập tin cấu hình SSL mặc định cho tên miền ảoTương tự ở trên. Truy cập vào thư mục cài đặt Xamp C:\Packages-DEV\xampp\apache\conf, tạo mới một tập tin openssl-itshare-online.dev.cnf. Dán vào tập tin openssl-itshare-online.dev.cnf toàn bộ code bên dưới và lưu lại.
5.3. Tạo và thực thi tập tin thực thi makecert.bat cho miền ảoQuay trở lại thư mục C:\Packages-DEV\xampp\apache, và tương tự chúng ta cũng tạo mới một tập tin có tên makecert.itshare-online.dev.bat rồi dán toàn bộ code sau đây vào
5.4 Cấu hình lại cho tập tin httpd-vhosts.conf và httpd-ssl.conf5.4.1 Tập tin httpd-vhosts.confThêm vào tập tin httpd-vhosts.conf đoạn cấu hình cho tên miền itshare-online.dev
Và chúng ta có tập tin httpd-vhosts.conf hoàn chỉnh tương tự như sau:
5.4.2 Tập tin httpd-ssl.confThêm vào tập tin httpd-ssl.conf đoạn cấu hình cho tên miền itshare-online.dev
Nội dung tập tin httpd-ssl.conf hoàn chỉnh:
Lưu tất cả lại sau đó khởi động lại Xampp và kiểm tra thành quả. 5.5 Kiểm tra kết quảNhìn vào tổng thể thì thấy dài dòng rườm rà, thật ra cũng chỉ vài bước đơn giản mà thôi. Chủ yếu mình trình bày từng bước cho những người mới dễ thấy. Tóm gọn, việc cài đặt SSL cho Xampp trên Windows chỉ gồm hai phần chính, đầu tiên đăng ký trở thành CA, sau đó là dùng CA để cấp phát chứng chỉ cho tên miền. Sau này muốn thêm tên miền thì cứ việc copy tập tin cũ sau đó đổi lại tên miền , IP và số serial là được, mà IP chỉ dành cho mục đích phát triển cho những ai thực sự cần. Nếu không cần thiết thì cứ bỏ phần IP trong chứng chỉ đi, chỉ trỏ trong tập tin hosts là được. Để dễ dàng hơn trong việc cấp phát lại chứng chỉ thì mỗi tên miền mọi người nên tạo một tập tin cấu hình (.cnf) và thực thi (.bat) riêng như ở trên. Nếu không thì cứ dồn chung vào một tập tin cho gọn nếu các bạn hiểu mình đang làm gì. Với lại theo kỹ thuật ngày càng phát triển thì bài viết này rất nhanh sẽ lỗi thời và không còn dùng được. Mọi người nếu làm theo mà không được thì báo lại, mình sẽ tranh thủ cập nhật kỹ thuật mới. Bài viết chắc chắn sẽ có phần thiếu sót, có vấn đề gì thì mọi người cứ việc comment bên dưới, chúng ta sẽ cùng nhau giải quyết nó.
5 2 đánh giá Đánh giá bài viết |