
{"id":7386,"date":"2020-12-04T16:44:04","date_gmt":"2020-12-04T16:44:04","guid":{"rendered":"https:\/\/rax-stg-wp-aws.com\/blogs\/configuring-ssl-in-weblogic-server-12c\/"},"modified":"2026-11-03T19:28:38","modified_gmt":"2026-11-03T19:28:38","slug":"configuring-ssl-in-weblogic-server-12c","status":"publish","type":"blogs","link":"https:\/\/www.rackspace.com\/en-gb\/blogs\/configuring-ssl-in-weblogic-server-12c\/","title":{"rendered":"Configuring SSL in WebLogic Server 12c"},"content":{"rendered":"<p><em><strong>This post describes how to configure SSL on Oracle\u00ae WebLogic\u00ae Server 12c (12.1.2).<\/strong><\/em><\/p>\n<p><strong>Overview&nbsp;<\/strong><\/p>\n<p>Security of the data and information is a primary concern in today&#8217;s world. A variety of&nbsp;applications use the Secure Socket Layer (SSL) protocol for secure communication over the&nbsp;network. It is one of the most widely used network communication protocols.<\/p>\n<p>WebLogic Server, configured to use SSL, provides both <em>identity authentication<\/em>&nbsp;and <em>in-transit data encryption<\/em>&nbsp;for connection between two application programs. Thus, any&nbsp;two applications interacting with each other through SSL gain the following secure-connection&nbsp;benefits:<\/p>\n<p>&nbsp;<\/p>\n<ol>\n<li>They verify each other&#8217;s identity by using individual SSL certificates.<\/li>\n<li>They exchange encrypted (in-transit) data between both application programs.<\/li>\n<\/ol>\n<p>The SSL connection request and response mechanism adds computation overhead of processing&nbsp;additional data and information regarding authentication and requires complex cryptographic&nbsp;algorithm processing. Therefore, most people do not usually use it in Weblogic server&nbsp;instances running in <em>development mode<\/em>&nbsp;within a highly secure network infrastructure.&nbsp;However, SSL configuration is highly desirable for Weblogic server instances running in&nbsp;<em>production mode<\/em>.&nbsp;<\/p>\n<p><strong>Configuration demonstration<\/strong><\/p>\n<p>This post covers the steps to configure SSL on a preinstalled Weblogic Server on the&nbsp;<strong>MYPROD\\_AdminServer<\/strong>&nbsp;and <strong>Managed Server<\/strong>&nbsp;instances in the <strong>MYPROD_DOMAIN&nbsp;<\/strong>domain Node Manager.&nbsp;<\/p>\n<p>To do this, create a new identity keystore and a new trusted keystore to store the newly&nbsp;signed certificate. Thus, the WebLogic admin, all managed server instances, and the Node&nbsp;Manager communicate by using the SSL protocol based on custom keystores.<\/p>\n<p>Use the following steps to configure SSL on existing WebLogic &nbsp;server instances:<\/p>\n<p><strong>Step 1: Create the identity keystore&nbsp;<\/strong><\/p>\n<p>Perform the following steps to create the identity keystore, <strong>MYPRODIdentity.jks<\/strong>, on the&nbsp;<strong>myprodserver.mydomain.local<\/strong>&nbsp;server:<\/p>\n<p>(a) Log into the WebLogic Server Linux\u00ae; server shell as the WebLogic application owner user (such as <em>Oracle<\/em>) and run the following code to create a new folder,<br \/>\n<strong>\\&lt;middleware_home\\&gt;\/user_projects\/domains\/\\&lt;domain_home\\&gt;\/keystores<\/strong>:<\/p>\n<p><em>&nbsp; [oracle@myprodserver]$ mkdir -p \/u01\/Middleware\/user_projects\/domains\/MYPROD_DOMAIN\/keystores<\/em><\/p>\n<p>(b) Set the`MYPROD_DOMAIN` environment and create the new keystore:<\/p>\n<p><em>&nbsp; &nbsp; [oracle@myprodserver]$ cd \/u01\/Middleware\/user_projects\/domains\/MYPROD_DOMAIN\/bin<br \/>\n&nbsp; &nbsp; [oracle@myprodserver]$ . .\/setDomainEnv.sh<br \/>\n&nbsp; &nbsp; [oracle@myprodserver]$ cd keystores<br \/>\n&nbsp; &nbsp; [oracle@myprodserver]$ keytool -genkeypair -alias mywlsprodcert -keyalg RSA -keysize 1024 -dname &#8220;CN=*.mydomain.local,OU=&lt;Organization&gt;,O=&lt;Company&gt;,L=&lt;City&gt;,S=&lt;State&gt;,C=&lt;US&gt;&#8221; -keystore MYPRODIdentity.jks<br \/>\n&nbsp; &nbsp; Enter keystore password: &lt;Type a new keyStorePass&gt;<br \/>\n&nbsp; &nbsp; Re-enter new password: &lt;Re-type the keyStorePass&gt;<\/em><\/p>\n<p>Enter key password for &lt;mywlsprodcert&gt; (RETURN if same as keystore password): &lt;ENTER&gt;<\/p>\n<p><strong>Step 2: Generate a new CSR<\/strong><\/p>\n<p>Perform the following steps to generate a new Certificate Signing Request (CSR) using&nbsp;<strong>MYPRODIdentity.jks<\/strong><\/p>\n<p>(a)<strong> <\/strong>Run the following code to use the <em>keytool<\/em>&nbsp;utility to generate the CSR:&nbsp;<\/p>\n<p><em>&nbsp; &nbsp; [oracle@myprodserver]$ keytool -certreq -v -alias prodcert -file MYWLSPRODCert.csr -keystore MYPRODIdentity.jks<br \/>\n&nbsp; &nbsp; Enter keystore password: &lt;KeyStorePass&gt;<br \/>\n&nbsp; &nbsp; Certification request stored in file &lt;MYWLSPRODCert.csr&gt;<\/em><\/p>\n<p>(b) Submit the newly created Certificate Signing Request (CSR) to a Certificate Authority&nbsp;<br \/>\nCA). After signing the CSR, the CA provides the digital certificate and its private key.<\/p>\n<p><strong>NOTE:&nbsp;<\/strong>For this demonstration, we use the WebLogic Demo CA (CertGenCA.der) to sign the certificate. This demo self-signing feature is available with WebLogic Server. In production, you should get server certificates signed by your organization&#8217;s designated, trusted CA.<\/p>\n<p><strong>Step 3: Self-sign the CSR<\/strong><\/p>\n<p>Perform the following steps to self-sign the CSR by using the WebLogic demo CA (CertGenCA.der)<br \/>\nand import it into the newly created identity keystore:<\/p>\n<p>(a) Run the following code to self-sign the certificate:<\/p>\n<p><em>&nbsp; &nbsp; [oracle@myprodserver]$ java utils.CertGen -keyfile MYPRODCertPrivateKey -keyfilepass password -certfile mywlsprodcert -cn &#8220;*.my.local&#8221;<br \/>\n&nbsp; &nbsp; Generating a certificate with wildcard *.domain.local and key strength 1024<br \/>\n&nbsp; &nbsp; \/u01\/Middlewaree\/wlserver_12.1\/server\/lib\/CertGenCA.der file and key from \/u01\/Middlewaree\/wlserver_12.1\/server\/lib\/CertGenCAKey.der file<br \/>\n&nbsp; &nbsp; [oracle@myprodserver]$<\/em><\/p>\n<p>\n(b) Import the newly created server certificate and private keys to the previously created<br \/>\nkeystore:<\/p>\n<p><em>&nbsp; &nbsp; [oracle@myprodserver]$ java utils.ImportPrivateKey -keystore MYPRODIdentity.jks -keyfile MYPRODCertPrivateKey.pem -keyfilepass &lt;password&gt; -certfile MYPRODCert.pem -storepass &lt;keyStorePass&gt; -alias mywlsprodcert<\/em><\/p>\n<p><strong>Step 4: Create the keystore<\/strong><\/p>\n<p>Perform the following steps to create the custom trust keystore on the&nbsp;<strong>myprodserver.mydomain.local<\/strong> machine:<\/p>\n<p>(a) Create the <strong>MYPRODTrust.jks<\/strong>&nbsp;keystore by making a copy from the Standard Java Trust:<\/p>\n<p><em>&nbsp; &nbsp; [oracle@myprodserver]$ cp \/u01\/java\/jre\/lib\/security\/cacerts&nbsp;<br \/>\n&nbsp; &nbsp; \/u01\/Middleware\/user_projects\/domains\/MYPROD_DOMAIN\/keystores\/MYPRODTrust.jks<\/em><\/p>\n<p>(b) Change the default <strong>cacerts<\/strong>&nbsp;password. The default is <em>changeit<\/em>. Update it to a new&nbsp;password of your choice:<\/p>\n<p><em>&nbsp; &nbsp; [oracle@myprodserver]$ keytool -storepasswd -keystore MYPRODTrust.jks<br \/>\n&nbsp; &nbsp; Enter keystore password: &lt;defaultKeyStorePass&gt;<br \/>\n&nbsp; &nbsp; New keystore password: &lt;NewKeyStorePass&gt;<br \/>\n&nbsp; &nbsp; Re-enter new keystore password: &lt;Re-type NewKeyStorePass&gt;<\/em><\/p>\n<p>(c) Import the newly created self-signed certificate to the recently created trust keystore:<\/p>\n<p><em>&nbsp; &nbsp;[oracle@myprodserver]$ keytool -import -v -trustcacerts -alias rootCA -file \/u01\/Middleware\/wlserver_12.1\/server\/lib\/CertGenCA.der -keystore MYPRODTrust.jks<\/em><\/p>\n<p><strong>Step 5: Copy the SSL certificate to all other servers in the domain<\/strong><\/p>\n<p>Because you based the SSL certificate on wildcards instead of a specific server name, all&nbsp;servers in <strong>MYPROD\\_DOMAIN<\/strong>&nbsp;can use the same certificate. Therefore, copy the previously created keystores directory,&nbsp;<strong>\/u01\/Middleware\/user\\_projects\/domains\/MYPROD\\_DOMAIN\/keystores<\/strong>, which contains the<br \/>\nrequired certificates for all WebLogic Servers shared by <strong>MYPROD\\_DOMAIN<\/strong>&nbsp;<\/p>\n<p><strong>Step 6: Configure the WebLogic Node Manager<\/strong><\/p>\n<p>Perform the following steps to configure the WebLogic Node Manager to use the newly created&nbsp;SSL certificate:<\/p>\n<p>(a) Update the following variables in the <strong>$WL_HOME\/common\/nodemanager\/nodemanager.properties<\/strong>&nbsp;file:<\/p>\n<p><em>&nbsp; &nbsp; KeyStores=CustomIdentityAndCustomTrust&nbsp; &nbsp; CustomIdentityKeyStoreFileName=\/u01\/Middleware\/user_projects\/domains\/MYPROD_DOMAIN\/keystores\/MYPRODIdentity.jks<br \/>\n&nbsp; &nbsp; CustomIdentityKeyStorePassPhrase=&lt;NewKeyStorePass&gt;<br \/>\n&nbsp; &nbsp; CustomIdentityAlias=mywlsprodcert<br \/>\n&nbsp; &nbsp; CustomIdentityPrivateKeyPassPhrase=&lt;PrivateKeyPassword&gt;<\/em><\/p>\n<p>(b) Shut down and start the Node Manager.<\/p>\n<p><strong>Step 7: Configure the WebLogic Admin Server<\/strong>&nbsp;<\/p>\n<p>Perform the following steps to configure the WebLogic Admin Server to use the new custom<br \/>\nkeystore and certificate for SSL connections:<\/p>\n<p>(a) Log into the WebLogic Server Console by using your WebLogic administrator credentials.&nbsp;<br \/>\n&nbsp;<br \/>\n(b) On the <strong>Home<\/strong>&nbsp;page, under <strong>Domain Configurations &#8211;&gt; Environments<\/strong>, click <strong>Servers<\/strong>,<br \/>\nas shown in the following screenshot:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26406-body-Picture1_22.png\" alt=\"ssl pic 1\" \/><\/p>\n<p>(c) On the <strong>Summary of Servers<\/strong>&nbsp;page, click <strong>AdminServer (admin)<\/strong>:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26406-body-Picture2_20.png\" alt=\"ssl pic 2\" \/><\/p>\n<p>(d) From the top left-hand side <strong>Change Center &#8211;&gt; View changes and restarts<\/strong>, click&nbsp;<strong>Lock &amp; Edit<\/strong>&nbsp;to update the keystore rule settings.&nbsp;<\/p>\n<p>(e) In <strong>Settings for AdminServer<\/strong>&nbsp;under <strong>Configuration<\/strong>, click the <strong>keystores<\/strong>&nbsp;tab&nbsp;and then click <strong>change<\/strong>, as shown in the following images to change the WebLogic admin&nbsp;server rule to use the newly created custom keystore for the SSL connection.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26406-body-Picture3_15.png\" alt=\"ssl pic 3\" \/><\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26406-body-Picture4_14.png\" alt=\"ssl pic 4\" \/><\/p>\n<p>&nbsp;(f) Update Keystore rule by selecting <strong>Custom Identity and Custom Trust<\/strong>&nbsp;from the&nbsp;<strong>Keystores<\/strong>&nbsp;drop-down list and save the updates.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26406-body-Picture5_12.png\" alt=\"ssl pic 5\" \/><\/p>\n<p>\n(g) Update <strong>.\/keystores\/MYPRODIdentity.jks<\/strong>&nbsp;in the <strong>Custom Identity Keystore<\/strong>&nbsp;text box.&nbsp;Update <strong>keyStore password<\/strong>&nbsp;and save.&nbsp;<\/p>\n<p>(h) Update <strong>.\/keystores\/MYPRODTrust.jks<\/strong>&nbsp;in the <strong>Custom Trust Keystore<\/strong>&nbsp;text box.<br \/>\nUpdate <strong>Trust keyStore Password<\/strong>&nbsp;and save.<\/p>\n<p>(i) Open SSL tab under the <strong>Configuration<\/strong>&nbsp;parent tab and update following parameters:<\/p>\n<p>&nbsp; &nbsp;(i) Update <strong>Private Key Alias<\/strong>&nbsp;parameter value to <strong>mywlsprodcert<\/strong>.&nbsp;<br \/>\n&nbsp; (ii) Update <strong>Private Key Passphrase<\/strong>&nbsp;with the private key password.<br \/>\n&nbsp;(iii) Under the <strong>Advanced<\/strong>&nbsp;menu, update the <strong>Hostname Verification<\/strong>&nbsp;value to&nbsp;&nbsp;<strong>Custom Hostname Verifier<\/strong>&nbsp;from the drop-down list as shown in the following image: &nbsp;<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26406-body-Picture6_8.png\" alt=\"ssl pic 6\" \/><\/p>\n<p>&nbsp; (iv) Update the <strong>Custom Hostname Verifier<\/strong>&nbsp;value to <strong>weblogic.security.utils.SSLWLSWildcardHostnameVerifier<\/strong>.&nbsp;<br \/>\n&nbsp; This is required because we are using a single wildcard certificate for all servers<em> (**CN=\\*.mydomain.local**).<\/em><br \/>\n&nbsp; &nbsp;(v) Save these updates.&nbsp;<\/p>\n<p>(j) Navigate to the <strong>Configuration &#8211;&gt; General<\/strong>&nbsp;tab and enable the <strong>SSL Listen Port Enabled&nbsp;<\/strong>option by checking the checkbox as shown in the following image:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26406-body-Picture7_6.png\" alt=\"ssl pic 7\" \/><\/p>\n<p>(k) The WebLogic admin server default SSL port is <em>`7002`<\/em>, but you can configure SSL services&nbsp;on other ports as well. You need to use the default value <strong>7002<\/strong>&nbsp;here for demonstration&nbsp;purposes, so update <strong>SSL Listen Port<\/strong>&nbsp;to <strong>7002<\/strong>&nbsp;and save the update, as shown in the&nbsp;following image:&nbsp;<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26406-body-Picture8_5.png\" alt=\"ssl pic 8\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Step 8: Configure the WebLogic Managed Servers&nbsp;<\/strong><\/p>\n<p>To configure all the WebLogic Managed Servers to use the new custom key store and&nbsp;certificate for SSL connections, repeat steps <strong>7a &#8211; 7k<\/strong>. You need to use different SSL&nbsp;port values for each WebLogic Managed Server. For example, use `ManagedServer01: SSL port &#8211; 9001`,&nbsp;`ManagedServer02: SSL port &#8211; 9002`, `ManagedServer03: SSL port &#8211; 9003`, and so on.<\/p>\n<p><strong>Step 9: Apply updates to the configuration files<\/strong><\/p>\n<p>Click <strong>Release Configuration<\/strong>&nbsp;from the top left-hand menu to apply all updates to the&nbsp;WebLogic configuration files.<\/p>\n<p><strong>Step 10: Restart WebLogic<\/strong><\/p>\n<p>Restart the WebLogic admin and all managed servers together with Node Manager.<\/p>\n<p><strong>Conclusion<\/strong><\/p>\n<p>This post provides the steps to configure a WebLogic server to use SSL security protocol to&nbsp;enable websites to pass sensitive information securely in an encrypted format. With the use&nbsp;of SSL certificates and RSA Data Security&#8217;s cryptography mechanism, users can exchange&nbsp;and process data and information securely.<\/p>\n<p>Because you enabled SSL on both the admin server and managed server by using this document,&nbsp;both data and the WebLogic server are secure from any cyber-attacks and data leaks.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Configuring SSL in WebLogic Server 12c<\/p>\n","protected":false},"author":2,"featured_media":7388,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"content-type":"","nid":"26406","content_type":"blog","created_by":"10130","authored_on":"2023-12-19T16:44:04+00:00","field_article_industries":"","tag_category":"Technical","field_blog_author_text":"by Rackspace Technology Staff","seo_description":"Configure SSL on Oracle WebLogic Server 12c for secure network communication. Protect data with identity authentication and encryption.\r\n","field_featured_image":"","insights_image":"\/wp-content\/uploads\/2026\/blog_technical_images\/26406-insights_image-security-technical-blog-1-insights.jpg","field_partners":"","rxt_platforms":"Oracle","product":"","publisheddate":"2020-12-04T16:44:04","rxt_solutions":"Databases","opengraph_tag":"","x_tag":"","teaser_flag":"Technical Blog","seo_titile":"Secure Communication SSL 12c WebLogic Server | Rackspace","field_topics":"","field_slug":"configuring-ssl-in-weblogic-server-12c","footnotes":""},"categories":[178],"tags":[204],"class_list":["post-7386","blogs","type-blogs","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/7386","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs"}],"about":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/types\/blogs"}],"author":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/comments?post=7386"}],"version-history":[{"count":3,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/7386\/revisions"}],"predecessor-version":[{"id":9434,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/7386\/revisions\/9434"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/media\/7388"}],"wp:attachment":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/media?parent=7386"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/categories?post=7386"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/tags?post=7386"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}