安全套接字层 (SSL) 是一种可确保在网络上进行私密通信的连接协议。借助 SSL,客户端和服务器应用程序可安全地传输数据,窃听、篡改或消息伪造的风险极低。在本教程中,您将学习如何配置 SSL 来在各种客户端应用程序与 dashDB™ 之间建立安全的数据连接,dashDB 是 IBM 的 Bluemix® 平台中包含的一个数据仓库和分析解决方案。
全新的 developerWorks Premium 会员计划提供了强大的开发工具和资源,包括 500 篇通过 Safari Books Online 提供的顶级技术文章(数十篇是专门针对 Java 开发人员的),最重要开发人员活动的大幅折扣,最新的 O'Reilly 大会的视频录像,等等。立即注册。
您不需要熟悉 dashDB 或 R 编程语言,即可理解本文中的配置指令。只需 在您的 Bluemix 平台上配备 dashDB ,或者您可使用 JDBC、.Net 或 Windows ODBC/CLI 远程访问它。
阅读: dashDB 入门
观看: IBM dashDB:云中的数据仓库的强大功能
强烈推荐您始终使用 SSL 来在客户端应用程序与 dashDB 之间建立安全的连接。作为 Bluemix Enterprise 管理员,您可配置 dashDB 来仅接受使用 SSL 的连接。配置后,dashDB 将拒绝未使用 SSL 的客户端连接。这是配置 DashDB 来要求使用 SSL 的步骤:
将 Connections with SSL 设置设置为 Required 之后,未配置 SSL 的现有应用程序或用户将无法连接。告知用户或在配置此设置之前将您的所有客户端连接转变为 SSL,是一个不错的想法。
请注意,只有 Bluemix Enterprise 平台启用了 Required 设置。入门级 Bluemix 计划不允许您要求为客户端连接使用 SSL 协议。
作为开发人员,您应始终使用 SSL 保护您的应用程序与 dashDB 之间的连接。dashDB 使用一个 SSL 连接管理第三方来颁发数字认证权威 (CA) 证书。CA 证书是 dashDB 驱动程序包的一部分。首先,使用 dashDB 控制台的 Connect > Download Tools 节下载 dashDB 驱动程序包,然后将该包安装在您的本地机器上。
在下面的几节中,我将介绍如何配置使用 Java、.Net 和 Windows ODBC/CLI 编写的客户端应用程序来与 dashDB 进行 SSL 通信。我还将介绍如何将一个 Bluemix 应用程序绑定到一个 dashDB 数据库实例。
使用以下 Java Database Connectivity (JDCB) URL 字符串来使用 SSL 将一个 Java 客户端应用程序与 dashDB 连接:
jdbc:db2://hostname:50001/BLUDB:user=user_name;password=password;sslConnection=true;
要将一个 .Net 客户端与 dashDB 连接,可从命令提示符输入以下命令:
db2cli writecfg add -database BLUDB -host hostname -port 50001 db2cli writecfg add -dsn alias -database BLUDB -host hostname -port 50001 db2cli writecfg add -database BLUDB -host hostname -port 50001 -parameter "SecurityTransportMode=SSL"
这些命令将在您计算机上的驱动程序配置文件 ( db2dsdriver.cfg
) 中创建新条目,并设置连接属性。您仅需要配置此条目一次。
对于您的 Microsoft Windows ODBC/CLI 客户端应用程序,您可从命令提示符输入以下命令:
db2cli writecfg add -database BLUDB -host hostname -port 50001 db2cli writecfg add -dsn alias -database BLUDB -host hostname -port 50001 db2cli writecfg add -database BLUDB -host hostname -port 50001 -parameter "SecurityTransportMode=SSL"
这些命令在您计算机上的驱动程序配置文件 ( db2dsdriver.cfg
) 中创建新条目,并设置连接属性。您仅需要执行此步骤一次。
如果您直接在 Bluemix 中操作,那么您可将一个 dashDB 实例绑定到您的 Bluemix 应用程序。在这种情况下,您将使用来自 VCAP_SERVICES
环境变量的 ssljdbcurl
和 ssldsn
字符串通过 SSL 连接到 dashDB 数据库,如下所示:
点击查看代码清单
关闭 [x]
{ "dashDB": { "name": "service-instance-name", "label": "dashDB", "plan": "Entry", "credentials": { "port": 50000, "db": "BLUDB", "username": "***", "host": "hostname", "https_url": "https://hostname:8443", "hostname": "hostname", "jdbcurl": "jdbc:db2://hostname:50000/BLUDB", "ssljdbcurl": "jdbc:db2://hostname:50001/BLUDB:sslConnection=true;", "uri": "db2://***:***@hostname:50000/BLUDB", "password": "***", "dsn": "DATABASE=BLUDB;HOSTNAME=hostname;PORT=50000;PROTOCOL=TCPIP;UID=***;PWD=***;", "ssldsn": "DATABASE=BLUDB;HOSTNAME=hostname;PORT=50001;PROTOCOL=TCPIP;UID=***;PWD=***;Security=SSL;" } } }
要求客户端和服务器应用程序都使用 SSL 来建立安全的网络传输,是一种保护您的应用程序数据免遭窃听或恶意篡改的快速且轻松的方式。在这篇快捷教程中,您学习了如何在 Bluemix Enterprise 上将 SSL 配置为与 dashDB 通信的应用程序的必需协议。您还学习了如何配置使用 Java、.Net 和 Windows ODBC/CLI 实现的客户端应用程序来实现 SSL 协议,以及如何将一个 Bluemix 应用程序绑定到一个 dashDB 实例来建立安全的网络通信。