Định cấu hình TLS cho giao diện người dùng quản lý

Theo mặc định, bạn truy cập vào giao diện người dùng Edge qua HTTP bằng cách sử dụng địa chỉ IP của nút Máy chủ quản lý và cổng 9000. Ví dụ:

http://ms_IP:9000

Ngoài ra, bạn có thể định cấu hình quyền truy cập TLS vào giao diện người dùng Edge để có thể truy cập vào giao diện đó dưới dạng như sau:

https://ms_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, Edge không yêu cầu số cổng đó – bạn có thể định cấu hình Máy chủ quản lý để sử dụng các giá trị cổng khác. Yêu cầu duy nhất là tường lửa của bạn phải cho phép lưu lượng truy cập qua cổng đã chỉ định.

Đảm bảo rằng cổng TLS (Bảo mật tầng truyền tải) đang mở

Quy trình trong phần này sẽ định cấu hình TLS để sử dụng cổng 9443 trên Máy chủ quản lý. Bất kể bạn sử dụng cổng nào, bạn phải đảm bảo rằng cổng đó đã được mở trên Máy chủ quản lý. Ví dụ: bạn có thể dùng lệnh sau để mở tệp:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9443 -j ACCEPT --verbose

Định cấu hình TLS

Hãy sử dụng quy trình sau đây để định cấu hình quyền truy cập TLS vào giao diện người dùng quản lý:

  1. Tạo tệp JKS của kho khoá có chứa chứng chỉ TLS và khoá riêng tư của bạn, rồi sao chép tệp đó vào nút Máy chủ quản lý. Để biết thêm thông tin, hãy xem nội dung Định cấu hình TLS/SSL cho Edge trên cơ sở.
  2. Chạy lệnh sau để định cấu hình TLS:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
  3. Nhập số cổng HTTPS, ví dụ: 9443.
  4. Chỉ định xem bạn có muốn tắt quyền truy cập HTTP vào giao diện người dùng quản lý hay không. Theo mặc định, bạn có thể truy cập giao diện người dùng quản lý qua HTTP trên cổng 9000.
  5. Nhập thuật toán kho khoá. Lựa chọn mặc định là JKS.
  6. Nhập đường dẫn tuyệt đối đến tệp JKS của kho khoá.

    Tập lệnh này sẽ sao chép tệp vào thư mục /opt/apigee/customer/conf trên nút Máy chủ quản lý và thay đổi quyền sở hữu của tệp thành "apigee".

  7. Nhập mật khẩu kho khoá văn bản rõ ràng.
  8. Sau đó, tập lệnh sẽ khởi động lại giao diện người dùng quản lý Edge. Sau khi khởi động lại, giao diện người dùng quản lý sẽ hỗ trợ quyền truy cập qua TLS.

    Bạn có thể xem các chế độ cài đặt này trong /opt/apigee/etc/edge-ui.d/SSL.sh.

Sử dụng tệp cấu hình để định cấu hình TLS

Thay vì quy trình trên, bạn có thể chuyển tệp cấu hình đến lệnh trong bước 2 của quy trình. Bạn cần phải dùng phương thức này nếu muốn đặt các thuộc tính TLS (không bắt buộc).

Để sử dụng tệp cấu hình, hãy tạo tệp mới và thêm các thuộc tính sau:

HTTPSPORT=9443
DISABLE_HTTP=y
KEY_ALGO=JKS
KEY_FILE_PATH=/opt/apigee/customer/application/mykeystore.jks
KEY_PASS=clearTextKeystorePWord

Lưu tệp vào thư mục cục bộ với bất kỳ tên nào bạn muốn. Sau đó, hãy sử dụng lệnh sau để định cấu hình TLS:

/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

trong đó configFile là đường dẫn đầy đủ đến tệp bạn đã lưu.

Định cấu hình giao diện người dùng Edge khi TLS kết thúc trên trình cân bằng tải

Nếu có một trình cân bằng tải chuyển tiếp các yêu cầu đến giao diện người dùng Edge, thì bạn có thể chọn chấm dứt kết nối TLS trên trình cân bằng tải, sau đó yêu cầu trình cân bằng tải chuyển tiếp các yêu cầu này đến giao diện người dùng Edge qua HTTP. Cấu hình này được hỗ trợ nhưng bạn cần định cấu hình trình cân bằng tải và giao diện người dùng Edge cho phù hợp.

Cần có cấu hình bổ sung khi giao diện người dùng Edge gửi email cho người dùng để đặt mật khẩu khi người dùng được tạo hoặc khi người dùng yêu cầu đặt lại mật khẩu bị mất. Email này chứa URL mà người dùng chọn để đặt hoặc đặt lại mật khẩu. Theo mặc định, nếu giao diện người dùng Edge không được định cấu hình để sử dụng TLS, thì URL trong email đã tạo sẽ sử dụng giao thức HTTP, chứ không phải HTTPS. Bạn phải định cấu hình trình cân bằng tải và giao diện người dùng Edge để tạo một địa chỉ email sử dụng HTTPS.

Để định cấu hình trình cân bằng tải, hãy đảm bảo trình cân bằng tải đặt tiêu đề sau đây trong các yêu cầu được chuyển tiếp đến giao diện người dùng Edge:

X-Forwarded-Proto: https

Cách định cấu hình giao diện người dùng Edge:

  1. Mở tệp /opt/apigee/customer/application/ui.properties trong trình chỉnh sửa. Nếu tệp không tồn tại, hãy tạo tệp:
    vi /opt/apigee/customer/application/ui.properties
  2. Đặt thuộc tính sau trong ui.properties:
    conf/application.conf+trustxforwarded=true
  3. Lưu thay đổi vào ui.properties.
  4. Khởi động lại giao diện người dùng Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Đặt thuộc tính TLS (không bắt buộc)

Giao diện người dùng của Edge hỗ trợ các thuộc tính cấu hình TLS (không bắt buộc) mà bạn có thể dùng để thiết lập các thuộc tính sau:

  • Giao thức TLS mặc định
  • Danh sách giao thức TLS được hỗ trợ
  • Các thuật toán TLS được hỗ trợ
  • Thuật toán mật mã TLS được hỗ trợ

Các tham số không bắt buộc này chỉ có sẵn khi bạn đặt thuộc tính cấu hình sau trong tệp cấu hình, như mô tả trong bài viết Sử dụng tệp cấu hình để định cấu hình TLS:

TLS_CONFIGURE=y

Bảng sau đây mô tả các thuộc tính này:

Tài sản Nội dung mô tả
TLS_PROTOCOL Xác định giao thức TLS mặc định cho giao diện người dùng Edge. Theo mặc định, giao thức này là TLS 1.2. Các giá trị hợp lệ là TLSv1.2, TLSv1.1, TLSv1.
TLS_ENABLED_PROTOCOL

Xác định danh sách các giao thức được bật dưới dạng một mảng được phân tách bằng dấu phẩy. Ví dụ:

TLS_ENABLED_PROTOCOL=[\"TLSv1.2\", \"TLSv1.1\", \"TLSv1\"]

Lưu ý rằng bạn phải thoát ký tự ".

Theo mặc định, tất cả giao thức đều được bật.

TLS_DISABLED_ALGO

Xác định bộ thuật toán mật mã bị vô hiệu hoá và cũng có thể dùng để ngăn việc sử dụng các kích thước khoá nhỏ cho quá trình bắt tay TLS. Không có giá trị mặc định.

Các giá trị được truyền đến TLS_DISABLED_ALGO tương ứng với các giá trị được phép cho jdk.tls.disabledAlgorithms như mô tả tại đây. Tuy nhiên, bạn phải thoát ký tự dấu cách khi đặt TLS_DISABLED_ALGO:

TLS_DISABLED_ALGO=EC\ keySize\ <\ 160,RSA\ keySize\ <\ 2048

TLS_ENABLED_CIPHERS

Xác định danh sách các thuật toán mật mã TLS có sẵn dưới dạng một mảng được phân tách bằng dấu phẩy. Ví dụ:

TLS_ENABLED_CIPHERS=[\"TLS_DHE_RSA_WITH_AES_128_CBC_SHA\",
\"TLS_DHE_DSS_WITH_AES_128_CBC_SHA\"]

Lưu ý rằng bạn phải thoát ký tự ".

Danh sách mặc định các thuật toán mật mã được bật là:

"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_RC4_128_SHA",
"SSL_RSA_WITH_RC4_128_MD5",
"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"

Tìm danh sách các thuật toán mật mã có sẵn tại đây.

Tắt giao thức TLS

Để vô hiệu hoá giao thức TLS, bạn cần chỉnh sửa tệp cấu hình (như mô tả trong phần Sử dụng tệp cấu hình để định cấu hình TLS) như sau:

  1. Mở tệp cấu hình trong trình chỉnh sửa.
  2. Để vô hiệu hoá một giao thức TLS (ví dụ: TLS phiên bản 1.0), hãy thêm đoạn mã sau vào tệp cấu hình:
    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1"

    Để vô hiệu hoá nhiều giao thức (ví dụ: TLSv1.0 và TLSv1.1), hãy thêm đoạn mã sau vào tệp cấu hình:

    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1, tlsv1.1"
  3. Lưu các thay đổi vào tệp cấu hình.
  4. Chạy lệnh sau để định cấu hình TLS:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

    trong đó configFile là đường dẫn đầy đủ đến tệp cấu hình.

  5. Khởi động lại giao diện người dùng Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Sử dụng cookie an toàn

Apigee Edge dành cho đám mây riêng tư hỗ trợ việc thêm cờ secure vào tiêu đề Set-Cookie cho các phản hồi từ giao diện người dùng Edge. Nếu có cờ này thì cookie chỉ có thể được gửi qua các kênh có bật TLS. Nếu không có cookie này, thì cookie có thể được gửi qua bất kỳ kênh nào, cho dù cookie đó có an toàn hay không.

Những cookie không có cờ secure có thể cho phép kẻ tấn công nắm bắt và sử dụng lại cookie đó hoặc xâm nhập một phiên đang hoạt động. Do đó, cách tốt nhất là bật chế độ cài đặt này.

Cách đặt cờ secure cho cookie giao diện người dùng Edge:

  1. Mở tệp sau trong trình chỉnh sửa văn bản:
    /opt/apigee/customer/application/ui.properties

    Hãy tạo tệp nếu chưa có.

  2. Đặt thuộc tính conf_application_session.secure thành true trong tệp ui.properties như ví dụ sau:
    conf_application_session.secure=true
  3. Lưu các thay đổi.
  4. Khởi động lại giao diện người dùng Edge bằng cách sử dụng tiện ích apigee-serice, như trong ví dụ sau:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

Để xác nhận rằng thay đổi đang hoạt động, hãy kiểm tra tiêu đề phản hồi trên giao diện người dùng Edge bằng cách sử dụng một tiện ích như curl; ví dụ:

curl -i -v https://edge_UI_URL

Tiêu đề phải chứa một dòng như sau:

Set-Cookie: secure; ...

Tắt TLS trên giao diện người dùng Edge

Để tắt TLS trên giao diện người dùng Edge, hãy sử dụng lệnh sau:

/opt/apigee/apigee-service/bin/apigee-service edge-ui disable-ssl