Tạo chứng chỉ SSL cục bộ được sử dụng trong XAMPP trên Windows
Trong bài viết này sẽ sử dụng tên miền ảo làm ví dụ là site.test
1. Vào thư mục Apache trong XAMPP.
Mặc định XAMPP đợc cài đặt trong thư mục C:\xampp\apache.
2. Tạo một thư mục mới.
Đây là nơi ta sẽ lưu trữ chứng chỉ SSL. Trong ví dụ này Ngôi Sao Số sẽ tạo thư mục crt ,Vì vậy, đường dẫn sẽ có dạng C:\xampp\apache\crt
3. Tải về và thêm 2 tập tin này vào thư mục vừa tạo
Vào đường dẫn sau tải 2 tập tin cert.conf make-cert.bat về. 2 tập tin này sẽ dùng để tạo chứng chỉ SSL cho tên miền tùy thích.
4. Sửa cert.conf và chạy make-cert.bat
Mở file cert.conf và thay đổi {{DOMAIN}} thành tên miền bạn muốn, trong trường hợp này site.test và lưu lại.
Nhấp đúp chuột vào make-cert.bat và nhập tên miền site.test khi được nhắc. Và nhập trả lời cho các câu hỏi khác, thiết lập mặc định có sẵn trong cert.conf
5. Cài đặt chứng chỉ trong windows.
Sau đó, bạn sẽ thấy thư mục site.test được tạo. Trong thư mục đó ta sẽ có server.crt and server.key. Đây là chứng chỉ SSL certificate.
Nhấp đúp chuột vào server.crt để cài đặt nó trên Windows để Windows chấp nhận chứng chỉ này.
Và chọn Local Machine trong Store Location.
Tiếp tục chọn “Place all certificate in the following store” và click browse sau đó chọn Trusted Root Certification Authorities.
Chọn Next và Finish.
Và bây giờ chứng chỉ này đã được cài đặt là tin cậy (trusted) trong Windows. Tiếp theo là làm thế nào để sử dụng chứng chỉ này trong XAMPP.
6. Thêm trang web trong máy chủ Windows
- Mở notepad với quyền administrator.
- Sửa C:\Windows\System32\drivers\etc\hosts
- Thêm một dòng mới:
127.0.0.1 site.test
Điều này sẽ giúp XAMPP khi truy cập http://site.test sẽ trỏ tên miền này về IP localhost
7. Thêm tên miền này vào file conf của XAMPP.
Giờ bạn cần kích hoạt SSL cho tên miền này và cho XAMPP biết nơi lưu trữ Chứng chỉ SSL. Vì vậy, bạn cần chỉnh sửa C:\xampp\apache\conf\extra\httpd-xampp.conf
Và thêm dòng mới này dưới cùng:
## site.test <VirtualHost *:80> DocumentRoot "C:/xampp/htdocs" ServerName site.test ServerAlias *.site.test </VirtualHost> <VirtualHost *:443> DocumentRoot "C:/xampp/htdocs" ServerName site.test ServerAlias *.site.test SSLEngine on SSLCertificateFile "crt/site.test/server.crt" SSLCertificateKeyFile "crt/site.test/server.key" </VirtualHost>
Sau đó, bạn sẽ cần khởi động lại Apache trong XAMPP. Đơn giản, chỉ cần mở Bảng điều khiển XAMPP và bấm stop và start tại mục Apache.
Mẹo: Trong file conf XAMPP, bạn có thể thay đổi thư mục gốc cho từng tên miền nếu cần.
8. Khởi động lại trình duyệt và thử lại!
Cần khởi động lại trình duyệt để hệ thống tải chứng chỉ. Và truy cập tên miền trên trình duyệt của bạn, và bạn sẽ thấy khóa màu xanh lá như hình bên dưới!
Hoặc
Bước 9: Chuẩn bị các file chứng chỉ SSL.
Truy vào thư mục C:\xampp\apache\conf\ssl (ssl là thư mục bạn tạo để lưu trữ chứng chỉ SSL) và tạo 3 file bao gồm:
- certificate.crt
- private.key
- ca_bundle.crt
ssl cho xampp
Lưu ý : file ca_bundle.crt là tổng hợp các chứng chỉ CARoot của các hãng mà bạn có thể nhận được từ 3 file riêng biệt khi đăng ký SSL bao gồm :
- AAACertificateServices.crt,
- SectigoRSADomainValidationSecureServerCA.crt,
- USERTrustRSACertificationAuthority.crt
Trường hợp bạn đăng ký chứng chỉ SSL tại PA Việt Nam, bạn chỉ việc copy/paste các mã SSL nhận được vào các file tương ứng.
Bước 10: cài đặt chứng chỉ SSL cho Xampp trên Windows.
Truy cập thư mục C:\xampp\apache\conf\extra tìm đến file httpd-vhosts.conf đổi tên file này thành httpd-vhosts.conf_bak và tạo một file httpd-vhosts.conf mới. Mục đích để backup file gốc, đề phòng trường hợp có sai sót trong quá trình cài đặt.
Dán toàn bộ nội dung phần code sau đây vào file httpd-vhosts.conf mới và lưu lại.
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot “C:/xampp/htdocs” ServerName localhost ServerAlias www.localhost ErrorLog “logs/localhost-error.log” CustomLog “logs/localhost-access.log” common </VirtualHost>
Tương tự như trên, bạn tìm đến file httpd-ssl.conf backup nó và tạo lại file mới. Sau đó dán toàn bộ nội dung dưới đây vào và lưu lại:
Listen 443 SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES SSLHonorCipherOrder on SSLProtocol all -SSLv3 SSLProxyProtocol all -SSLv3 SSLPassPhraseDialog builtin SSLSessionCache “shmcb:C:/xampp/apache/logs/ssl_scache(512000)” SSLSessionCacheTimeout 300 <VirtualHost *:443> DocumentRoot “C:/xampp/htdocs” ServerName localhost ServerAlias www.localhost ServerAdmin webmaster@localhost ErrorLog “C:/xampp/apache/logs/localhost-error.log” TransferLog “C:/xampp/apache/logs/localhost-access.log” SSLEngine on SSLCertificateFile “C:/xampp/apache/conf/ssl/certificate.crt” SSLCertificateKeyFile “C:/xampp/apache/conf/ssl/private.key” SSLCACertificatePath “C:/xampp/apache/conf/ssl” SSLCACertificateFile “C:/xampp/apache/conf/ssl/ca_bundle.crt” <FilesMatch “\.(cgi|shtml|phtml|php)$”> SSLOptions +StdEnvVars </FilesMatch> <Directory “C:/xampp/apache/cgi-bin”> SSLOptions +StdEnvVars </Directory> BrowserMatch “MSIE [2-5]” \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog “C:/xampp/apache/logs/ssl_request_localhost.log” \ “%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b” </VirtualHost>
Lưu ý: Trường hợp bạn lưu 3 file SSL ở nơi khác cần điều chỉnh lại các đường dẫn sau:
- SSLCertificateFile “C:/xampp/apache/conf/ssl/certificate.crt”
- SSLCertificateKeyFile “C:/xampp/apache/conf/ssl/private.key”
- SSLCACertificatePath “C:/xampp/apache/conf/ssl”
- SSLCACertificateFile “C:/xampp/apache/conf/ssl/ca_bundle.crt”
Bước 11: kiểm tra chứng chỉ SSL
Bạn thực hiện restart lại apache trên XAMPP để chứng chỉ SSL được kích hoạt.
Sau đó bạn truy cập website theo link: https://domain.com/ nếu thấy hình ổ khóa là bạn đã cài đặt thành công.