Oracle ERP Cloud SSL/TLS Certificate Management

Type: ERP Integration System: Oracle ERP Cloud (Release 24C/25A) Confidence: 0.87 Sources: 7 Verified: 2026-03-09 Freshness: 2026-03-09

TL;DR

System Profile

This card covers SSL/TLS certificate lifecycle management across the Oracle ERP Cloud (Fusion Cloud Applications) ecosystem. It spans three distinct certificate domains: (1) Oracle-managed SaaS TLS certificates that secure inbound connections to Fusion Applications, (2) customer-managed trust certificates in the fusion_trust.jks keystore for outbound integrations, and (3) OCI Certificates service for infrastructure-level certificate management.

PropertyValue
VendorOracle
SystemOracle ERP Cloud (Fusion Cloud Applications), Release 24C/25A
API SurfaceREST, SOAP, FBDI (certificate management is transport-layer)
Current Release25A (February 2025 quarterly update)
Editions CoveredEnterprise (SaaS)
DeploymentCloud
API DocsOracle Cloud Security Documentation
StatusGA

API Surfaces & Capabilities

Certificate management in Oracle ERP Cloud does not use a single API surface. Certificates are managed through multiple interfaces depending on the certificate scope.

Certificate ScopeManagement InterfaceFormatAutomationWho Manages
SaaS TLS (inbound)Oracle-managed (no customer action)X.509Automatic 6-month renewalOracle
Outbound trust (fusion_trust.jks)Self-service UI or SR (11.12.1.0.0+)PEM, Base64 DERManual import requiredCustomer
OIC adapter certificatesOIC Console > Settings > CertificatesJKS, CER, CRTManual upload; filter by expiryCustomer
OCI infrastructure certificatesOCI Console / REST API / CLIPEMAuto-renewal configurableCustomer or OCI-managed
Middleware wallets (on-prem/hybrid)WLST, orapki, Fusion Middleware ControlOracle Wallet (PKCS#12), JKSScript-automatable via orapkiCustomer
Signing keys (OIC)OIC Console > Settings > CertificatesPKCS1, PKCS8Manual uploadCustomer

Rate Limits & Quotas

Per-Request Limits

Limit TypeValueApplies ToNotes
Max certificates per OIC instance~500Oracle Integration CloudPractical limit; no hard documented cap
Max CAs per OCI tenancyService-limit dependentOCI Certificates serviceRequest increase via support
Max certificates per OCI CA1,000 (default)OCI Certificates serviceConfigurable via service limit increase
JKS private key passwordSingle shared passwordAll private keys in a JKS fileDifferent passwords per key prevent extraction

Rolling / Daily Limits

Limit TypeValueWindowNotes
SaaS TLS renewal cycleEvery 6 monthsPer certificateOracle-managed; no customer control over timing
OCI certificate auto-renewalConfigurablePer certificate policySet renewal rules in OCI Certificates service
Oracle wallet auto-login validityNo expiryUntil explicitly rotatedAuto-login wallets (cwallet.sso) do not expire
Self-signed cert validity (FMW)5 yearsFrom creationFusion Middleware Control default

Authentication

InterfaceAuth MethodAccess LevelNotes
Fusion Applications self-serviceFusion Apps login (SAML/SSO)Security Administrator roleFor fusion_trust.jks imports
OIC ConsoleOIC admin credentialsServiceAdministrator roleUpload trust/identity certificates
OCI ConsoleOCI IAM (API key or session)Certificate-Manager policyManage OCI Certificates service
WLST (Middleware)WebLogic admin credentialsWebLogic Adminconnect('weblogic','password')
orapki (CLI)OS-level access + wallet passwordFile system permissionsNo network auth required

Authentication Gotchas

Constraints

Integration Pattern Decision Tree

START -- Certificate management for Oracle ERP Cloud
|-- What type of certificate operation?
|   |-- Inbound TLS (clients connecting to Oracle ERP)
|   |   |-- SaaS environment?
|   |   |   |-- YES --> Oracle-managed, no action needed (6-month auto-renewal)
|   |   |   +-- NO (on-prem/hybrid) --> Manage via WLST or FMW Control
|   |   +-- Need custom domain certificate?
|   |       |-- YES --> Not supported for SaaS; use OCI LB for custom domains
|   |       +-- NO --> Oracle default certificate applies automatically
|   |-- Outbound SSL (Oracle ERP calling external services)
|   |   |-- External CA already in fusion_trust.jks?
|   |   |   |-- YES --> No action needed
|   |   |   +-- NO --> Import CA cert via self-service or SR
|   |   |-- Need mutual TLS (two-way SSL)?
|   |   |   |-- YES --> Upload identity cert (.jks) to OIC + trust cert to target
|   |   |   +-- NO --> Trust certificate import only
|   |   +-- Using Oracle Integration Cloud (OIC) as middleware?
|   |       |-- YES --> Upload via OIC Console > Settings > Certificates
|   |       +-- NO --> Import directly into fusion_trust.jks
|   |-- OCI infrastructure certificates
|   |   |-- Need auto-renewal?
|   |   |   |-- YES --> Use OCI Certificates service with renewal policy
|   |   |   +-- NO --> Import third-party cert manually
|   |   +-- Load balancer SSL termination?
|   |       |-- YES --> Associate cert via OCI LB configuration
|   |       +-- NO --> Apply cert to specific OCI service
|   +-- Certificate rotation / renewal
|       |-- SaaS TLS renewal?
|       |   +-- Oracle handles automatically; re-download if using stored certs
|       |-- Integration partner certificates?
|       |   +-- Monitor expiry; re-import before expiration
|       +-- OCI managed certificates?
|           +-- Configure auto-renewal policy in OCI Certificates service
+-- Certificate format conversion needed?
    |-- PEM to JKS --> keytool -importcert
    |-- JKS to PKCS#12 --> orapki wallet jks_to_pkcs12
    |-- PKCS#12 to JKS --> orapki wallet pkcs12_to_jks
    +-- DER to PEM --> openssl x509 -inform der -outform pem

Quick Reference

Certificate Format Compatibility Matrix

Formatfusion_trust.jksOICOracle WalletOCI CertificatesNotes
PEM (.pem, .crt)Yes (Base64)Yes (.cer, .crt)Yes (orapki or WLST)YesMost compatible format
DER (.der binary)No (use orapki)NoYes (orapki only)NoConvert to PEM first
JKS (.jks)N/A (is a keystore)Yes (identity certs)Convert via orapkiNoJava-specific format
PKCS#12 (.p12, .pfx)No (extract first)NoYes (native format)NoOracle Wallet native
PKCS#7 (.p7b)NoNoYes (chain import)NoCertificate chain format
PKCS1/PKCS8 (keys)N/AYes (signing keys)N/AN/AOIC signing key upload

Common keytool Commands

OperationCommandNotes
List certificateskeytool -list -keystore fusion_trust.jks -storepass <pwd>View all trusted CAs
Import CA certkeytool -importcert -alias <alias> -file ca.pem -keystore fusion_trust.jksAdd external CA trust
Export certificatekeytool -exportcert -alias <alias> -keystore fusion_trust.jks -file cert.pem -rfcPEM format with -rfc flag
Delete certificatekeytool -delete -alias <alias> -keystore fusion_trust.jksRemove expired/revoked cert
Check expirykeytool -list -v -keystore fusion_trust.jks | grep "Valid from"Monitor expiration dates
Import PKCS#12 to JKSkeytool -importkeystore -srckeystore cert.p12 -srcstoretype PKCS12 -destkeystore dest.jksFormat conversion

Step-by-Step Integration Guide

1. Determine your certificate scope and current state

Identify which certificate domain you are working with and what is currently configured. [src1, src3]

# For OCI infrastructure -- list certificates in your tenancy
oci certs-mgmt certificate list --compartment-id <compartment_ocid> --all

# For JKS keystore -- list contents
keytool -list -v -keystore fusion_trust.jks -storepass <password>

Verify: Check output for certificate aliases, expiry dates, and issuer chains. Any certificate expiring within 30 days needs attention.

2. Import a trust certificate for outbound integration

When Oracle ERP Cloud needs to call an external HTTPS endpoint whose CA is not already trusted, import the CA certificate chain. [src5]

# Download the external service's CA certificate chain
openssl s_client -connect api.external-service.com:443 -showcerts </dev/null 2>/dev/null \
  | openssl x509 -outform PEM > external_ca.pem

# Import into fusion_trust.jks
keytool -importcert -alias external-service-ca \
  -file external_ca.pem -keystore fusion_trust.jks \
  -storepass <password> -noprompt

Verify: keytool -list -keystore fusion_trust.jks -alias external-service-ca should display the certificate details.

3. Upload certificates to Oracle Integration Cloud (OIC)

For integrations routed through Oracle Integration Cloud, upload via the OIC Console. [src1]

Trust certificates (outbound SSL validation):
1. OIC Console > Settings > Certificates
2. Click Upload
3. Certificate Type: X.509 (SSL Transport)
4. Category: Trust
5. Enter alias name (e.g., "external-api-ca-2026")
6. Browse and select the .cer or .crt file
7. Click Upload

Identity certificates (mutual TLS / two-way SSL):
1. Same navigation
2. Certificate Type: X.509 (SSL Transport)
3. Category: Identity
4. Select .jks keystore file
5. Enter keystore password + key alias passwords

Verify: Certificate appears in OIC Certificates list with status "Active" and correct expiration date.

4. Configure OCI Certificates service for auto-renewal

For OCI infrastructure certificates, use the OCI Certificates service to enable automatic renewal. [src2]

# Issue a certificate with auto-renewal
oci certs-mgmt certificate create-by-generating-internally \
  --compartment-id <compartment_ocid> \
  --name "erp-api-endpoint" \
  --certificate-config '{...}' \
  --certificate-rules '[{"ruleType":"CERTIFICATE_RENEWAL_RULE","renewalInterval":"P90D","advanceRenewalPeriod":"P30D"}]'

Verify: oci certs-mgmt certificate get --certificate-id <cert_ocid> shows renewal rules and next scheduled date.

5. Handle Oracle SaaS TLS certificate renewal (6-month cycle)

Oracle automatically renews SaaS TLS certificates every 6 months. Update stored certificates after each renewal. [src3, src7]

# Check when the current Oracle SaaS certificate expires
openssl s_client -connect <instance>.oraclecloud.com:443 \
  -servername <instance>.oraclecloud.com </dev/null 2>/dev/null \
  | openssl x509 -noout -dates

# Download the new certificate after renewal
openssl s_client -connect <instance>.oraclecloud.com:443 -showcerts \
  </dev/null 2>/dev/null | openssl x509 -outform PEM > oracle_new.pem

# Update your integration's trust store
keytool -delete -alias oracle-fusion-saas -keystore integration_trust.jks -storepass <pwd>
keytool -importcert -alias oracle-fusion-saas -file oracle_new.pem \
  -keystore integration_trust.jks -storepass <pwd> -noprompt

Verify: Test the integration endpoint. A successful HTTPS connection confirms the new certificate is trusted.

Code Examples

Python: Monitor certificate expiry and alert

# Input:  Oracle ERP Cloud hostname
# Output: Certificate expiry report with days-until-expiry

import ssl, socket, datetime, json

def check_oracle_cert_expiry(hostname, port=443):
    context = ssl.create_default_context()
    with socket.create_connection((hostname, port), timeout=10) as sock:
        with context.wrap_socket(sock, server_hostname=hostname) as ssock:
            cert = ssock.getpeercert()
            not_after = datetime.datetime.strptime(
                cert['notAfter'], '%b %d %H:%M:%S %Y %Z')
            days_left = (not_after - datetime.datetime.utcnow()).days
            return {
                'hostname': hostname,
                'not_after': not_after.isoformat(),
                'days_until_expiry': days_left,
                'needs_renewal': days_left < 30,
                'critical': days_left < 7
            }

result = check_oracle_cert_expiry('instance.fa.us2.oraclecloud.com')
print(json.dumps(result, indent=2))

Bash: Certificate chain extraction and validation

#!/bin/bash
# Input:  Oracle ERP Cloud hostname
# Output: Full certificate chain saved as PEM files

HOST="${1:-instance.fa.us2.oraclecloud.com}"
OUTPUT_DIR="./oracle_certs_$(date +%Y%m%d)"
mkdir -p "$OUTPUT_DIR"

openssl s_client -connect "$HOST:443" -servername "$HOST" \
  -showcerts </dev/null 2>/dev/null > "$OUTPUT_DIR/full_chain.pem"

openssl s_client -connect "$HOST:443" -servername "$HOST" \
  </dev/null 2>/dev/null | openssl x509 -outform PEM > "$OUTPUT_DIR/leaf.pem"

openssl x509 -in "$OUTPUT_DIR/leaf.pem" -noout -subject -issuer -dates

cURL: Quick SSL diagnostics

# Input:  Oracle ERP Cloud instance URL
# Output: SSL handshake details and certificate info

curl -vvv --head "https://instance.fa.us2.oraclecloud.com/" \
  2>&1 | grep -E "(SSL|TLS|subject|issuer|expire|CN)"

# Test with specific TLS version
curl --tlsv1.2 --head "https://instance.fa.us2.oraclecloud.com/" \
  -w "HTTP Code: %{http_code}\nSSL Verify: %{ssl_verify_result}\n" \
  -o /dev/null -s

Data Mapping

Certificate Format Conversion Reference

Source FormatTarget FormatToolCommandGotcha
PEMDERopensslopenssl x509 -in cert.pem -outform DER -out cert.derDER is binary; cannot paste into text fields
DERPEMopensslopenssl x509 -in cert.der -inform DER -outform PEM -out cert.pemRequired before most Oracle tool imports
PEMJKSkeytoolkeytool -importcert -file cert.pem -keystore store.jksImport CA chain in correct order
JKSPKCS#12keytoolkeytool -importkeystore -srckeystore in.jks -destkeystore out.p12 -deststoretype PKCS12PKCS#12 is Oracle Wallet native format
PKCS#12JKSorapkiorapki wallet pkcs12_to_jks ...orapki required; keytool alternative exists
PEM key + certPKCS#12opensslopenssl pkcs12 -export -in cert.pem -inkey key.pem -out bundle.p12Include -chain for full chain

Data Type Gotchas

Error Handling & Failure Points

Common Error Codes

ErrorMeaningCauseResolution
SSLHandshakeExceptionSSL handshake failureMissing or expired CA in trust storeImport CA certificate chain into fusion_trust.jks or OIC
PKIX path building failedChain validation failureIntermediate CA missingImport complete chain, not just leaf cert
ValidatorExceptionCertificate not trustedSelf-signed or unknown CAImport CA cert to trust store
certificate_unknown alertServer rejects client certWrong client certVerify client cert matches server expectation
ORA-28759Wallet open failureWrong password or corrupted walletVerify password; recreate if corrupted
ORA-28864SSL connection closedTLS version mismatchUpdate client to TLS 1.2+
Keystore tampered withJKS integrity failureWrong password or corruptionVerify password; restore from backup
OIC upload failsFormat not recognizedWrong extension or encodingConvert to PEM; use .cer or .crt extension

Failure Points in Production

Anti-Patterns

Wrong: Certificate pinning to Oracle SaaS leaf certificate

# BAD -- pinning to the leaf cert that Oracle rotates every 6 months
openssl s_client -connect instance.oraclecloud.com:443 </dev/null 2>/dev/null \
  | openssl x509 -outform PEM > pinned_cert.pem
# Hardcoding the SHA-256 fingerprint -- WILL break at next renewal

Correct: Trust the CA chain, not the leaf certificate

# GOOD -- trust the Certificate Authority, which persists across renewals
openssl s_client -connect instance.oraclecloud.com:443 -showcerts </dev/null 2>/dev/null \
  | awk '/BEGIN CERTIFICATE/,/END CERTIFICATE/{print}' | tail -n +2 > ca_chain.pem
keytool -importcert -alias oracle-ca -file ca_chain.pem \
  -keystore integration_trust.jks -storepass changeit -noprompt

Wrong: Importing only the leaf certificate for outbound trust

# BAD -- importing only the server's leaf certificate
keytool -importcert -alias external-api -file external_leaf_only.pem \
  -keystore fusion_trust.jks -storepass <password>
# Breaks when the external service renews its leaf cert

Correct: Import the full CA chain for outbound trust

# GOOD -- import root CA and intermediate CAs
openssl s_client -connect api.external.com:443 -showcerts </dev/null 2>/dev/null \
  | awk 'BEGIN{c=0} /BEGIN CERT/{c++} c>0{print > "cert_"c".pem"} /END CERT/{}'
# Import intermediate and root CAs (skip cert_1.pem which is the leaf)
for f in cert_2.pem cert_3.pem; do
  alias=$(openssl x509 -in "$f" -noout -subject -nameopt rfc2253 | sed 's/subject=//')
  keytool -importcert -alias "$alias" -file "$f" \
    -keystore fusion_trust.jks -storepass <password> -noprompt
done

Wrong: Shared password across environments

# BAD -- same wallet password for dev and prod
orapki wallet create -wallet /prod/wallet -pwd Welcome1 -auto_login
orapki wallet create -wallet /dev/wallet -pwd Welcome1 -auto_login

Correct: Unique passwords per environment with vault storage

# GOOD -- unique passwords stored in secret manager
PROD_PWD=$(openssl rand -base64 32)
DEV_PWD=$(openssl rand -base64 32)
# Store in OCI Vault, then create wallets
orapki wallet create -wallet /prod/wallet -pwd "$PROD_PWD" -auto_login
orapki wallet create -wallet /dev/wallet -pwd "$DEV_PWD" -auto_login

Common Pitfalls

Diagnostic Commands

# Check Oracle ERP Cloud endpoint certificate
openssl s_client -connect instance.fa.us2.oraclecloud.com:443 \
  -servername instance.fa.us2.oraclecloud.com </dev/null 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates -serial

# Test TLS version support
openssl s_client -connect instance.fa.us2.oraclecloud.com:443 \
  -tls1_2 </dev/null 2>/dev/null | grep "Protocol  :"

# List all certs in JKS keystore
keytool -list -v -keystore fusion_trust.jks -storepass <password>

# Verify a certificate chain
openssl verify -CAfile ca_chain.pem server_cert.pem

# List Oracle Wallet contents
orapki wallet display -wallet /path/to/wallet

# Check OCI for expiring certificates
oci certs-mgmt certificate list --compartment-id <ocid> \
  --lifecycle-state ACTIVE --all

# Inspect a PEM certificate file
openssl x509 -in certificate.pem -text -noout

Version History & Compatibility

ReleaseDateStatusCertificate ChangesMigration Notes
25A2025-02CurrentTLS 1.3 support expandedNo breaking changes for TLS 1.2 clients
24C2024-11SupportedOCI Certificates service enhancementsAuto-renewal rules now support custom intervals
24B2024-08SupportedTLS 1.3 enforcement for new instancesOlder TLS 1.0/1.1 clients must upgrade
24A2024-02SupportedCertificate import self-service expandedMore formats accepted in OIC Console
23D2023-11SupportedOCI Certificates improvementsCert-to-LB association simplified
11.12.1.0.02017LegacySelf-service cert import for fusion_trust.jksFirst release with customer-accessible trust store

Deprecation Policy

Oracle Fusion Cloud follows a quarterly release cadence (24A, 24B, 24C, 25A). TLS protocol changes are announced at least one release in advance. TLS 1.0 and 1.1 have been deprecated since 2020 and are blocked on all Oracle Cloud endpoints. [src7]

When to Use / When Not to Use

Use WhenDon't Use WhenUse Instead
Securing outbound calls from Oracle ERP to third-party APIsManaging Oracle Autonomous Database mTLS walletsOracle ADB wallet rotation docs
Importing external CA certs into fusion_trust.jksConfiguring OAuth 2.0 API authenticationOracle ERP Cloud REST API auth guide
Monitoring Oracle SaaS TLS certificate renewal cyclesSetting up OCI network security groupsOCI network security docs
Converting between PEM, JKS, PKCS#12, and Oracle WalletManaging SSH keys for OCI computeOCI compute SSH key management
Setting up mutual TLS for high-security integrationsConfiguring IDCS federationIDCS federation configuration guide

Important Caveats

Related Units