Edge cho đám mây riêng tư phiên bản 4.18.01
TLS (Bảo mật tầng truyền tải, tiền thân là SSL) là công nghệ bảo mật tiêu chuẩn để đảm bảo nhắn tin an toàn, được mã hoá trên môi trường API của bạn. Bạn có thể định cấu hình TLS trên Cổng API BaaS và các nút Ngăn xếp API BaaS.
Hình ảnh sau đây cho thấy sơ đồ triển khai thông thường cho API BaaS với một nút Cổng BaaS duy nhất và ba nút Ngăn xếp API BaaS.

Nhà phát triển sử dụng trình duyệt để gửi yêu cầu đến Cổng thông tin. Theo mặc định, các yêu cầu sử dụng giao thức HTTP trên cổng 9000 của nút Cổng thông tin.
Quá trình triển khai này bao gồm một trình cân bằng tải giữa các nút Cổng và Ngăn xếp. Trong cấu hình này, Cổng thông tin sẽ gửi các yêu cầu HTTP đến trình cân bằng tải, sau đó trình cân bằng tải sẽ chuyển tiếp các yêu cầu đó đến một trong các nút Ngăn xếp. Đây là môi trường triển khai được đề xuất cho hệ thống phát hành công khai.
Các lựa chọn cấu hình TLS
Khi định cấu hình TLS cho API BaaS, bạn có một số lựa chọn:
- Định cấu hình TLS trên Cổng thông tin và trên trình cân bằng tải cho các nút Ngăn xếp
Trong cấu hình này, nhà phát triển sử dụng giao thức HTTPS để truy cập vào Cổng thông tin và Cổng thông tin chạy trong trình duyệt sử dụng HTTPS để gửi yêu cầu đến các nút Ngăn xếp thông qua trình cân bằng tải. Trình cân bằng tải sử dụng HTTP để truy cập vào các nút Stack. - Định cấu hình TLS trên Cổng thông tin, trình cân bằng tải và các nút Ngăn xếp
Để tăng cường bảo mật, hãy định cấu hình trình cân bằng tải để sử dụng TLS nhằm truy cập vào các nút Ngăn xếp. - Định cấu hình TLS trên Cổng thông tin và trên một nút Stack
Trong một môi trường nhỏ, chẳng hạn như trong môi trường thử nghiệm hoặc môi trường phát triển, bạn có thể chỉ có một nút Stack, nghĩa là không cần phải có trình cân bằng tải. Trong cấu hình này, hãy định cấu hình TLS trên cả nút Cổng thông tin và nút Ngăn xếp. - Định cấu hình TLS trên trình cân bằng tải cho Cổng
Một lựa chọn không được trình bày ở trên là sử dụng trình cân bằng tải trước nút Cổng. Trong cấu hình đó, bạn có thể định cấu hình TLS trên trình cân bằng tải và tuỳ ý định cấu hình TLS trên kết nối giữa trình cân bằng tải và Cổng thông tin.
Đảm bảo rằng cổng TLS đang mở
Các quy trình dưới đây định cấu hình TLS trên cổng Cổng thông tin mặc định là 9000 và nút Ngăn xếp là 8080. Tuy nhiên, bạn có thể thay đổi cổng này nếu muốn.
Bất kể bạn sử dụng cổng nào, bạn phải đảm bảo rằng cổng đó đang mở trên nút. Ví dụ: bạn có thể dùng lệnh sau để mở cổng 8443:
$ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT --verbose
Định cấu hình TLS trên API BaaS Stack
Theo mặc định, TLS bị tắt cho API BaaS Stack. Sau đó, bạn truy cập vào BaaS API qua HTTP bằng cách sử dụng địa chỉ IP hoặc tên DNS của nút Stack và cổng 8080. Ví dụ:
http://stack_IP:8080
Ngoài ra, bạn có thể định cấu hình quyền truy cập TLS vào BaaS API để có thể truy cập vào API này theo biểu mẫu:
https://stack_IP:8080
Trong ví dụ này, bạn định cấu hình quyền truy cập TLS để sử dụng cổng 8080. Tuy nhiên, bạn không bắt buộc phải dùng cổng 8080 mà có thể định cấu hình Stack để sử dụng một cổng khác. Yêu cầu duy nhất là tường lửa của bạn cho phép lưu lượng truy cập qua cổng được chỉ định.
Stack chỉ có thể hỗ trợ một loại yêu cầu (HTTP hoặc HTTPS) qua một cổng duy nhất. Do đó, nếu định cấu hình quyền truy cập HTTPS trên cổng 8080, bạn không thể sử dụng HTTP để truy cập vào cổng 8080. Nếu bạn định cấu hình Stack để sử dụng cổng 8443 với HTTPS, thì Stack sẽ không còn nghe trên cổng 8080 nữa.
Hãy làm theo quy trình sau để định cấu hình quyền truy cập TLS vào Stack:
- Tạo tệp JKS của kho khoá chứa chứng chỉ TLS và khoá riêng tư của bạn. Để biết thêm thông tin, hãy xem bài viết Định cấu hình TLS/SSL cho Edge On Premises.
Lưu ý: Đảm bảo rằng mật khẩu trên kho khoá và mật khẩu cho khoá giống nhau. - Sao chép tệp JKS của kho khoá vào một thư mục trên nút Stack, chẳng hạn như /opt/apigee/customer/application. Người dùng "apigee" phải truy cập được vào thư mục này.
- Thay đổi quyền sở hữu tệp JKS thành người dùng "apigee":
> chown apigee:apigee /opt/apigee/customer/application/keystore.jks
trong đó keystore.jks là tên tệp kho khoá của bạn. - Chỉnh sửa tệp /opt/apigee/customer/application/usergrid.properties để đặt các thuộc tính sau, bao gồm cả đường dẫn đến tệp JKS và mật khẩu trên kho khoá và khoá. Nếu tệp đó không tồn tại, hãy tạo tệp:
tomcat-server_scheme=https
tomcat-server_secure=true
tomcat-server_ssl.enabled=true
tomcat-server_keystore.type=JKS
tomcat-server_keystore.file=/opt/apigee/customer/application/keystore.jks
tomcat-server_keystore.password=password
tomcat-server_keyalias=keystore_alias
tomcat-server_clientauth.enabled=false
tomcat-server_ssl.protocols=TLSv1,TLSv1.1,TLSv1.2
# Theo mặc định, quyền truy cập TLS sử dụng cổng 8080.
# Sử dụng thuộc tính này để chỉ định một cổng khác.
# tomcat-server_port=8080
Cảnh báo: Giá trị password phải ở dạng văn bản rõ ràng. Do đó, bạn nên bảo vệ usergrid.properties khỏi bị truy cập trái phép.
Sử dụng thuộc tính tomcat-server_keyalias để chỉ định bí danh kho khoá. Bạn đặt bí danh khoá tại thời điểm tạo khoá. Ví dụ: bạn có thể đặt bí danh bằng cách sử dụng tuỳ chọn -alias cho lệnh keytool.
Sử dụng tomcat-server_ssl.protocols để đặt các giao thức TLS mà Stack hỗ trợ. Để xem danh sách các giao thức được Java 8 hỗ trợ, hãy xem http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#jssename. - Định cấu hình nút Ngăn xếp:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure - Khởi động lại BaaS Stack:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart - Xác nhận rằng TLS đang hoạt động bằng cách chạy lệnh cURL sau trên nút Stack bằng HTTPS:
> curl -k https://localhost:8080/status -v
Nếu TLS được định cấu hình chính xác, bạn sẽ thấy một phản hồi chứa thông tin trạng thái.
Nếu bạn đã định cấu hình quyền truy cập TLS qua một cổng không phải là 8080, hãy sửa đổi lệnh trên để sử dụng đúng cổng. - Lặp lại trên tất cả các nút Stack.
- Nếu bạn có trình cân bằng tải trước các nút Stack, hãy định cấu hình trình cân bằng tải để gửi yêu cầu đến các nút Stack qua HTTPS. Hãy xem tài liệu về trình cân bằng tải để biết thêm thông tin.
Nếu Cổng thông tin gửi yêu cầu trực tiếp đến Stack, hãy định cấu hình Cổng thông tin để truy cập vào Stack qua HTTPS như mô tả trong phần sau. - Sử dụng quy trình dưới đây trong phần "Định cấu hình các nút Ngăn xếp BaaS API cho TLS trên Ngăn xếp hoặc Cổng" để đảm bảo rằng nút Ngăn xếp có URL TLS chính xác khi tạo phản hồi của người dùng.
Định cấu hình Cổng để truy cập vào Ngăn xếp qua TLS
Cổng BaaS chạy trong một trình duyệt hoạt động bằng cách thực hiện lệnh gọi API đến BaaS Stack. Nếu bạn định cấu hình Ngăn xếp BaaS để sử dụng TLS, thì bạn cũng phải định cấu hình Cổng để thực hiện các lệnh gọi đó qua HTTPS.
Một bản cài đặt API BaaS thường được định cấu hình để:
- Sử dụng trình cân bằng tải giữa các nút Cổng và Ngăn xếp
Định cấu hình trình cân bằng tải để gửi yêu cầu đến các nút Ngăn xếp qua HTTPS. Hãy xem tài liệu về trình cân bằng tải để biết thêm thông tin.
Trong cấu hình này, Cổng thông tin có thể truy cập vào trình cân bằng tải qua HTTP hoặc HTTPS, tuỳ thuộc vào cách bạn định cấu hình trình cân bằng tải. Nếu trình cân bằng tải sử dụng TLS, hãy làm theo quy trình bên dưới để định cấu hình Cổng thông tin nhằm gửi yêu cầu đến trình cân bằng tải HTTPS. - Yêu cầu Cổng thông tin gửi yêu cầu trực tiếp đến Stack
Định cấu hình Cổng thông tin để truy cập vào Stack qua HTTPS như mô tả dưới đây.
Sử dụng quy trình sau để định cấu hình Cổng API BaaS nhằm thực hiện lệnh gọi API qua HTTPS:
- Định cấu hình quyền truy cập TLS trên BaaS Stack như mô tả ở trên hoặc trên trình cân bằng tải cho các nút Stack như mô tả trong tài liệu về trình cân bằng tải.
- Chỉnh sửa /opt/apigee/customer/application/portal.properties
để đặt thuộc tính sau. Nếu tệp đó không tồn tại, hãy tạo tệp:
baas.portal.config.overrideUrl=https://stackIP:port
Chỉ định làm giá trị của thuộc tính này là địa chỉ IP hoặc tên DNS và cổng của nút API Stack cho một lượt cài đặt nút duy nhất hoặc của trình cân bằng tải nếu bạn có trình cân bằng tải trước các nút API BaaS Stack. - Định cấu hình nút Cổng:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal configure - Khởi động lại Cổng thông tin bằng lệnh:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal restart - Nếu bạn đã sử dụng chứng chỉ tự ký khi định cấu hình quyền truy cập TLS vào Stack
ở trên, thì trình duyệt của bạn có thể không cho phép các yêu cầu đến Stack từ Cổng thông tin. Nếu bạn thấy
lỗi trong trình duyệt cho biết không cho phép truy cập HTTPS vào Stack, hãy yêu cầu
URL sau trong trình duyệt và thêm một ngoại lệ bảo mật để cho phép truy cập:
https://stackIP:port/status
Chỉ định địa chỉ IP hoặc tên DNS và cổng của nút API Stack hoặc trình cân bằng tải.
Định cấu hình TLS trên Cổng API BaaS
Theo mặc định, người dùng truy cập vào Cổng thông tin bằng cách gửi các yêu cầu HTTP không mã hoá qua cổng 9000 trên máy chủ của Cổng thông tin. Bạn có thể định cấu hình cổng thông tin để sử dụng HTTPS nhằm mã hoá dữ liệu gửi đến và gửi từ cổng thông tin.
Theo mặc định, bạn truy cập vào Cổng thông tin qua HTTP bằng cách sử dụng địa chỉ IP hoặc tên DNS của nút Cổng thông tin và cổng 9000. Ví dụ:
http://portal_IP:9000
Ngoài ra, bạn có thể định cấu hình quyền truy cập TLS vào Cổng thông tin để có thể truy cập vào cổng thông tin đó theo biểu mẫu:
https://portal_IP:9443
Trong ví dụ này, bạn định cấu hình quyền truy cập TLS để sử dụng cổng 9443. Tuy nhiên, bạn không bắt buộc phải dùng cổng 9443 – bạn có thể định cấu hình Portal để sử dụng một cổng khác.
Cổng chỉ có thể hỗ trợ một loại yêu cầu (HTTP hoặc HTTPS) qua một cổng duy nhất. Do đó, nếu định cấu hình quyền truy cập HTTPS trên cổng 9000, bạn không thể sử dụng HTTP để truy cập vào cổng 9000. Nếu bạn định cấu hình Cổng thông tin để sử dụng cổng 9443 với HTTPS, thì Cổng thông tin sẽ không còn nghe trên cổng 9000 nữa.
Cách định cấu hình TLS cho Cổng thông tin:
- Tạo tệp khoá và tệp chứng chỉ ở định dạng PEM.
Lưu ý: Đảm bảo rằng không có mật khẩu/cụm mật khẩu trên khoá hoặc chứng chỉ. - Sao chép các tệp PEM vào một thư mục trên nút Cổng, chẳng hạn như /opt/apigee/customer/application. Người dùng "apigee" phải truy cập được vào thư mục này.
- Thay đổi quyền sở hữu tệp PEM thành người dùng "apigee":
> chown apigee:apigee /opt/apigee/customer/application/*.PEM - Chỉnh sửa tệp /opt/apigee/customer/application/portal.properties để đặt các thuộc tính sau. Nếu tệp đó không tồn tại, hãy tạo tệp:
baas.portal.ssl=on
baas.portal.ssl.certificate=/opt/apigee/customer/application/defaultcert.pem
baas.portal.ssl.key=/opt/apigee/customer/application/defaultkey.pem
baas.portal.ssl.protocols=TLSv1 TLSv1.1 TLSv1.2
# Theo mặc định, quyền truy cập TLS sử dụng cổng 9000.
# Sử dụng thuộc tính này để chỉ định một cổng khác.
# baas.portal.listen=9000
Sử dụng baas.portal.ssl.protocols để đặt các giao thức TLS mà Cổng thông tin hỗ trợ. Để biết danh sách các giao thức được hỗ trợ, hãy xem danh sách tên giao thức SSL do Nginx xác định: http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_protocols. - Định cấu hình nút Cổng:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal configure - Khởi động lại Cổng:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal restart - Sử dụng quy trình dưới đây trong phần "Định cấu hình các nút Ngăn xếp API BaaS cho TLS trên Ngăn xếp hoặc Cổng" để đảm bảo rằng nút Ngăn xếp có URL TLS chính xác cho Cổng.
Định cấu hình các nút API BaaS cho TLS trên Ngăn xếp hoặc Cổng thông tin
Nếu bạn thêm một trình cân bằng tải trước các nút Stack hoặc Portal, hoặc nếu bạn bật TLS trực tiếp trên nút Portal hoặc Stack, thì bạn phải định cấu hình các nút bằng URL chính xác để truy cập vào Stack và Portal. Ví dụ: các nút Ngăn xếp yêu cầu thông tin này khi:
- Đưa URL vào phản hồi trong các yêu cầu API BaaS.
- Thêm đường liên kết vào mẫu email khi đặt lại mật khẩu hoặc gửi các thông báo khác.
- Chuyển hướng người dùng đến các trang cụ thể trên Cổng thông tin.
Nếu bạn sử dụng trình cân bằng tải trước các nút Ngăn xếp hoặc định cấu hình TLS trên nút Ngăn xếp, hãy đặt thuộc tính sau trong /opt/apigee/customer/application/usergrid.properties:
usergrid-deployment_usergrid.api.url.base=http://localhost:8080
Thay thế http://localhost:8080 bằng URL của trình cân bằng tải. Nếu trình cân bằng tải được định cấu hình để sử dụng TLS, hãy sử dụng giao thức HTTPS. Bạn chỉ cần thêm cổng nếu đang sử dụng cổng không chuẩn, tức là cổng khác với cổng 80 cho HTTP và cổng 443 cho HTTPS.
Bạn cũng phải đặt thuộc tính sau trong /opt/apigee/customer/application/portal.properties nếu bạn sử dụng trình cân bằng tải trước các nút Stack:
baas.portal.config.overrideUrl=http://localhost:8080
Thay thế http://localhost:8080 bằng URL của trình cân bằng tải cho Ngăn xếp.
Nếu bạn sử dụng trình cân bằng tải trước nút Cổng hoặc định cấu hình TLS trên nút Ngăn xếp, hãy đặt các thuộc tính sau trong usergrid.properties:
usergrid-deployment_portal.url=http://localhost:9000
Thay thế http://localhost:9000 bằng URL của trình cân bằng tải. Nếu trình cân bằng tải được định cấu hình để sử dụng TLS, hãy sử dụng giao thức HTTPS. Bạn chỉ cần thêm cổng nếu đang sử dụng cổng không chuẩn, tức là cổng khác với cổng 80 cho HTTP và cổng 443 cho HTTPS.
Sau khi chỉnh sửa usergrid.properties:
- Định cấu hình nút Ngăn xếp:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure - Khởi động lại BaaS Stack:
> /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart - Nếu bạn đã sửa đổi portal.properties, hãy định cấu hình nút Cổng thông tin:??
> /opt/apigee/apigee-service/bin/apigee-service baas-portal configure - Khởi động lại Cổng BaaS:
> /opt/apigee/apigee-service/bin/apigee-service baas-portal restart