适用于私有云的 Edge v. 4.16.09
TLS(传输层安全协议,其前身是 SSL)是一种标准安全技术,用于确保在从应用到 Apigee Edge 到后端服务的整个 API 环境中进行安全加密的消息传递。
无论管理 API 的环境配置如何(例如,您是否在管理 API 前面使用代理、路由器和/或负载平衡器),Edge 都允许您启用和配置 TLS,以便您控制在本地 API 管理环境中进行的消息加密。
对于 Edge Private Cloud 的本地安装,您可以在多个位置配置 TLS:
- 路由器和消息处理器之间
- 访问 Edge Management API
- 访问 Edge 管理界面
- 从应用访问您的 API
- 对于从 Edge 到后端服务的访问
为前三项配置 TLS 如下所述。所有这些步骤都假定您已创建包含 TLS 认证和私钥的 JKS 文件。
如需配置 TLS 以便从应用访问 API,请参阅上文中的为私有云配置对 API 的 TLS 访问。如需配置 TLS 以便从 Edge 访问后端服务,请参阅上文中的配置从边缘到后端的 TLS(云和私有云)。
如需全面了解如何在 Edge 上配置 TLS,请参阅 TLS/SSL。
创建 JKS 文件
您可以将密钥库表示为 JKS 文件,其中密钥库包含您的 TLS 证书和私钥。创建 JKS 文件的方法有多种,其中一种是使用 openssl 和 keytool 实用程序。
例如,您有一个名为 server.pem 的 PEM 文件,其中包含您的 TLS 证书,并且有一个名为 private_key.pem 的 PEM 文件,其中包含您的私钥。使用以下命令创建 PKCS12 文件:
> openssl pkcs12 -export -clcerts -in server.pem -inkey private_key.pem -out keystore.pkcs12
您必须输入密钥的密码(如果有)和导出密码。此命令会创建一个名为 keystore.pkcs12 的 PKCS12 文件。
使用以下命令将其转换为名为 keystore.jks 的 JKS 文件:
> keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks
系统会提示您为 JKS 文件输入新密码,并输入 PKCS12 文件的现有密码。请确保为 JKS 文件使用与 PKCS12 文件相同的密码。
如果您必须指定密钥别名(例如在路由器和消息处理器之间配置 TLS 时),请将“-name”选项添加到 openssl 命令中:
> openssl pkcs12 -export -clcerts -in server.pem -inkey private_key.pem -out keystore.pkcs12 -name devtest
然后,将“-alias”选项添加到 keytool 命令中:
> keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks -alias devtest
生成经过混淆处理的密码
Edge TLS 配置流程的某些部分需要您在配置文件中输入经过混淆处理的密码。与输入明文密码相比,混淆过的密码更加安全。
您可以使用随 Edge 安装的 Jetty .jar 文件在 Java 中生成经过混淆处理的密码。使用以下格式的命令生成经过混淆处理的密码:
> IFS= read -rsp Password: passvar; echo; java -cp "/opt/apigee/edge-gateway/lib/thirdparty/*" org.eclipse.jetty.util.security.Password $passvar 2>&1 |tail -2; unset passvar
在系统提示时输入新密码。出于安全考虑,系统不会显示密码文本。此命令以如下形式返回密码:
OBF:58fh40h61svy156789gk1saj MD5:902fobg9d80e6043b394cb2314e9c6
配置 TLS 时,使用 OBF 指定的经过混淆处理的密码。
如需了解详情,请参阅这篇文章。