Uncategorized

Cách cài đặt https cho localhost

Các dự án đôi khi cần yêu cầu sử dụng https mới có thể chạy được.
Để thực hiện việc này, chúng ta cần cài https cho localhost để dễ dàng hơn cho việc test.

Link tham khảo: https://viblo.asia/p/lam-the-nao-thiet-lap-https-cho-localhost-6J3Zgj0xKmB
Đầu tiên, chúng ta cần cài công cụ tạo chứng chỉ cho localhost tên là mkcert.
Để cài được mkcert, với môi trường window, chúng ta cần cài Chocolatey
1. Để cài Chocolatey, tham khảo link : https://docs.chocolatey.org/en-us/choco/setup
Cách làm là:
Chạy cmd với quyền admin rồi đánh lệnh:
@”%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe” -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command “[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))” && SET “PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin”

Thông thường khi bạn cài bundle cho nodejs, Chocolatey đã cài được rồi.

2. Cài mkcert: choco install mkcert

3. Cài đặt mkcert:
mkcert -install
4. Cài đặt chứng chỉ cho các domain ở localhost:
mkcert example.com “*.example.com” example.test localhost 127.0.0.1

Tức là tạo ra chứng chỉ cho tên miền: example.com, các domain con của example.com, example.test, localhost, 127.0.0.1
2 file chứng chỉ được sinh ra: x.pem và x-key.pem

5. Setup chứng chỉ cho localhost
Với trường hợp dùng xampp, bạn vào xampp/apache/conf/extra/httpd-ssl.conf và edit file
Comment những dòng import chứng chỉ cũ lại, mới cài đặt nó là:
SSLCertificateFile “conf/ssl.crt/server.crt”
SSLCertificateKeyFile “conf/ssl.key/server.key”
Trường hợp này, tác giả tạo 1 folder ssl ở thư mục conf và copy 2 file chứng chỉ đã tạo ra ở trên vào đó, ví dụ tên 2 file là: example.pem và example-key.pem
Tiến hành khai báo đường dẫn chính xác đến file chứng chỉ:
SSLCertificateFile “conf/ssl/x.pem”
SSLCertificateKeyFile “conf/ssl/x-key.pem”
Đổi ServerName từ example.com:443 sang localhost:443
6. Restart apache rồi truy cập vào https://localhost

Trong trường hợp bạn muốn thêm 1 tên miền mới, tốt nhất bạn tạo ra 1 file virtualhost khác và set up lại 1 số thông tin:

Công thông tin cấu hình giống với port 80
Thêm các thông tin ssl:
SSLEngine on
SSLCertificateFile “link-certificate-file” (thay bằng file của bạn)
SSLCertificateKeyFile “link-certificate-key-file” (thay bằng file của bạn)