---
schema_version: "1"
id: 3c3819891a8a988f7d52fc9b3a3236ff7d0915ef0f7395b5e32c20394d7b15ff
title: 使用 SSL 的 Oracle JDBC 连接
collection: tableau
version: current
locale: zh-cn
portal_url: https://docs.salesforce.com/tableau/current/zh-cn/pro/desktop/jdbc_oracle_ssl_config.md
canonical_url: https://help.tableau.com/current/pro/desktop/zh-cn/jdbc_oracle_ssl_config.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 26359e0ca4104ef7578d9775c075c93635ed650ad70c881660d48e4dbeb11c11
description: Configure one-way and two-way SSL for Oracle JDBC connections in Tableau.
---
[跳转到主要内容](#main-content)

# 使用 SSL 的 Oracle JDBC 连接

如果连接到 SSL（安全套接字层）服务器，请选中**“需要 SSL”**复选框。

从 2020.2 开始，Oracle 使用 JDBC 连接器。如果您的 Oracle 数据源配置为使用 SSL 单向或双向身份验证，您可以包括适当的证书和/或密钥来进行连接。

## 需要 SSL

如果连接需要 SSL，请执行以下操作：

1. 从连接器对话框中，单击“需要 SSL”。
    
    ![“配置 SSL 证书”对话框，提示选择公共 SSL 证书。 ](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/examples_oracle_req_ssl.png)
2. 根据情况为您的连接配置 SSL：
    - 如果使用自签名证书或由专用 CA 签名的证书，则可能需要为单向 SSL 连接配置信任。请参见[为 Oracle 配置单向 SSL](#Configur)。
    - 如果使用双向 SSL，则需要配置客户端密钥。请参见[配置双向 SSL](#Configur2)。

## 为 Oracle 配置单向 SSL

若要为服务器证书配置信任，请参见此处有关 JDBC 连接器的一般说明：[为 JDBC 连接配置单向 SSL](https://help.tableau.com/current/pro/desktop/zh-cn/jdbc_ssl_config.htm)。

如果您决定使用属性文件来配置信任，请为 Oracle JDBC 驱动程序使用以下属性。

javax.net.ssl.trustStore=C:\\\\My\_Folder\\\\truststore.jks  
javax.net.ssl.trustStoreType=JKS  
javax.net.ssl.trustStorePassword=_password_

**注意：**若要将工作簿发布到 Tableau Server，Tableau Desktop 和 Tableau Server 计算机均必须有同一 Oracle 属性文件和 truststore.jks 文件的副本。

## 配置双向 SSL

可选择通过两种方式为 Oracle 连接配置双向 SSL 支持：

- [在数据源中嵌入客户端证书和私钥](#Embed)
- [使用属性文件配置客户端证书和私钥](#Properties)

### 选项 1：在数据源中嵌入客户端证书和私钥

若要嵌入 SSL 证书、客户端证书和客户端密钥，请执行以下操作：

1. 如有必要，按照[为 Oracle 配置单向 SSL](#Configur)中的步骤配置服务器信任。
2. 单击“**客户端证书 >>**”。
    
    ![“配置 SSL 证书”对话框，提示选择公共 SSL 证书。 ](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/examples_oracle_req_ssl.png)
3. 指定客户端证书和客户端密钥的位置。  
    证书和私钥应采用未加密的 PEM 格式。有关转换为正确格式的建议，请参见本文档后面的说明。
    
    ![“配置 SSL 证书”对话框，提示选择公共 SSL 证书。  已选择“自定义 SSL 证书”选项，并且光标位于“客户端证书”字段中。](/tableau/current/zh-cn/pro/desktop/zh-cn/Img/examples_oracle_ssl_cert_294x244.png)

### 选项 2：使用属性文件配置客户端证书和私钥

若要为证书和密钥配置使用属性文件，请执行以下操作：

1. 修改 oracle.properties 文件以反映密钥存储和信任存储设置。以如下内容为例。确保替换代表您的文件位置的“My\_Folder”，并将“<password>”替换为您自己的密码。OSX 和 Linux 上的路径只需要单个“/”作为分隔符。
    
    javax.net.ssl.trustStore=C:\\\\My\_Folder\\\\truststore.jks  
    javax.net.ssl.trustStoreType=JKS  
    javax.net.ssl.trustStorePassword=<password>  
    javax.net.ssl.keyStore=C:\\\\My\_Folder\\\\keystore.jks  
    javax.net.ssl.keyStoreType=JKS  
    javax.net.ssl.keyStorePassword=_password_
2. 将 oracle.properties 保存到 <Document>\\MyTableau Respository\\Datasources 文件夹。
3. 将 oracle.properties、truststore.jks 和 keystore.jks 复制到 Tableau Server 计算机。这允许将工作簿发布到 Tableau Server。

如果使用此方法，则无需通过 SSL 对话框上载证书和密钥。而是只需单击“**需要 SSL**”。这会导致 Oracle JDBC 连接器从 oracle.properties 文件读取密钥存储和信任存储的位置。

### 发布工作簿

若要将工作簿发布到 Tableau Server，请确保满足以下条件：

- 如果使用属性文件，则 Tableau Desktop 和 Tableau Server 计算机均有同一 Oracle 属性文件、truststore.jks 和 keystore.jks 的副本。
- 服务器使用同一 Oracle JDBC 连接器作为 Tableau Desktop 计算机。
- 如果使用过[嵌入](#Embed)选项，请在发布时使用“嵌入密码”选项。

## 转换密钥格式

有若干用于存储 SSL 密钥的格式，其中包括：

- Oracle 钱包
- JKS - 如果要使用属性文件配置 SSL 信任，请使用此格式。
- PEM - 如果要使用 Tableau 接口将密钥嵌入数据源，请使用此格式。

以下是一些建议的命令，您可以在命令行提示符处键入这些命令，以将密钥转换为正确的格式。有关更多详细信息，请参见 Oracle 文档。

将证书从 Oracle 钱包导出为 PEM 文件：

orapki wallet export -wallet wallet\_location -dn certificate\_dn -cert output\_certificate\_filename.pem

将服务器证书和客户端密钥从 Oracle 钱包导出为 JKS：

orapki wallet pkcs12\_to\_jks -wallet ./-pwd mypasswd -jksKeyStoreLoc ./ewalletK.jks -jksKeyStorepwd _password_ -jksTrustStoreLoc ./ewalletT.jks -jksTrustStorepwd _password_

使用 keytool 和 OpenSSL 将服务器证书从 JKS 信任存储导出为 PEM 文件：

1. 将 JKS 格式导出为 PKCS12 格式：
    
    keytool -importkeystore -srckeystore truststore.jks -destkeystore truststore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass "_password_" -deststorepass "_password_"
2. 从 PKCS12 获取 PEM 文件：
    
    openssl pkcs12 -in truststore.p12 -out serverca.pem

使用 keytool 和 OpenSSL 将服务器证书和客户端密钥从 JKS 信任存储导出为 PEM 文件：

1. 按如下方式从信任存储中导出证书。
    1. 将 JKS 格式导出为 PKCS12 格式：
        
        keytool -importkeystore -srckeystore truststore.jks -destkeystore truststore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass "_password_" -deststorepass "_password_"
    2. 从 PKCS12 获取 PEM 文件：
        
        openssl pkcs12 -in truststore.p12 -out serverca.pem
2. 按如下方式从密钥存储中导出客户端密钥和客户端证书。
    1. 使用 keytool 将 JKS 格式转换为 PCKS12 格式：
        
        keytool.exe -importkeystore -srckeystore keystore.jks -destkeystore keystore.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass "_password_" -deststorepass "_password_"
    2. 使用 OpenSSL 导出客户端证书：
        
        openssl pkcs12 -in keystore.p12 -nokeys -out clientcert.pem
    3. 使用 OpenSSL 导出客户端密钥：
        
        openssl pkcs12 -in keystore.p12 -nocerts -out clientkeyEncrypted.pem
    4. 使用 OpenSSL 将加密版本转换为 PKCS8 格式：
        
        openssl pkcs8 -topk8 -nocrypt -in clientkeyEncrypted.pem -out clientkey.pem

### 另请参见

- [针对 JDBC 连接配置 SSL](https://help.tableau.com/current/pro/desktop/zh-cn/jdbc_ssl_config.htm) - 有关针对 JDBC 连接安装可信 SSL 证书的更多常规信息。