
{"id":7167,"date":"2021-12-03T18:30:43","date_gmt":"2021-12-03T18:30:43","guid":{"rendered":"https:\/\/rax-stg-wp-aws.com\/blogs\/implement-workflow-java-mailer-ssl-configuration\/"},"modified":"2026-11-03T19:28:09","modified_gmt":"2026-11-03T19:28:09","slug":"implement-workflow-java-mailer-ssl-configuration","status":"publish","type":"blogs","link":"https:\/\/www.rackspace.com\/de\/blogs\/implement-workflow-java-mailer-ssl-configuration\/","title":{"rendered":"Implement Workflow Java Mailer SSL configuration"},"content":{"rendered":"<p><strong>Introduction&nbsp;<\/strong><\/p>\n<p>To secure workflow communications, you can configure an Oracle application server to use Secure Sockets Layer (SSL).<\/p>\n<p>This post describes an example of the commands and tools for setting up a test case of Workflow Java Mailer connecting to an SMTP\/IMAP server with SSL enabled.&nbsp;<\/p>\n<p>Perform the following detailed steps to configure Workflow Java Mailer:<\/p>\n<p><strong>Step 1: Open ports<\/strong><\/p>\n<p>Work with your network team and open the following ports from Concurrent Manager Tire:<br \/>\n<em>SMTP\/SSL Port: 465<\/em>&nbsp;and <em>IMAP\/SSL Port: 993.<\/em><\/p>\n<p>\n<em>Protocol: SMTP\/SSL Port: 465<br \/>\nProtocol: IMAP\/SSL Port: 993<\/em><\/p>\n<p><em>PROD [&lt;user&gt;@servername ~]$ telnet &lt;SMTP Server Name&gt; 465<br \/>\nTrying XXXXXX&#8230;<br \/>\nConnected to SMTP Server Name.<br \/>\nEscape character is &#8216;^]&#8217;<\/em><\/p>\n<p><em>PROD [&lt;user&gt;@servername ~]$ telnet &lt;IMAP Server Name&gt; 993<br \/>\nTrying XXXXXX&#8230;<br \/>\nConnected to IMAP Server Name.<br \/>\nEscape character is &#8216;^]&#8217;<\/em><br \/>\n&nbsp;<\/p>\n<p><strong>Step 2: Export the certificate from the email server.<\/strong><\/p>\n<p>Goraknath Rathod, a DBA and blogger, explains this step in&nbsp;<a href=\"https:\/\/rathodappsdba.blogspot.com\/2018\/06\/workflow-ssl-certificate-installation.html\">his 2018 post<\/a>&nbsp;&#8220;To establish a secure communication channel, the certificate from the Email Server (issued by a Certification Authority) needs to be imported on the Concurrent Manager Tire.<\/p>\n<p>&#8220;The email server certificate issued by a trusted Certification Authority (i.e. Verisign), can be obtained from the System Administrator or downloaded by [completing the following steps]:&#8221;<\/p>\n<p>Following are the steps Rathod describes:<\/p>\n<p>A. Access your main web page https:\/\/&lt;host.domain:port&gt;. &nbsp; &nbsp;&nbsp;<br \/>\nB. Double-click on the padlock at the bottom of the page to view the Certificates. If there&nbsp;is no padlock, then on the top toolbar: select <strong>File-&gt;Properties-&gt;Certificates<\/strong>. &nbsp; &nbsp; &nbsp;<br \/>\nC. Select the Certification Path tab and: &nbsp; &nbsp; &nbsp;&nbsp;<br \/>\n&nbsp; &nbsp;a. Click on the first line and then view certificate. This will be the certificate for the root Certifying Authority (CA). &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<br \/>\n&nbsp; &nbsp;b. On the <strong>Details<\/strong>&nbsp;tab, click <strong>Copy to File<\/strong>. This will start the export wizard. &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<br \/>\n&nbsp; &nbsp;c. Click Next to continue. &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<br \/>\n&nbsp; &nbsp;d. Select <strong>Base-64 encoded X.509 (.CER)<\/strong>&nbsp;and click <strong>next<\/strong>. &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<br \/>\n&nbsp; &nbsp;e. Enter `ca1` as the name and click <strong>ok<\/strong> to export the certificate. &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<br \/>\n&nbsp; &nbsp;f. Repeat all the preceding steps for each line on the certification-path tab<br \/>\n&nbsp; &nbsp;incrementing the file name each time by 1 (i.e., ca2, ca3)<\/p>\n<p><strong>Step 3: Create a keystore&nbsp;<\/strong><\/p>\n<p>Rathod continues: &#8220;Create a keystore on the Concurrent Manager Tire. Import the certificate to keystore.&#8221;<\/p>\n<p>Following are the steps Rathod describes with some sample code I provided:&nbsp;<br \/>\nA. Create a keystore that holds the certificate, using the default location (i.e., <strong>\/home\/applmgr<\/strong>).<br \/>\nB. Upload the Certificate to the Concurrent Manager Tire using an FTP tool.<\/p>\n<p><em>[&lt;user&gt;@servername ~]$ ls -lrt ca1.cer ca2.cer ca3.cer ca4.cer<br \/>\n-rw-rw-r&#8211; 1 applmgr applmgr 1472 Jul 17 00:40 ca1.cer<br \/>\n-rw-rw-r&#8211; 1 applmgr applmgr 1646 Jul 17 00:41 ca2.cer<br \/>\n-rw-rw-r&#8211; 1 applmgr applmgr 1756 Jul 17 00:41 ca3.cer<br \/>\n-rw-rw-r&#8211; 1 applmgr applmgr 2800 Jul 17 00:41 ca4.cer<br \/>\n[&lt;user&gt;@servername ~]$ pwd<br \/>\n\/home\/applmgr<\/em><\/p>\n<p><em>[&lt;user&gt;@servername ~]$ keytool -genkey -alias -keystore -storetype JKS<br \/>\nEnter keystore password:<br \/>\nRe-enter new password:<br \/>\nWhat is your first and last name?<br \/>\nWhat is the name of your organizational unit?<br \/>\nWhat is the name of your organization?<br \/>\nWhat is the name of your city or locality?<br \/>\nWhat is the name of your state or province?<br \/>\nWhat is the two-letter country code for this unit?<br \/>\nIs CN=XXX, OU=XXX, O=XXX, L=XXX, ST=XXX, C=XXX correct?<br \/>\n&nbsp;[no]: yes<\/em><\/p>\n<p><em>Enter key password for &lt;-keystore&gt;<br \/>\n&nbsp; &nbsp; (RETURN if same as keystore password):<br \/>\nRe-enter new password: changeit<\/em><\/p>\n<p>C. Import the certificate into the created keystore.<\/p>\n<p>\n<em>[&lt;user&gt;@servername ~]$ ls -la .keystore<br \/>\n-rw-rw-r&#8211; 1 applmgr applmgr 1332 Jul 17 01:04 .keystore<\/em><\/p>\n<p><em>keytool -import -alias my_cert1 -file ca1.cer -keystore .keystore -storepass &lt;keystore password&gt;&nbsp;<br \/>\nkeytool -import -alias my_cert2 -file ca2.cer -keystore .keystore -storepass &lt;keystore password&gt;&nbsp;<br \/>\nkeytool -import -alias my_cert3 -file ca3.cer -keystore .keystore -storepass &lt;keystore password&gt;<br \/>\nkeytool -import -alias my_cert4 -file ca4.cer -keystore .keystore -storepass &lt;keystore password&gt;<\/em><\/p>\n<p>\nD. Verify the certificates.<\/p>\n<p>\n<em>[&lt;user&gt;@servername~]$ keytool -list -keystore .keystore<br \/>\nEnter keystore password:<\/em><\/p>\n<p><em>Keystore type: JKS<br \/>\nKeystore provider: SUN<\/em><\/p>\n<p><em>Your keystore contains 5 entries<\/em><\/p>\n<p><em>my_cert4, Jul 17, 2020, trustedCertEntry,<br \/>\nCertificate fingerprint (SHA1): 1E:5D:EA:8C:79:E1:89:85:1B:31:62:16:1F:D9:27:6A:56:FD:AB:37<br \/>\nmy_cert3, Jul 17, 2020, trustedCertEntry,<br \/>\nCertificate fingerprint (SHA1): 27:AC:93:69:FA:F2:52:07:BB:26:27:CE:FA:CC:BE:4E:F9:C3:19:B8<br \/>\nmy_cert2, Jul 17, 2020, trustedCertEntry,<br \/>\nCertificate fingerprint (SHA1): 34:0B:28:80:F4:46:FC:C0:4E:59:ED:33:F5:2B:3D:08:D6:24:29:64<br \/>\nmy_cert1, Jul 17, 2020, trustedCertEntry,<br \/>\nCertificate fingerprint (SHA1): 27:96:BA:E6:3F:18:01:E2:77:26:1B:A0:D7:77:70:02:8F:20:EE:E4<br \/>\n-keystore, Jul 17, 2020, PrivateKeyEntry,<br \/>\nCertificate fingerprint (SHA1): E0:DA:C8:95:4F:FB:A2:82:40:9E:6A:02:A0:82:0F:35:5E:B1:FE:08<\/em><\/p>\n<p>E. Set MAILER\\_SSL\\_TRUSTSTORE (i.e., <strong>\/home\/applmgr\/.keystore<\/strong>).<\/p>\n<p>From SQL \\*Plus:<\/p>\n<p>\n<em>[&lt;user&gt;@servername~]$ sqlplus apps\/XXXXX @$FND_TOP\/sql\/afsvcpup.sql<\/em><\/p>\n<p><em>&nbsp; 10006 &nbsp; &nbsp;Workflow Notification Mailer &nbsp;DEACTIVATED_SYST &nbsp;WF_MAILER &nbsp;&nbsp;<br \/>\nGSM<\/em><\/p>\n<p><em>Enter Component Id: 10006<\/em><\/p>\n<p><em>10243 SSL Trust store &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NONE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NONE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;N&nbsp;<br \/>\nN<br \/>\nEnter the Comp Param Id to update: 10243<br \/>\nYou have selected parameter: SSL Trust store<br \/>\nCurrent value of parameter: NONE<\/em><\/p>\n<p><em>Enter a value for the parameter: \/home\/applmgr\/.keystore<\/em><\/p>\n<p><strong>Step 4: Configure the Mailer to work with IMAPSSL \/ SMTPSSL<\/strong><\/p>\n<p>Following are the steps Rathod describes:<\/p>\n<p>Navigation: Log on to <strong>OAM &gt;System Administrator &gt; Workflow Manager &gt; Notification Mailer Link<\/strong>.<br \/>\n&nbsp;<br \/>\nA. Enter Outbound Server Name and validate check-box Outbound SSL Enable.<br \/>\nB. Enter Inbound Server name, Username, Password, Reply-to Address and validate check-box<br \/>\n&nbsp; &nbsp;&nbsp;<strong>Inbound SSL Enable<\/strong>.<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26289-body-Picture1_33.png\" alt=\"java mailer Pic 1\" \/><\/p>\n<p><strong>Step 5: Debugging steps for an R12 instance&nbsp;<\/strong><\/p>\n<p>Following are the steps Rathod describes:<\/p>\n<p>\nA. SMTP<\/p>\n<p>\n<em>$AFJVAPRG -classpath $AF_CLASSPATH -Dprotocol=smtp \\<br \/>\n&nbsp;-Ddbcfile=$FND_SECURE\/TEST.dbc \\<br \/>\n&nbsp;-Dport=465 -Dssl=Y \\<br \/>\n&nbsp;-Dtruststore=\/home\/applmgr\/.keystore \\<br \/>\n&nbsp;-Dserver=email.yourdomain.com \\<br \/>\n&nbsp;-Daccount=youremail@yourdomain.com -Dpassword=xxxxx \\<br \/>\n&nbsp;-Dconnect_timeout=120 -Ddebug=Y \\<br \/>\n&nbsp;-DdebugMailSession=Y oracle.apps.fnd.wf.mailer.Mailer<\/em><\/p>\n<p>B. IMAP<\/p>\n<p>\n<em>$AFJVAPRG -classpath $AF_CLASSPATH -Dprotocol=imap \\<br \/>\n&nbsp;-Ddbcfile=$FND_SECURE\/TEST.dbc \\<br \/>\n&nbsp;-Dport=993 -Dssl=Y \\<br \/>\n&nbsp;-Dtruststore=\/home\/applmgr\/.keystore \\<br \/>\n&nbsp;-Dserver=email.yourdomain.com \\<br \/>\n&nbsp;-Daccount=youremail@yourdomain.com -Dpassword=xxxxx\\<br \/>\n&nbsp;-Dconnect_timeout=120 -Ddebug=Y \\<br \/>\n&nbsp;-DdebugMailSession=Y oracle.apps.fnd.wf.mailer.Mailer<\/em><\/p>\n<p><strong>Step 6: Authenticate Mailer<\/strong><\/p>\n<p>In R12.1.3, the Oracle Workflow Notification Mailer supports SMTP authentication, enabling you to use the Notification Mailer with an enterprise SMTP server configured for SMTP authentication.<br \/>\n&nbsp;<br \/>\nAccording to a&nbsp;<a href=\"https:\/\/www.slideshare.net\/ravisagaram\/oracle-r1212-and-r1213-features\">2014 presentation on Oracle R12.1.3 features<\/a>&nbsp;&#8220;SMTP authentication requires the sender to authenticate by identifying itself to the mail server. After successful authentication, the mail server grants transmission of the sender&#8217;s emails. SMTP authentication can be used to allow legitimate users to relay mail while denying relay service to unauthorized users, such as spammers.<\/p>\n<p>&#8220;Oracle Workflow currently supports the PLAIN, LOGIN, and DIGST-MD5 authentication mechanisms.&#8221;<\/p>\n<p><strong>Step 7: Cycle the services<\/strong><\/p>\n<p>To complete the configuration, stop and start all services as needed.<\/p>\n<p><strong>Conclusion<\/strong><\/p>\n<p>SSL secures communication by providing message encryption, integrity, and authentication. By following and implementing the preceding steps, you can easily secure workflow communications.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Implement Workflow Java Mailer SSL configuration<\/p>\n","protected":false},"author":2,"featured_media":7169,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"content-type":"","nid":"26289","content_type":"blog","created_by":"10130","authored_on":"2023-11-23T18:30:43+00:00","field_article_industries":"","tag_category":"Technical","field_blog_author_text":"by Suryakant Sharma, Oracle Applications Database Administrator, Rackspace Technology","seo_description":"This post is an example of the commands and tools for setting up a test case of Workflow Java Mailer connecting to an SMTP\/IMAP server with SSL enabled.\u00a0","field_featured_image":"","insights_image":"\/wp-content\/uploads\/2026\/blog_technical_images\/26289-insights_image-oracle-technical-blog-1-insights.jpg","field_partners":"","rxt_platforms":"Oracle","product":"","publisheddate":"2021-12-03T18:30:43","rxt_solutions":"Data Strategy & Governance","opengraph_tag":"","x_tag":"","teaser_flag":"Technical Blog","seo_titile":"Java Mailer SSL Configuration | Rackspace Technology","field_topics":"","field_slug":"implement-workflow-java-mailer-ssl-configuration","footnotes":""},"categories":[178],"tags":[204],"class_list":["post-7167","blogs","type-blogs","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs"}],"about":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/types\/blogs"}],"author":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/comments?post=7167"}],"version-history":[{"count":2,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7167\/revisions"}],"predecessor-version":[{"id":9086,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7167\/revisions\/9086"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/media\/7169"}],"wp:attachment":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/media?parent=7167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/categories?post=7167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/tags?post=7167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}