为 Management API 配置 TLS

默认情况下,管理 API 的 TLS 处于停用状态,您可以使用管理服务器节点的 IP 地址和端口 8080 通过 HTTP 访问 Edge 管理 API。例如:

http://ms_IP:8080

或者,您可以配置对管理 API 的 TLS 访问权限,以便您可以通过以下形式访问该 API:

https://ms_IP:8443

在此示例中,您将 TLS 访问权限配置为使用端口 8443。不过,Edge 不需要该端口号,您可以将管理服务器配置为使用其他端口值。唯一的要求是,您的防火墙允许通过指定的端口传输流量。

如需确保 Management API 的传入和传出流量加密,请在 /opt/apigee/customer/application/management-server.properties 文件中配置设置。

除了 TLS 配置之外,您还可以通过修改 management-server.properties 文件来控制密码验证(密码长度 和强度)。

确保您的 TLS 端口已打开

本部分中的过程会将 TLS 配置为在管理服务器上使用端口 8443。 无论您使用哪个端口,都必须确保该端口在管理 服务器上处于打开状态。例如,您可以使用以下命令将其打开:

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

配置 TLS

修改 /opt/apigee/customer/application/management-server.properties 文件,以控制管理 API 的传入和传出流量的 TLS 使用情况。如果此文件不存在, 请创建它。

如需配置对 Management API 的 TLS 访问权限,请执行以下操作:

  1. 生成包含 TLS 证书和私钥的密钥库 JKS 文件。如需了解详情,请参阅为本地 Edge 配置 TLS/SSL。
  2. 将密钥库 JKS 文件复制到管理服务器节点上的目录,例如 /opt/apigee/customer/application。
  3. 将 JKS 文件的所有权更改为“apigee”用户:
    chown apigee:apigee keystore.jks

    其中,keystore.jks 是密钥库文件的名称。

  4. 修改 /opt/apigee/customer/application/management-server.properties 以设置以下属性。如果该文件不存在,请创建它:
    conf_webserver_ssl.enabled=true
    # Leave conf_webserver_http.turn.off set to false
    # because many Edge internal calls use HTTP.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # Enter the obfuscated keystore password below.
    conf_webserver_keystore.password=OBF:obfuscatedPassword

    其中,keyStore.jks 是您的密钥库文件, obfuscatedPassword 是您的混淆密钥库密码。如需了解如何生成混淆密码,请参阅 为本地 Edge 配置 TLS/SSL。

  5. 使用以下命令重启 Edge 管理服务器:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

管理 API 现在支持通过 TLS 进行访问。

将新的 Edge 界面配置为使用 TLS 访问 Edge API

在上述过程中,Apigee 建议保留 conf_webserver_http.turn.off=false,以便 新的 Edge 界面可以继续通过 HTTP 进行 Edge API 调用。

请按照以下步骤将新的 Edge 界面配置为仅通过 HTTPS 进行这些调用:

  1. 按照上述说明配置对管理 API 的 TLS 访问权限。
  2. 确认 TLS 适用于 Management API 后,修改 /opt/apigee/customer/application/management-server.properties 以 设置以下属性:
    conf_webserver_http.turn.off=true
  3. 执行以下命令以重启 Edge 管理服务器:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart 
  4. 更新新的 Edge 界面配置,以通过 HTTPS 连接到管理服务器 。在新的 Edge 界面配置文件中设置以下属性: 文件:
    APIGEE_PORT_HTTP_MS=port
    MS_SCHEME=https

    其中,port 是之前由 conf_webserver_ssl.port 指定的端口(例如 8443)。

  5. 将更新后的配置应用于新的 Edge 界面:
    /opt/apigee/apigee-setup/bin/setup.sh -p ue -f configFile

    如需详细了解新的 Edge 界面配置文件,请参阅 配置新的 Edge 界面。如需配置对新的 Edge 界面本身的 HTTPS 访问权限,请参阅 为新的 Edge 界面配置 TLS。

管理服务器的 TLS 属性

下表列出了您可以在 management-server.properties 中设置的所有 TLS/SSL 属性:

属性 说明

conf_webserver_http.port=8080

默认值为 8080。

conf_webserver_ssl.enabled=false

用于启用/停用 TLS/SSL。如果启用了 TLS/SSL (true),您还必须设置 ssl.port 和 keystore.path 属性。

conf_webserver_http.turn.off=true

用于启用/停用 http 和 https。如果您只想使用 HTTPS,请将 默认值保留为 true。

conf_webserver_ssl.port=8443

TLS/SSL 端口。

当启用 TLS/SSL 时(conf_webserver_ssl.enabled=true),此属性是必需的。

conf_webserver_keystore.path=path

密钥库文件的路径。

当启用 TLS/SSL 时(conf_webserver_ssl.enabled=true),此属性是必需的。

conf_webserver_keystore.password=password

使用以下格式的混淆密码:OBF:xxxxxxxxxx

conf_webserver_cert.alias=alias

可选的密钥库证书别名

conf_webserver_keymanager.password=password

如果您的密钥管理器有密码,请使用以下格式输入混淆后的密码:

OBF:xxxxxxxxxx

conf_webserver_trust.all=[false | true]

conf_webserver_trust.store.path=path

conf_webserver_trust.store.password=password

配置受信任证书存储区的设置。确定是否要接受所有 TLS/SSL 证书(例如,接受非标准类型)。默认值为 false。提供受信任证书存储区的路径 ,并使用以下格式输入混淆后的受信任证书存储区密码:

OBF:xxxxxxxxxx

conf_http_HTTPTransport.ssl.cipher.suites.blacklist=CIPHER_SUITE_1, CIPHER_SUITE_2

conf_http_HTTPTransport.ssl.cipher.suites.whitelist=

指明您要包含或排除的任何加密套件。例如,如果您 发现密码存在漏洞,可以在此处将其排除。使用英文逗号分隔多个密码 。

您使用黑名单移除的任何密码都优先于白名单中包含的任何密码。

注意:默认情况下,如果未指定黑名单或白名单,则默认情况下会排除与以下 Java 正则表达式匹配的密码。

^.*_(MD5|SHA|SHA1)$
^TLS_RSA_.*$
^SSL_.*$
^.*_NULL_.*$
^.*_anon_.*$

不过,如果您指定了黑名单, 此过滤条件会被替换,并且您必须单独将所有密码列入黑名单。

如需了解密码套件和加密架构,请参阅 适用于 JDK 8 的 Java 加密架构 Oracle 提供程序文档。

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

用于确定以下内容的整数:

  • TLS/SSL 会话缓存大小(以字节为单位),用于存储多个客户端的会话信息。
  • TLS/SSL 会话在超时之前可以持续的时间(以 毫秒为单位)。