- vừa được xem lúc

Bảo mật các API service chạy trên container với chứng chỉ SSL/ TSL

0 0 11

Người đăng: Sunteco Tech Team

Theo Viblo Asia

SSL/TLS là viết tắt của Secure Sockets Layer/Transport Layer Security, là một giao thức mã hóa dữ liệu được sử dụng để bảo mật giao tiếp giữa máy tính và một máy chủ, chẳng hạn như một trang web hoặc một REST API. Nó mã hóa dữ liệu trước khi gửi đi và giải mã dữ liệu khi nhận được, đảm bảo rằng thông tin giao tiếp giữa hai đầu cuối là bảo mật và không bị đánh cắp hoặc thay đổi trong quá trình truyền tải.

Để ví dụ, đầu tiên mình tạo 1 Spring boot project, và tạo một API đơn giản như sau.

Cấu trúc thư mục của project:

Run project và kiểm tra API, hiện tại API đang publish qua giao thức HTTP, chưa được bảo mật.

Làm cách nào để tạo chứng chỉ SSL/TSL tự ký?

Dùng keytool (một tool trong bộ JDK, nằm ở thư mục $JAVA_HOME/bin) để tạo ra 1 chứng thư tự ký ở định dạng PKCS 12. Chạy lệnh:

keytool -genkeypair -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore key-cert-anhdo.p12 -validity 365

Làm theo các chỉ dẫn trên command line, hoàn tất ta sẽ có một Certificate ở thư mục hiện tại. Copy chứng chỉ vào thư mục resource.

Sau đó thêm properties vào file application.properties

Chạy lại Spring boot app và truy cập vào https://localhost:8443 để kiểm tra.

Bảo mật các API service chạy trên Container với chứng chỉ SSL/TSL

Ngày nay, việc chạy các API service trong Container đã trở nên phổ biến đối và là tiêu chuẩn chung với các dự án phát triển theo kiến trúc microservices.

Để đưa các API service chạy trong các Container và publish các API service ra Internet một cách bảo mật, chúng ta cần phải có các Chứng chỉ SSL/TSL được cấp phát bởi các cơ quan cấp phát chứng thư (CA) tin tưởng. Các chứng chỉ SSL/TSL đó giúp xác thực domain trỏ tới API service và mã hóa thông tin khi gọi các API qua Internet.

Để đơn giản hóa quá trình đưa các API service chạy trong các Container và publish các API service ra Internet một cách bảo mật, các bạn có thể sử dụng các dịch vụ của AWS hoặc Google Cloud, Sunteco Cloud.

Trong bài viết này, mình hướng dẫn các bạn thao tác với Sunteco Cloud. Đây là một nhà cung cấp Cloud trong nước, nên các bạn không lo service của mình bị chậm do cá mập cắn cáp nhé.

Trước hết cần push Spring boot project của mình lên trên Docker Hub.

Tạo file Dockerfile để build project thành image

Sau đó chạy lệnh để build Dockerfile:

Push project lên Docker Hub

Nếu bạn chưa có account docker, hãy đăng ký 1 tài khoản trên docker hub, sau đó login qua command docker login

Chạy lệnh docker push để push image vừa tạo lên trên Docker Hub

Đưa API service lên chạy trong Sun Spinner

Các bạn đăng ký 1 tài khoản trên console.sunteco.vn. Việc này khá đơn giản, mình không nêu rõ ở đây nữa. Sau đó tạo một workspace.

Truy cập vào Workspace và tạo 1 Spinner Service:

Thao tác chọn image

Chọn image là image vừa được publish lên Docker hub:

Chọn Review & Deploy và Spinner nhanh chóng được tạo

Truy cập vào Spinner vừa được tạo và chọn vào mục App Publishing

Để publish App ra Internet sử dụng domain của Sunteco, chọn Internet Publish (using Sunteco domain) và nhấn New Route:

Tại màn hình Add New Route điền Route Name, và chọn Port name là port mapping vừa được tạo.

Ấn Save, là bạn đã tạo được 1 sub-domain có thể publish ra ngoài Internet. Sub-domain được tạo ra đã có sẵn một SSL/TSL xác thực cho domain đi kèm.

Vậy là xong, bạn đã có thể sử dụng URL đã được secure với SSL/TSL!

Trải nghiệm miễn phí Sunteco Cloud tại đây.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Có thực sự an toàn với Authentication và Authorization , mật khẩu có nên lưu ở dạng text ?

Có thực sự an toàn với Authentication và Authorization , mật khẩu có nên lưu ở dạng text . Hơn nữa, vì chúng ta đang lưu trữ thông tin đăng nhập và hỗ trợ quy trình đăng nhập, chúng ta biết rằng sẽ có thông tin xác thực được gửi qua hạ tầng mạng.

0 0 46

- vừa được xem lúc

SSL hoạt động như thế nào

Https sử dụng giao thức SSL để bảo mật thông tin liên lạc bằng cách truyền dữ liệu được mã hóa. . Asymmetric Cryptography. Symmetric Cryptography.

1 1 85

- vừa được xem lúc

Bảo mật internet: HTTPS và SSL/TLS như giải thích cho trẻ 5 tuổi

(Mình chém gió đấy, trẻ 5 tuổi còn đang tập đọc mà hiểu được cái này thì là thần đồng, là thiên tài, là mình cũng lạy). . . Xin chào các bạn.

0 0 78

- vừa được xem lúc

Phân biệt server xịn và server pha ke bằng SSL Pinning

Xin chào các bạn, trong bài viết này mình muốn chia sẻ về một kĩ thuật rất nên dùng khi cần tăng tính bảo mật của kết nối internet: SSL Pinning. Trong bài viết trước, mình đã giải thích khá kĩ về SSL,

0 0 572

- vừa được xem lúc

Tạo SSL Certificate Authority cho HTTPS trên local

Trên đây cũng có khá nhiều bài viết làm sao để tạo self-signed SSL cho localhost để có thể test thử HTTPS. Nhưng những cách đó đều có một nhược điểm là khi vào trang sẽ có cảnh báo NET::ERR_CERT_AUTHO

0 0 32

- vừa được xem lúc

Cấu hình SSL HTTPS với nginx và Let's Enscrypt

Bạn vừa mua domain Toidicafe.vn ở Tenten giá 5 lít và trỏ nó về server của Vultr.

0 0 28