Config SSL cho môi trường local development

Mục tiêu

Thiết lập domain test ở local có sử dụng chứng thực SSL.

Kiến thức cần biết

Setup được Web server Nginx cơ bản.

Ý tưởng

Trên server NGINX, để config được SSL thì chúng ta cần để ý đến 2 thuộc tính cơ bản liên quan trong nội dung config đó là ssl_certificatessl_certificate_key:

Ý tưởng cơ bản là chúng ta sẽ làm sao tạo ra được 2 files .crt.key kia.

Bài viết này sẽ hướng dẫn các bạn thực hiện điều đó.

Thực hiện

Chuẩn bị shell script cần thiết để generate certification SSL

Trước tiên cần tạo một thư mục để clone source cũng như chứa các chứng chỉ SSL sau khi chạy lệnh generate. Ở đây mình giả dụ:

Sau đó clone từ source sau về bằng lệnh

Tiến hành generate SSL certification

Chạy đoạn script sau:

Quá trình generate sẽ bắt đầu, ban đầu các bạn sẽ nhận được promt yêu cầu nhập vào Password chứng thực, thứ tự như sau:

—> Nhập password bất kỳ

—> Nhập password confirm

—> Nhập thêm cái nữa

Đến đây thì các bạn cứ <enter> đến hết. Sau cùng sẽ như thế này:

 

Tiếp theo các bạn chạy lệnh

Generate key và certification

Sau khi chạy script trên xong, các bạn kiểm tra thử trong thư mục sẽ thấy có các file chứng thực mới đã được tạo ra như hình sau:

Đến đây các bạn cần ghi nhớ path đến 2 files server.crtserver.key.
Chúng ta sẽ sử dụng 2 files này để config trong file config của Nginx.

Set cấu hình nginx

Ở đây mình giả dụ mình đã có sẵn file config nginx theo domain như sau: /etc/nginx/sites-available/example.com. Mình sẽ mở file này để cập nhật vào các chứng thực SSL từ các files chứng thực đã được generated ở trên.

Ở đây mình sẽ add thêm các dòng sau vào block server { … }

Các bạn thay /path/to thành đường dẫn tuyệt đối tương ứng với vị trí thư mục chứa các files certificate đã generate ở trên.

Sau đó, Save file lại và restart Webserver nginx

—> Done.

Trên đây là cách mình dùng để cài đặt chứng thực SSL certification trên môi trường Test local (Lưu ý: KHÔNG THỰC HIỆN TRÊN MÔI TRƯỜNG PRODUCTION).

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.