安装和升级 > 高级部署注意事项 > 高级数据库配置 > 配置 Windchill 以使用基于 SSL 的 JDBC > 将安装有 SQL Server 数据库的 Windchill 配置为使用基于 SSL 的 JDBC
  
将安装有 SQL Server 数据库的 Windchill 配置为使用基于 SSL 的 JDBC
* 
注意:本主题中将 Windchill 服务器主机称为“客户端”,而将运行 SQL Server 的 SQL Server 数据库主机称为“服务器”。在数据库交互的上下文中,Windchill 服务器用作数据库服务器的客户端。
使用 Microsoft JDBC Driver for Oracle Database Server 配置 Microsoft SQL Server 2016 数据库服务器以实现与其客户端 (Windchill 服务器) 之间的加密通信的高级步骤如下所示:
1. 使用 IIS 管理器创建自签名证书
2. 使用 SQL Server Configuration Manager 配置 SQL Server 2016
3. 导出证书
4. 将证书导入 Windchill 服务器
5. 将 Windchill 配置为使用基于 SSL 的 JDBC
后续部分将介绍每个步骤的具体过程。
Windchill 11.1 F000 版本及更高版本支持此功能。有关面向 Microsoft SQL Server 2016 的 SSL 支持的详细信息,请参阅 https://docs.microsoft.com/en-us/sql/connect/jdbc/understanding-ssl-support
创建自签名证书
要使用 IIS 管理器创建自签名证书,请执行以下步骤。此证书可用作 SSL 加密证书。
1. 打开 IIS 管理器。
2. Connections 视图中,单击实例名称。在此示例中,实例名称为 CAPRICORN。
3. 在功能视图中,双击 Server Certificates
4. Actions 窗格中,单击 Create Self-Signed Certificate
5. Create Self-Signed Certificate 页面的 Specify a friendly name for the certificate 框中,为证书键入一个名称,然后单击 OK
新的自签名证书将显示在 Server Certificates 视图中。
使用 SQL Server Configuration Manager 配置 SQL Server 2016
请执行以下步骤来配置 SQL Server 2016:
1. 打开 SQL Server Configuration Manager,此实用程序随 SQL Server 2016 安装一起提供。
2. 导航至 SQL Server Network Configuration,然后单击 Protocols for <YOUR_INSTANCE_NAME>。请确保启用了 TCP/IP。
3. 右键单击 "Protocols for <YOUR_INSTANCE_NAME>",然后单击 Properties
4. Flags 选项卡上,将 Force Encryption 的值设置为 Yes
如果将 SQL Server 实例配置为强制进行 SSL 加密,则在 Java 虚拟机上运行时,驱动程序会自动启用 SSL 加密。否则,连接将终止,且驱动程序会引发错误。SQL Server 上始终仅有一个端口用来提供通信服务。
5. Certificate 选项卡上,从下拉列表中选择所需的证书,然后单击 OK
6. 重新启动 SQL Server 服务。
要验证是否正确加载了证书,请查看位于正在运行的 SQL Server 实例日志目录中的错误日志文件。
对于日志目录位置,执行以下步骤:
1. 在正在运行 SQL Server 2016 的主机上启动 SQL Server Configuration Manager
2. 单击 SQL Server Services
3. 在右侧窗格中,右键单击 SQL Server <your_instance_name>,然后选择 Properties
4. SQL Server Properties 对话框的 Advanced 选项卡上,验证 Startup Parameters 值是否显示 ERRORLOG 文件路径。
导出 SQL Server 系统上的自签名证书
要导出证书,请执行以下步骤:
1. Start 菜单中,单击 Run
2. Open 框中,键入 MMC,然后单击 OK
3. 在 MMC 控制台的 File 菜单中,单击 Add/Remove Snap-in
4. Add/Remove Snap-in 对话框中,单击 Add
5. Add Standalone Snap-in 对话框中,单击 Certificates,然后单击 Add
6. Certificates snap-in 对话框中,单击 Computer account,然后单击 Finish
7. Add Standalone Snap-in 对话框中,单击Close
8. Add/Remove Snap-in 对话框中,单击 OK
9. 在左侧窗格的 Certificates 管理单元中,导航至 Personal > Certificates。将显示使用 IIS 创建的证书。
10. 右键单击该证书,转至 All Tasks > Export 并导出不带私钥的证书,然后单击 Next
11. 选择相应的格式类型后,单击 Next
12. 指定要将该证书导出到的文件名,然后单击 Next
13. 查看设置,然后单击 Finish。随即显示 Export was successful 对话框。
在数据库客户端 (Windchill 服务器) 中导入自签名证书
要使用 Java 中的 keytool 实用程序将自签名证书导入到 Java 密钥库,请执行以下步骤:
1. 浏览至客户端计算机上的导出文件,并将其保存到本地磁盘。请确保该位置具有读取权限。
2. 在客户端计算机上,打开命令提示符,然后导航至 {wt.jdk}/jre/lib/securitywt.jdk 值在位于 WT_HOME/codebase 的 wt.properties 文件中提供。
3. 运行以下命令以导入源密钥库:keytool -importcert -file d:\Users\jsmith\Documents\02PTC\Certs\SelfSignedCertFromIISForDemo.pfx.cer -keystore cacerts -alias "SELF-SIGNED-IIS-DEMO-CERT"
其中,
SelfSignedCertFromIISForDemo.pfx.cer:指定从 SQL Server 导出的证书文件。
cacerts:指定位于 {wt.jdk}/jre/lib/security 的默认密钥库的文件路径。
alias:指定别名。此字段是可选的。要从密钥库中删除证书,需提供别名。
完成此过程后,客户端计算机便准备好服务器导出的证书及其密钥库。
配置 Windchill 以使用基于 SSL 的 JDBC
执行以下步骤,以将 Windchill 服务器配置为基于 SSL 的 JDBC 与 SQL Server 配合使用。
1. 打开位于 WT_HOME/dbdb.properties 文件。
2. 按如下方式配置以下特性:
wt.pom.dbConnectionPropertiesNameList=encrypt,javax.net.ssl.trustStore,
wt.pom.dbConnectionPropertiesValueList=true,{wt.jdk}/jre/lib/security \\cacerts
3. 重新启动 Windchill。
此配置可使用基于 SSL 的 JDBC 启用 Windchill 与 SQL Server 数据库之间的通信。
有关配置客户端连接的详细信息,请参阅下列 Microsoft 文档:
https://docs.microsoft.com/en-us/sql/connect/jdbc/configuring-the-client-for-ssl-encryption
https://support.microsoft.com/en-us/help/316898/how-to-enable-ssl-encryption-for-an-instance-of-sql-server-by-using-mi
https://docs.microsoft.com/en-us/sql/connect/jdbc/connecting-with-ssl-encryption