配置 Oracle SQL*Net 加密
要正确配置 Windchill RV&S 服务器与 Oracle 数据库的连接,您必须定义从客户端 (Windchill RV&S 服务器) 到服务器端 (Oracle 数据库) 的兼容连接。请务必记住,在这种情况下,Windchill RV&S 服务器视为客户端,Oracle 数据库视为服务器。有关兼容性的详细信息,请参阅以下 Oracle 文档:
JDBC Client-Side Security Features (《JDBC 客户端安全功能》)http://docs.oracle.com/cd/E11882_01/java.112/e16548/clntsec.htm#JJDBC28295
Configuring Network Authentication, Encryption, and Integrity for Thin JDBC Clients (《为 JDBC 瘦客户端配置网络身份验证、加密和完整性》)http://docs.oracle.com/cd/E11882_01/network.112/e40393/asojbdc.htm#ASOAG030
需要特别关注的是《JDBC 客户端安全功能》文档中的 “Table 9-1 Client/Server Negotiations for Encryption or Windchill RV&S” (表 9-1 加密或 Windchill RV&S 的客户端/服务器协商)。受支持算法和校验和必须在 Windchill RV&S 服务器和 Oracle 数据库之间重叠。在这种情况下,Windchill RV&S 服务器用作客户端,Oracle 数据库用作 Windchill RV&S 服务器。
Windchill RV&S 服务器包含 Oracle JDBC Thin 驱动程序版本 19.3.0.0.0。因此,它仅限于此版本驱动程序提供的受支持算法和校验和集。
设置特性
Oracle 文档描述了如何使用具有 OracleConnection.CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL 等特性的 Java 特性对象来设置数据加密参数。Windchill RV&S 不支持此方法。您必须设置匹配的 Java 系统特性。
这些特性直接映射到需要为 Windchill RV&S 服务器连接到数据库进行设置的主要配置选项:
参数
oracle.net.encryption_client
以下之一:
accepted
rejected
requested
required
oracle.net.encryption_types_client
用括号括起来、以逗号分隔的任何以下受支持算法的列表:
AES256
AES192
AES128
3DES168
3DES112
DES56C
DES40C
RC4_256
RC4_128
RC4_40
RC4_56
oracle.net.crypto_checksum_client
以下之一:
accepted
rejected
requested
required
oracle.net.crypto_checksum_types_client
用括号括起来、以逗号分隔的任何以下受支持算法的列表:
MD5
SHA1
<Windchill RV&S 服务器安装目录>/config/mksservice.conf 文件中,通过添加 mks.java.additional<索引> 特性定义这些特性,其中 <索引> 必须是唯一的附加特性的索引。这提供了 Oracle JDBC 连接到 Windchill RV&S 服务器所需的配置信息。您必须通过将系统特性添加到 <Windchill RV&S 服务器安装目录>/bin 目录中的 LAX 文件,对服务器的命令行实用工具进行同等更改:isutil.laxPatchServer.laxcollectSupportPackage.laxencryptPassword.lax。必须将系统特性附加到 lax.nl.java.option.additional 特性。
以下示例配置了 Windchill RV&S 服务器和支持命令行实用工具,以在下列情况使用 SQL*Net 加密:
需要加密。
将加密限制为 DES40C 算法。
需要校验和。
将校验和限制为 MD5 算法。
第一个任务是更新 mksservice.conf 文件。如果此文件的附加特性以定义到索引 30,您要添加以下内容:
mks.java.additional.31=-Doracle.net.encryption_client=REQUIRED
mks.java.additional.32=-Doracle.net.encryption_types_client="( DES40C )"
mks.java.additional.33=-Doracle.net.crypto_checksum_client=REQUESTED
mks.java.additional.34=-Doracle.net.crypto_checksum_types_client="( MD5 )"
第二个任务是更新 LAX 文件。以下是此示例中当前的 lax.nl.java.option.additional 特性:
lax.nl.java.option.additional=-XX:+UseCompressedOops -Dmks.installDir=
c:/example/Windchill/RVSServer13 -Dmks.install=server -Duser.language=en
-Djava.util.Arrays.useLegacyMergeSort=true -Djdk.lang.Process.
allowAmbiguousCommands=true -Dhttps.protocols=TLSv1.2,TLSv1.3
-Djdk.tls.client.protocols=TLSv1.2,TLSv1.3
* 
在 LAX 文件中,此特性显示在一行中。为了便于阅读,此处添加了断行。
该特性会更新为以下内容:
lax.nl.java.option.additional=-XX:+UseCompressedOops -Dmks.installDir=
c:/example/Windchill/RVSServer13 -Dmks.install=server -Duser.language=en
-Djava.util.Arrays.useLegacyMergeSort=true -Djdk.lang.Process.
allowAmbiguousCommands=true -Dhttps.protocols=TLSv1.2,TLSv1.3
-Djdk.tls.client.protocols=TLSv1.2,TLSv1.3 -Doracle.net.
encryption_client=REQUIRED -Doracle.net.encryption_types_
client="( DES40C )" -Doracle.net.crypto_checksum_client=REQUESTED
-Doracle.net.crypto_checksum_types_client="( MD5 )"
这对您有帮助吗?