Skip to content

Commit 6d18b17

Browse files
authored
Merge pull request #276412 from Clare-Zheng82/0524-Update_Oracle_and_TSG_doc
[Doc update] Update Oracle TLS set up and add TSG
2 parents 580b5f4 + a7be15f commit 6d18b17

File tree

2 files changed

+59
-30
lines changed

2 files changed

+59
-30
lines changed

articles/data-factory/connector-oracle.md

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ms.service: data-factory
77
ms.subservice: data-movement
88
ms.custom: synapse
99
ms.topic: conceptual
10-
ms.date: 05/15/2024
10+
ms.date: 05/27/2024
1111
ms.author: jianleishen
1212
---
1313

@@ -109,43 +109,43 @@ To enable encryption on Oracle connection, you have two options:
109109

110110
- To use **Triple-DES Encryption (3DES) and Advanced Encryption Standard (AES)**, on the Oracle server side, go to Oracle Advanced Security (OAS) and configure the encryption settings. For details, see this [Oracle documentation](https://docs.oracle.com/cd/E11882_01/network.112/e40393/asointro.htm#i1008759). The Oracle Application Development Framework (ADF) connector automatically negotiates the encryption method to use the one you configure in OAS when establishing a connection to Oracle.
111111

112-
- To use **TLS**:
112+
- To use **TLS**, set up `truststore` for SSL server authentication by applying one of the following three methods:
113113

114-
1. Get the TLS/SSL certificate info. Get the Distinguished Encoding Rules (DER)-encoded certificate information of your TLS/SSL cert, and save the output (----- Begin Certificate … End Certificate -----) as a text file.
114+
- **Method 1 (recommended)**:
115115

116-
```
117-
openssl x509 -inform DER -in [Full Path to the DER Certificate including the name of the DER Certificate] -text
118-
```
116+
1. Install the TLS/SSL certificate by importing it into the local certificate store. The built-in Oracle driver is able to load the needed certificate from the certificate store.
119117

120-
**Example:** Extract cert info from DERcert.cer, and then save the output to cert.txt.
118+
2. In the service, configure the Oracle connection string with `EncryptionMethod=1`.
121119

122-
```
123-
openssl x509 -inform DER -in DERcert.cer -text
124-
Output:
125-
-----BEGIN CERTIFICATE-----
126-
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
127-
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
128-
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
129-
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
130-
XXXXXXXXX
131-
-----END CERTIFICATE-----
132-
```
133-
134-
2. Build the `keystore` or `truststore`. The following command creates the `truststore` file, with or without a password, in PKCS-12 format.
120+
- **Method 2**:
135121

136-
```
137-
openssl pkcs12 -in [Path to the file created in the previous step] -out [Path and name of TrustStore] -passout pass:[Keystore PWD] -nokeys -export
138-
```
122+
1. Get the TLS/SSL certificate information. Get the Distinguished Encoding Rules (DER)-encoded or Privacy Enhanced Mail (PEM)-encoded certificate information of your TLS/SSL cert.
139123

140-
**Example:** Create a PKCS12 `truststore` file, named MyTrustStoreFile, with a password.
124+
```
125+
openssl x509 -inform (DER|PEM) -in [Full Path to the DER/PEM Certificate including the name of the DER/PEM Certificate] -text
126+
```
141127

142-
```
143-
openssl pkcs12 -in cert.txt -out MyTrustStoreFile -passout pass:ThePWD -nokeys -export
144-
```
128+
2. In the service, configure the Oracle connection string with `EncryptionMethod=1` and the corresponding `TrustStore` value. For example, `Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore= data:// -----BEGIN CERTIFICATE-----<certificate content>-----END CERTIFICATE-----`
145129

146-
3. Place the `truststore` file on the self-hosted IR machine. For example, place the file at C:\MyTrustStoreFile.
147-
4. In the service, configure the Oracle connection string with `EncryptionMethod=1` and the corresponding `TrustStore`/`TrustStorePassword`value. For example, `Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore=C:\\MyTrustStoreFile;TrustStorePassword=<trust_store_password>`.
130+
>[!Note]
131+
>- The value of the `TrustStore` field should be prefixed with `data://`.
132+
>- When specifying content for multiple certificates, specify the content of each certificate between `-----BEGIN CERTIFICATE-----` and `-----END CERTIFICATE-----`. The number of dashes (`-----`) should be the same before and after both `BEGIN CERTIFICATE` and `END CERTIFICATE`. For example:<br>
133+
>`-----BEGIN CERTIFICATE-----<certificate content 1>-----END CERTIFICATE-----`<br>
134+
>`-----BEGIN CERTIFICATE-----<certificate content 2>-----END CERTIFICATE-----`<br>
135+
>`-----BEGIN CERTIFICATE-----<certificate content 3>-----END CERTIFICATE-----`
136+
> - The `TrustStore` field supports content up to 8192 characters in length.
148137

138+
- **Method 3**:
139+
1. Create the `truststore` file with strong ciphers like AES256.
140+
141+
```
142+
openssl pkcs12 -in [Full Path to the DER/PEM Certificate including the name of the DER/PEM Certificate] -out [Path and name of TrustStore] -passout pass:[Keystore PWD] -keypbe AES-256-CBC -certpbe AES-256-CBC -nokeys -export
143+
```
144+
2. Place the `truststore` file on the self-hosted integration runtime machine. For example, place the file at `C:\MyTrustStoreFile`.
145+
146+
3. In the service, configure the Oracle connection string with `EncryptionMethod=1` and the corresponding `TrustStore`/`TrustStorePassword` value. For example, `Host=<host>;Port=<port>;Sid=<sid>;User Id=<username>;Password=<password>;EncryptionMethod=1;TrustStore=C:\\MyTrustStoreFile;TrustStorePassword=<trust_store_password>`.
147+
148+
149149
**Example:**
150150

151151
```json

articles/data-factory/connector-troubleshoot-oracle.md

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: jianleishen
66
ms.service: data-factory
77
ms.subservice: data-movement
88
ms.topic: troubleshooting
9-
ms.date: 04/30/2024
9+
ms.date: 05/27/2024
1010
ms.author: jianleishen
1111
ms.custom: has-adal-ref, synapse
1212
---
@@ -51,6 +51,35 @@ This article provides suggestions to troubleshoot common problems with the Oracl
5151
- SHA384
5252
- SHA512
5353

54+
## Error code: UserErrorFailedToConnectOdbcSource
55+
56+
There are three error messages associated with this error code. Check the cause and recommendation for each error message correspondingly.
57+
58+
- **Message**: `"Cannot load trust store", or "SSL Handshake Failure reason [error:OA000086:SSL routines::certificate verify failed]"`
59+
60+
- **Cause**: The `truststore` is not appropriate for OpenSSL 3.0, as the `truststore` file is generated using weak ciphers like RC4, MD5 and SHA1.
61+
62+
- **Recommendation**: You need to re-create the `truststore` using the strong ciphers like AES256. Refer to this [section](connector-oracle.md#linked-service-properties) for details about setting up the TLS connection using `truststore`.
63+
64+
<br>
65+
66+
- **Message**: <br>
67+
`SSL Handshake Failure reason[Unknown SSL Error]`
68+
`SSL Handshake Failure reason [error:OA000410:SSL routines::sslv3 alert handshake failure]`
69+
70+
- **Cause**: The server is not configured with strong ciphers for SSL communication. OpenSSL 3.0 should use either TLS 1.0 and higher as it deprecated SSL protocol versions. For example, the server might accept connections with TLS protocol versions until TLS 1.0.
71+
72+
- **Recommendation**: Revise the server configuration to use stronger TLS versions.
73+
74+
<br>
75+
76+
- **Message**: `SSL Handshake Failure reason [error:0A00014D:SSL routines::legacy sigalg disallowed or unsupported].`
77+
78+
- **Cause**: CryptoProtocolVersion is set to use deprecated TLS protocol versions with OpenSSL 3.0.
79+
80+
- **Recommendation**: Specify the connection string property `CryptoProtocolVersion=TLSv1.2`.
81+
82+
5483
## Related content
5584

5685
For more troubleshooting help, try these resources:

0 commit comments

Comments
 (0)