Edge for Private Cloud v. 4.16.05
TLS(传输层安全协议,其前身为 SSL)是一种标准安全技术,用于确保在 API 环境中从应用到 Apigee Edge 再到后端服务进行安全加密的消息传递。
无论您的 Management API 的环境配置如何(例如,是否在您的 Management API 前使用了代理、路由器和/或负载平衡器),Edge 都允许您启用和配置 TLS,从而您可以控制本地 API 管理环境中的消息加密。
对于在本地安装 Edge Private Cloud,您可以在多个位置配置 TLS:
- 路由器和消息处理器之间
- 访问 Edge Management API
- 访问 Edge 管理界面
- 对于从应用访问您的 API
- 用于从 Edge 访问后端服务
下文介绍了如何为前三项内容配置 TLS。所有这些过程都假定您已创建包含 TLS 证书和私钥的 JKS 文件。
如需配置 TLS 以从应用访问您的 API(上述第 4 条),请参阅为私有云配置对 API 的 TLS 访问。如需配置 TLS 以从边缘访问后端服务(上述第 5 条),请参阅配置从边缘到后端(云端和私有云)的 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 时),请在 openssl 命令中添加“-name" 选项:
> openssl pkcs12 -export -clcerts -in server.pem -inkey private_key.pem -out keystore.pkcs12 -name devtest
然后,在 keytool 命令中加入“-alias”选项:
> keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks -alias devtest
生成混淆密码
在边缘 TLS 配置过程的某些部分,您需要在配置文件中输入经过混淆处理的密码。相较于以纯文本形式输入密码,经过混淆处理的密码是一种更安全的替代方案。
您可以在 Java 中使用通过 Edge 安装的 Jetty .jar 文件生成经过混淆处理的密码。使用以下形式的命令生成混淆密码:
> java -cp /<inst_root>/apigee/edge-gateway/lib/thirdparty/jetty-http-x.y.z.jar:/<inst_root>/apigee/edge-gateway/lib/thirdparty/jetty-util-x.y.z.jar org.eclipse.jetty.http.security.Password yourPassword
其中,x.y.z 指定 Jetty .jar 文件的版本号,例如 8.0.4.v20111024。此命令以如下形式返回密码:
yourPassword OBF:58fh40h61svy156789gk1saj MD5:902fobg9d80e6043b394cb2314e9c6
配置 TLS 时,请使用 OBF 指定的混淆密码。
如需了解详情,请参阅这篇文章。