Standard implementation
Choose one of the following operating systems for the standard implementation:Linux
This implementation uses theoraenv tool to set up the Oracle database environment for the current session and enable the sqlplus command. To set the Oracle environment, perform the steps in this section. When prompted, specify the system ID (SID) for the instance,orcl in this example, or use the default value indicated between the brackets in line 4 of step 1 in the following process. All instances on the system require a unique SID.
Perform the following steps in Linux to use the standard implementation:
Set the Oracle environment with the following commands:
Shell
If it succeeds, the command returns the following message:
The Oracle base has been set to /home/oracle/app/oracleRun the following command to set the static WALLET_ROOT parameter, which sets the location of the keystore you plan to use:
You must set up the WALLET_ROOT parameter even if you do not use a keystore.
Sql
Run the following command to open the hardware keystore with the password of the user created on the KMES:
Sql
Run the following command to create the TDE master encryption key with the user password created on the KMES:
Sql
If you are migrating a previously configured TDE Master Encryption Key, refer to this article: docs.oracle.com/en/database/oracle/oracle-database/19/asoag/managing-keystore-and-tde-master-encryption-key.html#GUID-4335220F-49FF-40BC-9EB0-21442608F436.
If successful, the following message appears:
System alteredIf the database contains columns encrypted with a public key, the Oracle table key decrypts and re-encrypts the columns. The AES symmetric key generated by HSM-based TDE encrypts and decrypts the Oracle table key.
Windows
Perform the following steps in Windows to to use the standard implementation:Run the following command to set the staticWALLET_ROOT parameter, which sets the location of the keystore you plan to use:
You must set up the WALLET_ROOT parameter even if you do not use a keystore.
Sql
Run the following command to open the hardware keystore with the password of the user created on the KMES:
Sql
Run the following command to create the TDE master encryption key with the password of the user created on the KMES:
Sql
If you are migrating a previously configured TDE Master Encryption Key, refer to this article: docs.oracle.com/en/database/oracle/oracle-database/19/asoag/managing-keystore-and-tde-master-encryption-key.html#GUID-4335220F-49FF-40BC-9EB0-21442608F436.
If successful, the following message appears:
System altered.Viewing keys after standard implementation
Keys generated on the KMES Series 3 begin with something similar toORACLE.TDE.HSM.MK. You can view them in theKey Group under Key Management > KeysIf the database contains columns encrypted with a public key, the Oracle table key decrypts and re-encrypts the columns. The AES symmetric key generated by HSM-based TDE encrypts and decrypts the Oracle table key.
Docker container implementation
Use the following steps to configure the Futurex PKCS #11 (FXPKCS11) library to work with an Oracle Database Docker container. For instructions on how to build and run Oracle Database in a Docker container, refer to the Oracle documentation.On the host computer that runs the Oracle Database container, open a terminal and go to the location where you saved the Oracle Database private key,
tls_skey.pem.Run the following command to make the Oracle Database private key readable and executable for all users:
Shell
Set the OpenSSL version to match your container in the OPENSSL_VERSIONenvironment variable.If your Oracle Database 19c uses the official Oracle Database container images repository on GitHub (https://github.com/oracle/docker-images/blob/main/OracleDatabase), run the following command because that container image is based on Oracle Linux 7, which is OpenSSL 1.0-based:If your Oracle Database runs in a container based on OpenSSL 1.1, run the following command:
Shell
Shell
Download one of the following Futurex PKCS #11 (FXPKCS11) library installations from the Futurex Portal:If your container is based on OpenSSL 1.0, download the
fxpkcs11-redhat-4.xx-xxxx.tar file.If your container is based on OpenSSL 1.1, download the fxpkcs11-redhat8-4.xx-xxxx.tar file.Run the following command to extract theFXPKCS11 library and save the version in the PKCS_VERSION environment variable:
Shell
Edit the
fxpkcs11.cfg file to allow the FXPKCS11 library to connect to the KMES Series 3. Set the following fields in the **<KMS>
** section:None
| Field | Description |
|---|---|
| <SLOT> | Can leave it set to the default value of 0. |
| <CRYPTO-OPR> | Specify the name of the identity created on the KMES. |
| <KEYGROUP-NAME> | Specify the name of the key group that you created on the KMES. |
| <ADDRESS> | Specify the IP address of the KMES to which the PKCS #11 library should connect. |
| <PROD-PORT> | Set the PKCS #11 library to connect to the default Host API port on the KMES, port 2001. |
| <PROD-TLS-ENABLED> | Set the field to YES. The only way to connect to the Host API port on the KMES is over TLS. |
| <PROD-TLS-ANONYMOUS> | Set this value to NO because you’re connecting to the Host API port by using mutual authentication. This field defines whether the PKCS #11 library authenticates to the KMES. |
| <PROD-TLS-CA> | Specify the path to where you save the tls_ca.pem file. |
| <PROD-TLS-CERT> | Specify the path to where you saved the tls_cert.pem file. |
| <PROD-TLS-KEY> | Specify the path to where you saved the tls_skey.pem file. |
| <PROD-TLS-KEY-PASS> | Field should remain commented out because a password was not set for the client private key. |
| <FX-LOAD-BALANCE> | Set it to the default value of NO. |
Run the following command to start the Oracle Database container and bind-mount all of the FXPKCS11 files needed for FXPKCS11 to connect to the KMES Series 3.The command takes up to 20 minutes to complete, and you must run it from the same directory where you extracted the
fxpkcs11 directory.If the TLS certificates for authentication with the KMES Series 3 are not stored in the
/home/oracle/pki directory on your system, modify the third -v flag in your command to reflect this.Shell
After the Oracle Database container is running, run the following command to connect to the container file system:
Shell
Modify the
/opt/oracle/product/19c/dbhome_1/network/admin/sqlnet.ora file as shown in the following example, and save it:None

