SlideShare a Scribd company logo
1 of 45
Download to read offline
Oracle WebLogic Server in Practice:
SSL Configuration
Jacco Landlust, Oracle

Simon Haslam, Veriton
Jacco & Simon
Jacco:

◦ Domain Architect Director at Oracle Consulting
◦ Oracle ACE

Simon:

◦ Founder of Veriton and now
◦ Oracle ACE Director (Middleware & SOA)
◦ UKOUG App Server & Middleware SIG Chair
Agenda
Concepts you need
 WebLogic & SSL
 Tools & Commands to manage keys

Essential Concepts


key-pair (asymmetric)



certificate



certificate authority (CA)

◦ one key to encrypt, a different key to decrypt
◦ you make one your private key, the other your public key
◦ unique to you
◦ public key
◦ signed
◦ signs certificates
◦ is independently trusted
Old school Identity Management
Identity
certificate authority

1. person sends me their cert
2. I look at who it is signed by
3. If I trust the person it is
signed by I accept their identity

signed
by
certificate

person I want to
communicate with

me
Trust
certificate authority B

1. Person sends me their cert
2. I look at who it is signed by
3. If I don't trust the person it
is signed by I look at who
they are signed by and so on

certificate authority A

certificate
person I want to
communicate with

me
Certificate Chain
root certificate authority

.
.
certificate authority B

certificate authority A

certificate

me
Certificate Chain
root CA

root CA

.
.
certificate authority B

root CA

Trust
Keystore

certificate authority A

certificate

me
Establishing my Identity
root CA

.
.
certificate authority B

certificate authority A

Identity
Keystore

me
certificate
What's in the Certificate









The public key
Registered name/details of owner
Validity
Identity of CA
Location of CA Revocation List
Hash function summary (encrypted by CA key)
How do I know certificate is valid?
Client recreates summary "as they should be" (from
~hostname/validity)
So by now we have the
 Client hash function on summary and which we
server's public key encrypts using
can secure traffic with
CA public key
 Client compares result to public key offered by server
 If same client now has the public key for the certificate
owner and can check validity, (optionally) CRL, etc

Agenda
Concepts you need
 WebLogic & SSL
 Tools & Commands to manage keys

Common tools to manage certificates
keytool
 openssl
 orapki / Oracle Wallet Manager

Overall process for creating certificate
1.

create key pair
◦ could be self signed - not much use unless every recipient is
going to add you to their trust keystore

create CSR
3. give CSR to CA
4. receive certificate back from CA
2.
Key Stores


For Fusion Middleware we're interested in:
◦ Java Keystores (JKS)
◦ Oracle Wallet (PKCS12 format)



Either:

◦ contains one or more certificates
◦ each certificate has a CN, and usually has an alias
◦ can contain both public and private keys
Type of keystore per component
Type of Keystore

Tasks

Tool

Oracle WebLogic Server

JKS-based Keystore

All Keystore operations

JDK Keytool

Oracle WebLogic Server

JKS-based Keystore

Enable SSL

Oracle WebLogic Server
Administration Console

All Java EE applications (for
example Oracle Directory
Integration Platform, Oracle
Directory Services Manager)

JKS-based Keystore

All Keystore operations

JDK Keyt
Type of keystore per component 2
Type of Keystore

Tasks

Tool

Oracle HTTP Server
Oracle Web Cache
Oracle Internet Directory

Oracle Wallet

Create Wallet, Create Certificate
Request, Delete Wallet, Import
Certificate, Export Certificate,
Enable SSL

Fusion Middleware Control,
WLST
Oracle Wallet Manager and
orapki for PKCS#11 or
Hardware Security Modules
(HSM)-based wallets. Also for
environments where Fusion
Middleware Control and WLST
are not available (such as a
stand-alone upgrade of these
components without a domain).

Oracle Virtual Directory

JKS-based Keystore

Create KeyStore, Create
Certificate Request, Delete
KeyStore, Import Certificate,
Export Certificate, Enable SSL

Fusion Middleware Control,
WLST

Oracle SOA Suite

JKS-based Keystore

All Keystore operations

JDK Keytool

Oracle WebCenter

JKS-based Keystore

All Keystore operations

JDK Keytool
How WebLogic states its Identity


Identity comes from a Java Keystore "identity
keystore"
◦ must contain a certificate & key-pair matching alias



Each WebLogic server instance (Admin Server and
Managed Servers) has to have an identity keystore to
do SSL
How WebLogic Establishes Trust



Trust comes from another JKS "trust keystore"
Choice of standalone JKS or to use the one in the JDK
trust (stored with JRE)



Note:

◦ DemoIdentity
◦ DemoTrust
WebLogic Identity/Trust Combinations


Demo Identity and Demo Trust (default - not for prod)
◦ CN=hostname, signed by BEA CA that anyone can sign with



Custom Identity and Java Standard Trust
◦ determine trust from java/…



Custom Identity and Custom Trust
◦ our own identity and trust keystores



Custom Identity and Command Line Trust

◦ our own identity but trust keystore specified in start-up param
Certificates Required


Server sends out its cert when someone tries to
connect over SSL (i.e. one way) but can optionally
request cert from client (two way) - console options:
◦ Client Certs Not Requested
◦ Client Certs Not Requested but Not Enforced
◦ Client Certs Requested and Enforced
Hostname Verification
◦ None
◦ BEA Hostname Verifier
◦ Custom Hostname Verifier
 e.g. weblogic.security.utils.SSLWLSWildcardHostnameVerifier



What does none mean?

◦ Cert is requested but does not have a CN for the host WebLogic is
trying to connect to. It could be any old certificate.
Set ignoreHostnameVerification = true?!?


We strongly recommend enabling hostname
verification in all test and production environments.



Oracle® Fusion Middleware Securing Oracle WebLogic Server: "Oracle
recommends leaving host name verification on in production environments"
Agenda
Concepts you need
 WebLogic & SSL
 Tools & Commands to manage keys

Keystore Naming Conventions



Do not use a name longer than 256 characters
Do not use any of the following characters in a
keystore name:
| ; , ! @ # $ ( ) < > /  " ' ` ~ { } [ ] = + & ^ space tab
 Do not use non-ASCII characters in a keystore name
 Additionally, follow the operating system-specific rules
for directory and file names
Copying Keystores to File System Not Supported
Creating, renaming, or copying keystores directly to any
directory on the file system is not supported.
Any existing pre-11g keystore or wallet that you wish to use
must be imported using either Fusion Middleware Control or
the WLST utility.
http://docs.oracle.com/cd/E21764_01/core.1111/e10105/w
allets.htm
Generate self signed certificate
keytool -genkey -keyalg RSA -alias selfsigned -keystore ${JKS}
-storepass ${JKS_PASSWORD} -validity 360 -keysize 2048
-keypass ${KEY_PASSWORD}
What is your first and last name?
[Unknown]: somehost.localdomain
What is the name of your organizational unit?
[Unknown]: Example Department
What is the name of your organization?
[Unknown]: Example Company
What is the name of your City or Locality?
[Unknown]: Manchester
What is the name of your State or Province?
[Unknown]: West Midlands
What is the two-letter country code for this unit?
[Unknown]: GB
Is CN=somehost.localdomain, OU=Example Department, O=Example Company, L=Manchester, ST=West Midlands,
C=GB correct?
[no]: yes

Enter key password for <selfsigned>
(RETURN if same as keystore password):
Generate self signed certificate 2
keytool -genkey -keyalg RSA -alias selfsigned
-keystore ${JKS}
-dname "CN=`hostname`, OU=Example Department, O=Example
Company, L=Manchester, ST=West Midlands, C=GB"
-storepass ${JKS_PASSWORD}
-validity 360 -keysize 2048
This must be the
-keypass ${KEY_PASSWORD}
hostname that clients
use to connect to you.
E.g. may be a CNAME
or a VIP
Create key pair
keytool -genkey
-alias `hostname`
-keyalg RSA
-keystore ${JKS}
-keysize 2048
Create certificate signing request
keytool -certreq
-alias `hostname`
-keystore ${JKS}
-file ${REQUEST_FILE}
Import a signed certificate from CA
keytool -import
-trustcacerts
-alias `hostname`
-file ${SIGNED_CERT}
-keystore ${JKS}
List contents of keystore
keytool -list -v -keystore ${JKS} -storepass ${JKS_PASSWORD}
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: selfsigned
Creation date: Feb 9, 2013
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=somehost.localdomain, OU=Example Department, O=Example Company, L=Manchester, ST=West
Midlands, C=GB
Issuer: CN=somehost.localdomain, OU=Example Department, O=Example Company, L=Manchester, ST=West
Midlands, C=GB
Serial number: 51165df7
Valid from: Sat Feb 09 14:32:23 GMT 2013 until: Tue Feb 04 14:32:23 GMT 2014
Certificate fingerprints:
MD5: DA:FF:F9:0B:EF:2D:26:DA:E9:48:22:1A:6E:7F:42:DF
SHA1: 46:8B:E7:DC:6B:95:69:34:85:43:A3:F7:C2:63:3B:29:F7:BD:9C:AD
Signature algorithm name: SHA1withRSA
Version: 3
keytool commands for checking


Check a stand-alone certificate
keytool -printcert -v -file ${CERTIFICATE}



Check which certificates are in a Java keystore
keytool -list -v -keystore ${JKS}



Check a particular keystore entry using an alias
keytool -list -v -keystore ${JKS} -alias ${ALIAS}
Other useful keystore commands


Delete a certificate from a Java Keytool keystore
keytool -delete -alias ${ALIAS} -keystore ${JKS}



Change a Java keystore password
keytool -storepasswd -new ${NEW_PASSWORD}
-keystore ${JKS}



Export a certificate from a keystore
keytool -export -alias ${ALIAS} -file ${CERTIFICATE}
-keystore ${JKS}
Copy key to other keystore
SRC_ALIAS=cn=`hostname`
keytool -importkeystore
-srckeystore ${JKS}
-srcstorepass ${JKS_PASSWORD}
-destkeystore ${IDENTITY_KS}
-deststorepass ${ID_KS_PASSWORD}
-srcalias ${SRC_ALIAS}
-destalias `hostname`
-destkeypass ${ID_KS_PASSWORD} <<EOF
yes
EOF
Convert wallet to keystore
orapki wallet pkcs12_to_jks
-wallet ${WALLET}
-pwd ${WALLET_PASSWORD}
-jksKeyStoreLoc ${JKS}
-jksKeyStorepwd ${JKS_PASSWORD}
-jksTrustStoreLoc ${TRUSTSTORE}
-jksTrustStorepwd ${TRUSTSTORE_PASSWORD}
Convert keystore to wallet
orapki wallet create -wallet ${WALLET}
-pwd ${WALLET_PASSWORD} -auto_login

orapki wallet jks_to_pkcs12 -wallet ${WALLET}
-pwd ${WALLET_PASSWORD} -keystore ${JKS}
-jkspwd ${JKS_PASSWORD}
About Importing DER-encoded
Certificates




You cannot use Fusion Middleware Control or
the WLST command-line tool to import DER-encoded certificates
or trusted certificates into an Oracle wallet or a JKS keystore.
Use these tools instead:
To import DER-encoded certificates or trusted certificates into
an Oracle wallet, use:
◦ Oracle Wallet Manager or
◦ orapki command-line tool



To import DER-encoded certificates or trusted certificates into a
JKS keystore, use the keytool utility
Summary
We discussed how WebLogic uses Identity, Trust & CAs
• Always enable Hostname Verification!
• Never use Demo Certs - do SSL properly or not at all 
•
Questions?
Contact us! (e.g. DM on Twitter)
Jacco: @oraclemva
Simon: @simon_haslam

More Related Content

What's hot

What's hot (20)

Terraform -- Infrastructure as Code
Terraform -- Infrastructure as CodeTerraform -- Infrastructure as Code
Terraform -- Infrastructure as Code
 
Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon Formation Gratuite Total Tests par les experts Java Ippon
Formation Gratuite Total Tests par les experts Java Ippon
 
Xây dụng và kết hợp Kafka, Druid, Superset để đua vào ứng dụng phân tích dữ l...
Xây dụng và kết hợp Kafka, Druid, Superset để đua vào ứng dụng phân tích dữ l...Xây dụng và kết hợp Kafka, Druid, Superset để đua vào ứng dụng phân tích dữ l...
Xây dụng và kết hợp Kafka, Druid, Superset để đua vào ứng dụng phân tích dữ l...
 
Turning Virtual Machines Cloud-Native using KubeVirt
Turning Virtual Machines Cloud-Native using KubeVirtTurning Virtual Machines Cloud-Native using KubeVirt
Turning Virtual Machines Cloud-Native using KubeVirt
 
[THR20007] WSL v2와 Rancher K3S로 빠르게 로컬 쿠버네티스 클러스터 만들기 / Quickly create a loca...
[THR20007] WSL v2와 Rancher K3S로 빠르게 로컬 쿠버네티스 클러스터 만들기 / Quickly create a loca...[THR20007] WSL v2와 Rancher K3S로 빠르게 로컬 쿠버네티스 클러스터 만들기 / Quickly create a loca...
[THR20007] WSL v2와 Rancher K3S로 빠르게 로컬 쿠버네티스 클러스터 만들기 / Quickly create a loca...
 
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)
GitHub Actions - using Free Oracle Cloud Infrastructure (OCI)
 
Java 9 Features
Java 9 FeaturesJava 9 Features
Java 9 Features
 
Building and Deploying Application to Apache Mesos
Building and Deploying Application to Apache MesosBuilding and Deploying Application to Apache Mesos
Building and Deploying Application to Apache Mesos
 
Docker Swarm for Beginner
Docker Swarm for BeginnerDocker Swarm for Beginner
Docker Swarm for Beginner
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Devfest 2021' - Artifact Registry Introduction (Taipei)
Devfest 2021' - Artifact Registry Introduction (Taipei)Devfest 2021' - Artifact Registry Introduction (Taipei)
Devfest 2021' - Artifact Registry Introduction (Taipei)
 
High-Volume Data Collection and Real Time Analytics Using Redis
High-Volume Data Collection and Real Time Analytics Using RedisHigh-Volume Data Collection and Real Time Analytics Using Redis
High-Volume Data Collection and Real Time Analytics Using Redis
 
Cagando Datos con APEX_DATA_PARSER
Cagando Datos con APEX_DATA_PARSERCagando Datos con APEX_DATA_PARSER
Cagando Datos con APEX_DATA_PARSER
 
A Hands-on Introduction on Terraform Best Concepts and Best Practices
A Hands-on Introduction on Terraform Best Concepts and Best Practices A Hands-on Introduction on Terraform Best Concepts and Best Practices
A Hands-on Introduction on Terraform Best Concepts and Best Practices
 
NGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX: High Performance Load Balancing
NGINX: High Performance Load Balancing
 
LendingClub RealTime BigData Platform with Oracle GoldenGate
LendingClub RealTime BigData Platform with Oracle GoldenGateLendingClub RealTime BigData Platform with Oracle GoldenGate
LendingClub RealTime BigData Platform with Oracle GoldenGate
 
DevOps Meetup ansible
DevOps Meetup   ansibleDevOps Meetup   ansible
DevOps Meetup ansible
 
Memory Management: What You Need to Know When Moving to Java 8
Memory Management: What You Need to Know When Moving to Java 8Memory Management: What You Need to Know When Moving to Java 8
Memory Management: What You Need to Know When Moving to Java 8
 
Oracle Enterprise Manager
Oracle Enterprise ManagerOracle Enterprise Manager
Oracle Enterprise Manager
 
Everything you wanted to know, but were afraid to ask about Oozie
Everything you wanted to know, but were afraid to ask about OozieEverything you wanted to know, but were afraid to ask about Oozie
Everything you wanted to know, but were afraid to ask about Oozie
 

Viewers also liked

Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic Concepts
James Bayer
 
WebLogic JMX for DevOps
WebLogic JMX for DevOpsWebLogic JMX for DevOps
WebLogic JMX for DevOps
Frank Munz
 
Using Java to implement SOAP Web Services: JAX-WS
Using Java to implement SOAP Web Services: JAX-WS�Using Java to implement SOAP Web Services: JAX-WS�
Using Java to implement SOAP Web Services: JAX-WS
Katrien Verbert
 
Syed Vali Resume
Syed Vali ResumeSyed Vali Resume
Syed Vali Resume
Syed Vali
 
WebLogic Filtering ClassLoader and ClassLoader Analysis Tool Demo
WebLogic Filtering ClassLoader and ClassLoader Analysis Tool DemoWebLogic Filtering ClassLoader and ClassLoader Analysis Tool Demo
WebLogic Filtering ClassLoader and ClassLoader Analysis Tool Demo
Jeffrey West
 
Web Server(Apache),
Web Server(Apache), Web Server(Apache),
Web Server(Apache),
webhostingguy
 

Viewers also liked (20)

Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic Concepts
 
WebLogic Deployment Plan Example
WebLogic Deployment Plan ExampleWebLogic Deployment Plan Example
WebLogic Deployment Plan Example
 
Learn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c AdministrationLearn Oracle WebLogic Server 12c Administration
Learn Oracle WebLogic Server 12c Administration
 
Oracle Web Logic server
Oracle Web Logic serverOracle Web Logic server
Oracle Web Logic server
 
Oracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningOracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuning
 
WebLogic JMX for DevOps
WebLogic JMX for DevOpsWebLogic JMX for DevOps
WebLogic JMX for DevOps
 
Using Java to implement SOAP Web Services: JAX-WS
Using Java to implement SOAP Web Services: JAX-WS�Using Java to implement SOAP Web Services: JAX-WS�
Using Java to implement SOAP Web Services: JAX-WS
 
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla1512 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
 
Troubleshooting Apache CloudStack at #ccceu14 by @jorizvl
Troubleshooting Apache CloudStack at #ccceu14 by @jorizvlTroubleshooting Apache CloudStack at #ccceu14 by @jorizvl
Troubleshooting Apache CloudStack at #ccceu14 by @jorizvl
 
De Mensajería hacia Logs con Apache Kafka
De Mensajería hacia Logs con Apache KafkaDe Mensajería hacia Logs con Apache Kafka
De Mensajería hacia Logs con Apache Kafka
 
Troubleshooting guide for apache 2.2 service.
Troubleshooting guide for apache 2.2 service.Troubleshooting guide for apache 2.2 service.
Troubleshooting guide for apache 2.2 service.
 
resume
resumeresume
resume
 
Syed Vali Resume
Syed Vali ResumeSyed Vali Resume
Syed Vali Resume
 
E10132
E10132E10132
E10132
 
WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013
 
Apache logs monitoring
Apache logs monitoringApache logs monitoring
Apache logs monitoring
 
ApacheCon-HBase-2016
ApacheCon-HBase-2016ApacheCon-HBase-2016
ApacheCon-HBase-2016
 
WebLogic Filtering ClassLoader and ClassLoader Analysis Tool Demo
WebLogic Filtering ClassLoader and ClassLoader Analysis Tool DemoWebLogic Filtering ClassLoader and ClassLoader Analysis Tool Demo
WebLogic Filtering ClassLoader and ClassLoader Analysis Tool Demo
 
SOA Suite 12c Customer implementation
SOA Suite 12c Customer implementationSOA Suite 12c Customer implementation
SOA Suite 12c Customer implementation
 
Web Server(Apache),
Web Server(Apache), Web Server(Apache),
Web Server(Apache),
 

Similar to WebLogic in Practice: SSL Configuration

Similar to WebLogic in Practice: SSL Configuration (20)

SSL Everywhere!
SSL Everywhere!SSL Everywhere!
SSL Everywhere!
 
Types of ssl commands and keytool
Types of ssl commands and keytoolTypes of ssl commands and keytool
Types of ssl commands and keytool
 
Various Types of OpenSSL Commands and Keytool
Various Types of OpenSSL Commands and KeytoolVarious Types of OpenSSL Commands and Keytool
Various Types of OpenSSL Commands and Keytool
 
.NET Fest 2019. Eran Stiller. Create Your Own Serverless PKI with .NET & Azur...
.NET Fest 2019. Eran Stiller. Create Your Own Serverless PKI with .NET & Azur....NET Fest 2019. Eran Stiller. Create Your Own Serverless PKI with .NET & Azur...
.NET Fest 2019. Eran Stiller. Create Your Own Serverless PKI with .NET & Azur...
 
SSL Setup for Oracle 10g AS
SSL Setup for Oracle 10g ASSSL Setup for Oracle 10g AS
SSL Setup for Oracle 10g AS
 
Java Keytool Keystore Commands
Java Keytool Keystore CommandsJava Keytool Keystore Commands
Java Keytool Keystore Commands
 
1205 bhat pdf-ssl
1205 bhat pdf-ssl1205 bhat pdf-ssl
1205 bhat pdf-ssl
 
Training Slides: 302 - Securing Your Cluster With SSL
Training Slides: 302 - Securing Your Cluster With SSLTraining Slides: 302 - Securing Your Cluster With SSL
Training Slides: 302 - Securing Your Cluster With SSL
 
Securing Kafka
Securing Kafka Securing Kafka
Securing Kafka
 
Kafka 2018 - Securing Kafka the Right Way
Kafka 2018 - Securing Kafka the Right WayKafka 2018 - Securing Kafka the Right Way
Kafka 2018 - Securing Kafka the Right Way
 
Secure socket layer
Secure socket layerSecure socket layer
Secure socket layer
 
OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...
OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...
OTN tour 2015 Experience in implementing SSL between oracle db and oracle cli...
 
SSL Implementation - IBM MQ - Secure Communications
SSL Implementation - IBM MQ - Secure Communications SSL Implementation - IBM MQ - Secure Communications
SSL Implementation - IBM MQ - Secure Communications
 
Indianapolis mule soft_meetup_30_jan_2021 (1)
Indianapolis mule soft_meetup_30_jan_2021 (1)Indianapolis mule soft_meetup_30_jan_2021 (1)
Indianapolis mule soft_meetup_30_jan_2021 (1)
 
Create Your Own Serverless PKI with .NET & Azure Key Vault
Create Your Own Serverless PKI with .NET & Azure Key VaultCreate Your Own Serverless PKI with .NET & Azure Key Vault
Create Your Own Serverless PKI with .NET & Azure Key Vault
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates - Puppet Camps Cent...
The Dynamic Duo of Puppet and Vault tame SSL Certificates - Puppet Camps Cent...The Dynamic Duo of Puppet and Vault tame SSL Certificates - Puppet Camps Cent...
The Dynamic Duo of Puppet and Vault tame SSL Certificates - Puppet Camps Cent...
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
 
Oralce SSL walelt -TCPS_Troubleshooting_PB.pptx
Oralce SSL walelt -TCPS_Troubleshooting_PB.pptxOralce SSL walelt -TCPS_Troubleshooting_PB.pptx
Oralce SSL walelt -TCPS_Troubleshooting_PB.pptx
 
Toronto MuleSoft Meetup: Virtual Meetup #3
Toronto MuleSoft Meetup: Virtual Meetup #3Toronto MuleSoft Meetup: Virtual Meetup #3
Toronto MuleSoft Meetup: Virtual Meetup #3
 
Apache Web Server
Apache Web ServerApache Web Server
Apache Web Server
 

More from Simon Haslam

More from Simon Haslam (20)

Platform Engineering for the Modern Oracle World
Platform Engineering for the Modern Oracle WorldPlatform Engineering for the Modern Oracle World
Platform Engineering for the Modern Oracle World
 
Better Practices when Using Terraform to Manage Oracle Cloud Infrastructure
Better Practices when Using Terraform to Manage Oracle Cloud InfrastructureBetter Practices when Using Terraform to Manage Oracle Cloud Infrastructure
Better Practices when Using Terraform to Manage Oracle Cloud Infrastructure
 
The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)
 
What You Need to Know about Oracle Cloud Connectivity
What You Need to Know about Oracle Cloud ConnectivityWhat You Need to Know about Oracle Cloud Connectivity
What You Need to Know about Oracle Cloud Connectivity
 
Tips & Tricks for Oracle PaaS Admins
Tips & Tricks for Oracle PaaS AdminsTips & Tricks for Oracle PaaS Admins
Tips & Tricks for Oracle PaaS Admins
 
Platform Provisioning Automation for Oracle Cloud
Platform Provisioning Automation for Oracle CloudPlatform Provisioning Automation for Oracle Cloud
Platform Provisioning Automation for Oracle Cloud
 
Terrraform meet Oracle Cloud: Platform Provisioning Automation
Terrraform meet Oracle Cloud: Platform Provisioning AutomationTerrraform meet Oracle Cloud: Platform Provisioning Automation
Terrraform meet Oracle Cloud: Platform Provisioning Automation
 
Delivering Mobile Apps to the Field with Oracle
Delivering Mobile Apps to the Field with OracleDelivering Mobile Apps to the Field with Oracle
Delivering Mobile Apps to the Field with Oracle
 
Provisioning with Oracle Cloud Stack Manager
Provisioning with Oracle Cloud Stack ManagerProvisioning with Oracle Cloud Stack Manager
Provisioning with Oracle Cloud Stack Manager
 
Oracle SOA Cloud - Skanska Customer Journey
Oracle SOA Cloud - Skanska Customer JourneyOracle SOA Cloud - Skanska Customer Journey
Oracle SOA Cloud - Skanska Customer Journey
 
Tips & Tricks for Oracle PaaS Admins
Tips & Tricks for Oracle PaaS AdminsTips & Tricks for Oracle PaaS Admins
Tips & Tricks for Oracle PaaS Admins
 
Delivering Mobile Apps to the Field with Oracle JET
Delivering Mobile Apps to the Field with Oracle JETDelivering Mobile Apps to the Field with Oracle JET
Delivering Mobile Apps to the Field with Oracle JET
 
JET Hybrid Mobile Apps - taster for Oracle CodeOne
JET Hybrid Mobile Apps - taster for Oracle CodeOneJET Hybrid Mobile Apps - taster for Oracle CodeOne
JET Hybrid Mobile Apps - taster for Oracle CodeOne
 
Delivering Mobile Apps to the field using Oracle
Delivering Mobile Apps to the field using OracleDelivering Mobile Apps to the field using Oracle
Delivering Mobile Apps to the field using Oracle
 
Provisioning with Oracle Cloud Stack Manager
Provisioning with Oracle Cloud Stack ManagerProvisioning with Oracle Cloud Stack Manager
Provisioning with Oracle Cloud Stack Manager
 
Connecting Oracle Cloud to your Data Centre (Part A)
Connecting Oracle Cloud to your Data Centre (Part A)Connecting Oracle Cloud to your Data Centre (Part A)
Connecting Oracle Cloud to your Data Centre (Part A)
 
Running SOA in the Cloud: SOA CS for SOA Suite Customers
Running SOA in the Cloud: SOA CS for SOA Suite CustomersRunning SOA in the Cloud: SOA CS for SOA Suite Customers
Running SOA in the Cloud: SOA CS for SOA Suite Customers
 
Tips & Tricks for Java & SOA Cloud Service
Tips & Tricks for Java & SOA Cloud ServiceTips & Tricks for Java & SOA Cloud Service
Tips & Tricks for Java & SOA Cloud Service
 
SOA & WebLogic - Lift & Shift to the Cloud
SOA & WebLogic - Lift & Shift to the CloudSOA & WebLogic - Lift & Shift to the Cloud
SOA & WebLogic - Lift & Shift to the Cloud
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 

WebLogic in Practice: SSL Configuration

  • 1. Oracle WebLogic Server in Practice: SSL Configuration Jacco Landlust, Oracle Simon Haslam, Veriton
  • 2. Jacco & Simon Jacco: ◦ Domain Architect Director at Oracle Consulting ◦ Oracle ACE Simon: ◦ Founder of Veriton and now ◦ Oracle ACE Director (Middleware & SOA) ◦ UKOUG App Server & Middleware SIG Chair
  • 3. Agenda Concepts you need  WebLogic & SSL  Tools & Commands to manage keys 
  • 4. Essential Concepts  key-pair (asymmetric)  certificate  certificate authority (CA) ◦ one key to encrypt, a different key to decrypt ◦ you make one your private key, the other your public key ◦ unique to you ◦ public key ◦ signed ◦ signs certificates ◦ is independently trusted
  • 5. Old school Identity Management
  • 6. Identity certificate authority 1. person sends me their cert 2. I look at who it is signed by 3. If I trust the person it is signed by I accept their identity signed by certificate person I want to communicate with me
  • 7.
  • 8. Trust certificate authority B 1. Person sends me their cert 2. I look at who it is signed by 3. If I don't trust the person it is signed by I look at who they are signed by and so on certificate authority A certificate person I want to communicate with me
  • 9. Certificate Chain root certificate authority . . certificate authority B certificate authority A certificate me
  • 10.
  • 11. Certificate Chain root CA root CA . . certificate authority B root CA Trust Keystore certificate authority A certificate me
  • 12.
  • 13. Establishing my Identity root CA . . certificate authority B certificate authority A Identity Keystore me certificate
  • 14. What's in the Certificate       The public key Registered name/details of owner Validity Identity of CA Location of CA Revocation List Hash function summary (encrypted by CA key)
  • 15. How do I know certificate is valid? Client recreates summary "as they should be" (from ~hostname/validity) So by now we have the  Client hash function on summary and which we server's public key encrypts using can secure traffic with CA public key  Client compares result to public key offered by server  If same client now has the public key for the certificate owner and can check validity, (optionally) CRL, etc 
  • 16. Agenda Concepts you need  WebLogic & SSL  Tools & Commands to manage keys 
  • 17. Common tools to manage certificates keytool  openssl  orapki / Oracle Wallet Manager 
  • 18. Overall process for creating certificate 1. create key pair ◦ could be self signed - not much use unless every recipient is going to add you to their trust keystore create CSR 3. give CSR to CA 4. receive certificate back from CA 2.
  • 19. Key Stores  For Fusion Middleware we're interested in: ◦ Java Keystores (JKS) ◦ Oracle Wallet (PKCS12 format)  Either: ◦ contains one or more certificates ◦ each certificate has a CN, and usually has an alias ◦ can contain both public and private keys
  • 20. Type of keystore per component Type of Keystore Tasks Tool Oracle WebLogic Server JKS-based Keystore All Keystore operations JDK Keytool Oracle WebLogic Server JKS-based Keystore Enable SSL Oracle WebLogic Server Administration Console All Java EE applications (for example Oracle Directory Integration Platform, Oracle Directory Services Manager) JKS-based Keystore All Keystore operations JDK Keyt
  • 21. Type of keystore per component 2 Type of Keystore Tasks Tool Oracle HTTP Server Oracle Web Cache Oracle Internet Directory Oracle Wallet Create Wallet, Create Certificate Request, Delete Wallet, Import Certificate, Export Certificate, Enable SSL Fusion Middleware Control, WLST Oracle Wallet Manager and orapki for PKCS#11 or Hardware Security Modules (HSM)-based wallets. Also for environments where Fusion Middleware Control and WLST are not available (such as a stand-alone upgrade of these components without a domain). Oracle Virtual Directory JKS-based Keystore Create KeyStore, Create Certificate Request, Delete KeyStore, Import Certificate, Export Certificate, Enable SSL Fusion Middleware Control, WLST Oracle SOA Suite JKS-based Keystore All Keystore operations JDK Keytool Oracle WebCenter JKS-based Keystore All Keystore operations JDK Keytool
  • 22. How WebLogic states its Identity  Identity comes from a Java Keystore "identity keystore" ◦ must contain a certificate & key-pair matching alias  Each WebLogic server instance (Admin Server and Managed Servers) has to have an identity keystore to do SSL
  • 23. How WebLogic Establishes Trust   Trust comes from another JKS "trust keystore" Choice of standalone JKS or to use the one in the JDK trust (stored with JRE)  Note: ◦ DemoIdentity ◦ DemoTrust
  • 24.
  • 25. WebLogic Identity/Trust Combinations  Demo Identity and Demo Trust (default - not for prod) ◦ CN=hostname, signed by BEA CA that anyone can sign with  Custom Identity and Java Standard Trust ◦ determine trust from java/…  Custom Identity and Custom Trust ◦ our own identity and trust keystores  Custom Identity and Command Line Trust ◦ our own identity but trust keystore specified in start-up param
  • 26. Certificates Required  Server sends out its cert when someone tries to connect over SSL (i.e. one way) but can optionally request cert from client (two way) - console options: ◦ Client Certs Not Requested ◦ Client Certs Not Requested but Not Enforced ◦ Client Certs Requested and Enforced
  • 27. Hostname Verification ◦ None ◦ BEA Hostname Verifier ◦ Custom Hostname Verifier  e.g. weblogic.security.utils.SSLWLSWildcardHostnameVerifier  What does none mean? ◦ Cert is requested but does not have a CN for the host WebLogic is trying to connect to. It could be any old certificate.
  • 28. Set ignoreHostnameVerification = true?!?  We strongly recommend enabling hostname verification in all test and production environments.  Oracle® Fusion Middleware Securing Oracle WebLogic Server: "Oracle recommends leaving host name verification on in production environments"
  • 29. Agenda Concepts you need  WebLogic & SSL  Tools & Commands to manage keys 
  • 30. Keystore Naming Conventions   Do not use a name longer than 256 characters Do not use any of the following characters in a keystore name: | ; , ! @ # $ ( ) < > / " ' ` ~ { } [ ] = + & ^ space tab  Do not use non-ASCII characters in a keystore name  Additionally, follow the operating system-specific rules for directory and file names
  • 31. Copying Keystores to File System Not Supported Creating, renaming, or copying keystores directly to any directory on the file system is not supported. Any existing pre-11g keystore or wallet that you wish to use must be imported using either Fusion Middleware Control or the WLST utility. http://docs.oracle.com/cd/E21764_01/core.1111/e10105/w allets.htm
  • 32. Generate self signed certificate keytool -genkey -keyalg RSA -alias selfsigned -keystore ${JKS} -storepass ${JKS_PASSWORD} -validity 360 -keysize 2048 -keypass ${KEY_PASSWORD} What is your first and last name? [Unknown]: somehost.localdomain What is the name of your organizational unit? [Unknown]: Example Department What is the name of your organization? [Unknown]: Example Company What is the name of your City or Locality? [Unknown]: Manchester What is the name of your State or Province? [Unknown]: West Midlands What is the two-letter country code for this unit? [Unknown]: GB Is CN=somehost.localdomain, OU=Example Department, O=Example Company, L=Manchester, ST=West Midlands, C=GB correct? [no]: yes Enter key password for <selfsigned> (RETURN if same as keystore password):
  • 33. Generate self signed certificate 2 keytool -genkey -keyalg RSA -alias selfsigned -keystore ${JKS} -dname "CN=`hostname`, OU=Example Department, O=Example Company, L=Manchester, ST=West Midlands, C=GB" -storepass ${JKS_PASSWORD} -validity 360 -keysize 2048 This must be the -keypass ${KEY_PASSWORD} hostname that clients use to connect to you. E.g. may be a CNAME or a VIP
  • 34. Create key pair keytool -genkey -alias `hostname` -keyalg RSA -keystore ${JKS} -keysize 2048
  • 35. Create certificate signing request keytool -certreq -alias `hostname` -keystore ${JKS} -file ${REQUEST_FILE}
  • 36. Import a signed certificate from CA keytool -import -trustcacerts -alias `hostname` -file ${SIGNED_CERT} -keystore ${JKS}
  • 37. List contents of keystore keytool -list -v -keystore ${JKS} -storepass ${JKS_PASSWORD} Keystore type: JKS Keystore provider: SUN Your keystore contains 1 entry Alias name: selfsigned Creation date: Feb 9, 2013 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=somehost.localdomain, OU=Example Department, O=Example Company, L=Manchester, ST=West Midlands, C=GB Issuer: CN=somehost.localdomain, OU=Example Department, O=Example Company, L=Manchester, ST=West Midlands, C=GB Serial number: 51165df7 Valid from: Sat Feb 09 14:32:23 GMT 2013 until: Tue Feb 04 14:32:23 GMT 2014 Certificate fingerprints: MD5: DA:FF:F9:0B:EF:2D:26:DA:E9:48:22:1A:6E:7F:42:DF SHA1: 46:8B:E7:DC:6B:95:69:34:85:43:A3:F7:C2:63:3B:29:F7:BD:9C:AD Signature algorithm name: SHA1withRSA Version: 3
  • 38. keytool commands for checking  Check a stand-alone certificate keytool -printcert -v -file ${CERTIFICATE}  Check which certificates are in a Java keystore keytool -list -v -keystore ${JKS}  Check a particular keystore entry using an alias keytool -list -v -keystore ${JKS} -alias ${ALIAS}
  • 39. Other useful keystore commands  Delete a certificate from a Java Keytool keystore keytool -delete -alias ${ALIAS} -keystore ${JKS}  Change a Java keystore password keytool -storepasswd -new ${NEW_PASSWORD} -keystore ${JKS}  Export a certificate from a keystore keytool -export -alias ${ALIAS} -file ${CERTIFICATE} -keystore ${JKS}
  • 40. Copy key to other keystore SRC_ALIAS=cn=`hostname` keytool -importkeystore -srckeystore ${JKS} -srcstorepass ${JKS_PASSWORD} -destkeystore ${IDENTITY_KS} -deststorepass ${ID_KS_PASSWORD} -srcalias ${SRC_ALIAS} -destalias `hostname` -destkeypass ${ID_KS_PASSWORD} <<EOF yes EOF
  • 41. Convert wallet to keystore orapki wallet pkcs12_to_jks -wallet ${WALLET} -pwd ${WALLET_PASSWORD} -jksKeyStoreLoc ${JKS} -jksKeyStorepwd ${JKS_PASSWORD} -jksTrustStoreLoc ${TRUSTSTORE} -jksTrustStorepwd ${TRUSTSTORE_PASSWORD}
  • 42. Convert keystore to wallet orapki wallet create -wallet ${WALLET} -pwd ${WALLET_PASSWORD} -auto_login orapki wallet jks_to_pkcs12 -wallet ${WALLET} -pwd ${WALLET_PASSWORD} -keystore ${JKS} -jkspwd ${JKS_PASSWORD}
  • 43. About Importing DER-encoded Certificates   You cannot use Fusion Middleware Control or the WLST command-line tool to import DER-encoded certificates or trusted certificates into an Oracle wallet or a JKS keystore. Use these tools instead: To import DER-encoded certificates or trusted certificates into an Oracle wallet, use: ◦ Oracle Wallet Manager or ◦ orapki command-line tool  To import DER-encoded certificates or trusted certificates into a JKS keystore, use the keytool utility
  • 44. Summary We discussed how WebLogic uses Identity, Trust & CAs • Always enable Hostname Verification! • Never use Demo Certs - do SSL properly or not at all  •
  • 45. Questions? Contact us! (e.g. DM on Twitter) Jacco: @oraclemva Simon: @simon_haslam