<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.appian.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>KB-2242 "PKIX path building failed" error seen when sending emails in a self-managed Kubernetes install</title><link>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>KB-2242 "PKIX path building failed" error seen when sending emails in a self-managed Kubernetes install</title><link>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install</link><pubDate>Wed, 18 Mar 2026 19:10:15 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:b08e4e55-2164-4f54-9c37-b11e8af328b3</guid><dc:creator>Kaushal Patel</dc:creator><comments>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install#comments</comments><description>Current Revision posted to Appian Knowledge Base by Kaushal Patel on 3/18/2026 7:10:15 PM&lt;br /&gt;
&lt;h2 id="symptoms"&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Sending emails over&amp;nbsp;HTTPS fails with the following error in the&amp;nbsp;webapp pod log:&lt;/span&gt;&lt;/p&gt;
&lt;div class="content-scrollable-wrapper content-scrollable-wrapper-scrolled"&gt;
&lt;pre&gt;&lt;span&gt;jakarta.mail.MessagingException: Could not convert socket to TLS;&lt;br /&gt;...&lt;br /&gt;javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 id="cause"&gt;Cause&lt;/h2&gt;
&lt;p&gt;This is because the certificate being presented by the SMTP server is not trusted by the webapp&amp;nbsp;pod&amp;nbsp;for one of the following reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The certificate is self-signed.&lt;/li&gt;
&lt;li&gt;The certificate is signed by a Certificate Authority, but the server is not presenting the full certificate chain with all intermediate certs up to the CA root cert.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="action"&gt;Action&lt;/h2&gt;
&lt;p&gt;The external certificate needs to be added to the default Java trust store. This can be done by following the instructions below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Extract the default Java trust store from the Appian webapp deployment:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;kubectl -n&amp;nbsp;*namespace* cp &amp;lt;APPIAN_SITE_NAME&amp;gt;-webapp-0:/usr/local/appian/ae/java/lib/security/cacerts ./cacerts&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Import&amp;nbsp;the target server&amp;rsquo;s certificate and CA root certificate into the cacerts trust store:&lt;/span&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias targetServerCert -file ./&amp;lt;TARGET_SERVER_CERT&amp;gt;.PEM -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias myRootCA&amp;nbsp;-file ./&amp;lt;ROOT_CA&amp;gt;.pem -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Confirm that the certificates were added to the cacerts trust store:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;keytool -list -keystore ./cacerts -storepass changeit&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Create a secret based on the above cacerts file:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;kubectl create secret generic cacerts-secret --from-file=keystore.jks=./cacerts -n &amp;lt;APPIAN_SITE_NAMESPACE&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Configure the Appian Custom Resource to mount the customized trust store by adding the following in the Appian site yaml, under&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;.spec.webapp&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;div class="evolution-code-editor theme-clouds"&gt;&lt;pre class="ui-code" data-mode="text"&gt;additionalVolumes:
  - name: keystore-secret
    secret:
      secretName: &amp;quot;cacerts-secret&amp;quot;
      items:
        - key: keystore.jks
          path: cacerts

additionalVolumeMounts:
  - name: keystore-secret
    mountPath: /usr/local/appian/ae/java/lib/security/cacerts
    subPath: cacerts
    readOnly: true&lt;/pre&gt;&lt;br /&gt;
&lt;div class=" ace_editor ace-clouds"&gt;
&lt;div class="ace_gutter"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;code&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Start the Appian site. You will find your customized cacerts trust store at&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;/usr/local/appian/ae/java/lib/security/cacerts&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;alongside other original files in the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;~/security&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;directory&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1j19d96ga0"&gt;&lt;span&gt;Affected Versions&lt;/span&gt;&lt;/h2&gt;
&lt;div class="row content_container"&gt;
&lt;p&gt;This article applies to all versions of self-managed Appian on Kubernetes.&lt;/p&gt;
&lt;p&gt;Last Reviewed:&amp;nbsp;July 2025&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: email, appianOnKubernetes, infrastructure&lt;/div&gt;
</description></item><item><title>KB-2242 "PKIX path building failed" error seen when sending emails in a self-managed Kubernetes install</title><link>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install/revision/11</link><pubDate>Tue, 29 Jul 2025 21:25:02 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:b08e4e55-2164-4f54-9c37-b11e8af328b3</guid><dc:creator>pauline.delacruz</dc:creator><comments>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install#comments</comments><description>Revision 11 posted to Appian Knowledge Base by pauline.delacruz on 7/29/2025 9:25:02 PM&lt;br /&gt;
&lt;h2 id="symptoms"&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Sending emails over&amp;nbsp;HTTPS fails with the following error in the&amp;nbsp;webapp pod log:&lt;/span&gt;&lt;/p&gt;
&lt;div class="content-scrollable-wrapper content-scrollable-wrapper-scrolled"&gt;
&lt;pre&gt;&lt;span&gt;jakarta.mail.MessagingException: Could not convert socket to TLS;&lt;br /&gt;...&lt;br /&gt;javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 id="cause"&gt;Cause&lt;/h2&gt;
&lt;p&gt;This is because the certificate being presented by the SMTP server is not trusted by the webapp&amp;nbsp;pod&amp;nbsp;for one of the following reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The certificate is self-signed.&lt;/li&gt;
&lt;li&gt;The certificate is signed by a Certificate Authority, but the server is not presenting the full certificate chain with all intermediate certs up to the CA root cert.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="action"&gt;Action&lt;/h2&gt;
&lt;p&gt;The external certificate needs to be added to the default Java trust store. This can be done by following the instructions below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Extract the default Java trust store from the Appian webapp deployment:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;kubectl -n&amp;nbsp;*namespace* cp &amp;lt;APPIAN_SITE_NAME&amp;gt;-webapp-0:/usr/local/appian/ae/java/jre/lib/security/cacerts ./cacerts&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Import&amp;nbsp;the target server&amp;rsquo;s certificate and CA root certificate into the cacerts trust store:&lt;/span&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias targetServerCert -file ./&amp;lt;TARGET_SERVER_CERT&amp;gt;.PEM -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias myRootCA&amp;nbsp;-file ./&amp;lt;ROOT_CA&amp;gt;.pem -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Confirm that the certificates were added to the cacerts trust store:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;keytool -list -keystore ./cacerts -storepass changeit&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Create a secret based on the above cacerts file:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;kubectl create secret generic cacerts-secret --from-file=keystore.jks=./cacerts -n &amp;lt;APPIAN_SITE_NAMESPACE&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Configure the Appian Custom Resource to mount the customized trust store by adding the following in the Appian site yaml, under&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;.spec.webapp&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;div class="content-scrollable-wrapper"&gt;
&lt;div class="evolution-code-editor theme-clouds"&gt;&lt;pre class="ui-code" data-mode="text"&gt;additionalVolumes:
  - name: keystore-secret
    secret:
      secretName: &amp;quot;cacerts-secret&amp;quot;
      items:
        - key: keystore.jks
          path: cacerts

additionalVolumeMounts:
  - name: keystore-secret
    mountPath: /usr/local/appian/ae/java/jre/lib/security/cacerts
    subPath: cacerts
    readOnly: true&lt;/pre&gt;&lt;br /&gt;
&lt;div class=" ace_editor ace-clouds"&gt;
&lt;div class="ace_gutter"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;code&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Start the Appian site. You will find your customized cacerts trust store at&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;/usr/local/appian/ae/java/jre/lib/security/cacerts&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;alongside other original files in the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;~/security&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;directory&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h2 id="mcetoc_1j19d96ga0"&gt;&lt;span&gt;Affected Versions&lt;/span&gt;&lt;/h2&gt;
&lt;div class="row content_container"&gt;
&lt;p&gt;This article applies to all versions of self-managed Appian on Kubernetes.&lt;/p&gt;
&lt;p&gt;Last Reviewed:&amp;nbsp;July 2025&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: email, appianOnKubernetes, infrastructure&lt;/div&gt;
</description></item><item><title>KB-2242 "PKIX path building failed" error seen when sending emails in a self-managed Kubernetes install</title><link>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install/revision/10</link><pubDate>Wed, 24 May 2023 04:50:02 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:b08e4e55-2164-4f54-9c37-b11e8af328b3</guid><dc:creator>Maggie Deppe-Walker</dc:creator><comments>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install#comments</comments><description>Revision 10 posted to Appian Knowledge Base by Maggie Deppe-Walker on 5/24/2023 4:50:02 AM&lt;br /&gt;
&lt;h2 id="symptoms"&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Sending emails over&amp;nbsp;HTTPS fails with the following error in the&amp;nbsp;webapp pod log:&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span&gt;jakarta.mail.MessagingException: Could not convert socket to TLS;&lt;br /&gt;...&lt;br /&gt;javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/span&gt;&lt;/pre&gt;
&lt;h2 id="cause"&gt;Cause&lt;/h2&gt;
&lt;p&gt;This is because the certificate being presented by the SMTP server is not trusted by the webapp&amp;nbsp;pod&amp;nbsp;for one of the following reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The certificate is self-signed.&lt;/li&gt;
&lt;li&gt;The certificate is signed by a Certificate Authority, but the server is not presenting the full certificate chain with all intermediate certs up to the CA root cert.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="action"&gt;Action&lt;/h2&gt;
&lt;p&gt;The external certificate needs to be added to the default Java trust store. This can be done by following the instructions below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Extract the default Java trust store from the Appian webapp deployment:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;kubectl -n&amp;nbsp;*namespace* cp &amp;lt;APPIAN_SITE_NAME&amp;gt;-webapp-0:/usr/local/appian/ae/java/jre/lib/security/cacerts ./cacerts&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Import&amp;nbsp;the target server&amp;rsquo;s certificate and CA root certificate into the cacerts trust store: &lt;/span&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias targetServerCert -file ./&amp;lt;TARGET_SERVER_CERT&amp;gt;.PEM -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias myRootCA&amp;nbsp;-file ./&amp;lt;ROOT_CA&amp;gt;.pem -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Confirm that the certificates were added to the cacerts trust store:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;keytool -list -keystore ./cacerts -storepass changeit&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Convert the cacerts file to base64. We will refer to this file as &amp;lt;cacerts_base64&amp;gt;:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;base64 -w0 ./cacerts &amp;gt; cacerts_base64&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Create a secret based on the above cacerts file:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;kubectl create secret generic cacerts-secret --from-file=keystore.jks=./cacerts_base64 -n &amp;lt;APPIAN_SITE_NAMESPACE&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Configure the Appian Custom Resource to mount the customized trust store by adding the following in the Appian site yaml, under &lt;code&gt;.spec.webapp&amp;nbsp;&lt;/code&gt;&lt;pre class="ui-code" data-mode="text"&gt;additionalVolumes:
  - name: keystore-secret
    secret:
      secretName: &amp;quot;cacerts-secret&amp;quot;
      items:
        - key: keystore.jks
          path: cacerts

additionalVolumeMounts:
  - name: keystore-secret
    mountPath: /usr/local/appian/ae/java/jre/lib/security/cacerts
    subPath: cacerts
    readOnly: true
&lt;/pre&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Start the Appian site. You will find your customized cacerts trust store at &lt;code&gt;/usr/local/appian/ae/java/jre/lib/security/cacerts&lt;/code&gt; alongside other original files in the &lt;code&gt;~/security&lt;/code&gt; directory&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;&lt;span&gt;Affected Versions&lt;/span&gt;&lt;/h2&gt;
&lt;div class="row content_container"&gt;
&lt;p&gt;This article applies to all versions of self-managed Appian on Kubernetes.&lt;/p&gt;
&lt;p&gt;Last Reviewed: March 2023&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: email, appianOnKubernetes, infrastructure&lt;/div&gt;
</description></item><item><title>[DRAFT SP-8161] KB-XXXXX "PKIX path building failed" error seen when sending emails in a self-managed Kubernetes install</title><link>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install/revision/8</link><pubDate>Wed, 24 May 2023 04:48:17 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:b08e4e55-2164-4f54-9c37-b11e8af328b3</guid><dc:creator>Maggie Deppe-Walker</dc:creator><comments>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install#comments</comments><description>Revision 8 posted to Appian Knowledge Base by Maggie Deppe-Walker on 5/24/2023 4:48:17 AM&lt;br /&gt;
&lt;h2 id="symptoms"&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Sending emails over&amp;nbsp;HTTPS fails with the following error in the&amp;nbsp;webapp pod log:&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span&gt;jakarta.mail.MessagingException: Could not convert socket to TLS;&lt;br /&gt;...&lt;br /&gt;javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/span&gt;&lt;/pre&gt;
&lt;h2 id="cause"&gt;Cause&lt;/h2&gt;
&lt;p&gt;This is because the certificate being presented by the SMTP server is not trusted by the webapp&amp;nbsp;pod&amp;nbsp;for one of the following reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The certificate is self-signed.&lt;/li&gt;
&lt;li&gt;The certificate is signed by a Certificate Authority, but the server is not presenting the full certificate chain with all intermediate certs up to the CA root cert.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="action"&gt;Action&lt;/h2&gt;
&lt;p&gt;The external certificate needs to be added to the default Java trust store. This can be done by following the instructions below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Extract the default Java trust store from the Appian webapp deployment:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;kubectl -n&amp;nbsp;*namespace* cp &amp;lt;APPIAN_SITE_NAME&amp;gt;-webapp-0:/usr/local/appian/ae/java/jre/lib/security/cacerts ./cacerts&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Import&amp;nbsp;the target server&amp;rsquo;s certificate and CA root certificate into the cacerts trust store: &lt;/span&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias targetServerCert -file ./&amp;lt;TARGET_SERVER_CERT&amp;gt;.PEM -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias myRootCA&amp;nbsp;-file ./&amp;lt;ROOT_CA&amp;gt;.pem -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Confirm that the certificates were added to the cacerts trust store:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;keytool -list -keystore ./cacerts -storepass changeit&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Convert the cacerts file to base64. We will refer to this file as &amp;lt;cacerts_base64&amp;gt;:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;base64 -w0 ./cacerts &amp;gt; cacerts_base64&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Create a secret based on the above cacerts file:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;kubectl create secret generic cacerts-secret --from-file=keystore.jks=./cacerts_base64 -n &amp;lt;APPIAN_SITE_NAMESPACE&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Configure the Appian Custom Resource to mount the customized trust store by adding the following in the Appian site yaml, under &lt;code&gt;.spec.webapp&amp;nbsp;&lt;/code&gt;&lt;pre class="ui-code" data-mode="text"&gt;additionalVolumes:
  - name: keystore-secret
    secret:
      secretName: &amp;quot;cacerts-secret&amp;quot;
      items:
        - key: keystore.jks
          path: cacerts

additionalVolumeMounts:
  - name: keystore-secret
    mountPath: /usr/local/appian/ae/java/jre/lib/security/cacerts
    subPath: cacerts
    readOnly: true
&lt;/pre&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Start the Appian site. You will find your customized cacerts trust store at &lt;code&gt;/usr/local/appian/ae/java/jre/lib/security/cacerts&lt;/code&gt; alongside other original files in the &lt;code&gt;~/security&lt;/code&gt; directory&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;&lt;span&gt;Affected Versions&lt;/span&gt;&lt;/h2&gt;
&lt;div class="row content_container"&gt;
&lt;p&gt;This article applies to all versions of self-managed Appian on Kubernetes.&lt;/p&gt;
&lt;p&gt;Last Reviewed: March 2023&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: email, appianOnKubernetes, infrastructure&lt;/div&gt;
</description></item><item><title>[DRAFT SP-8161] KB-XXXXX "PKIX path building failed" error seen when sending emails in a self-managed Kubernetes install</title><link>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install/revision/7</link><pubDate>Wed, 08 Mar 2023 01:09:44 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:b08e4e55-2164-4f54-9c37-b11e8af328b3</guid><dc:creator>Maggie Deppe-Walker</dc:creator><comments>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install#comments</comments><description>Revision 7 posted to Appian Knowledge Base by Maggie Deppe-Walker on 3/8/2023 1:09:44 AM&lt;br /&gt;
&lt;h2 id="symptoms"&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Sending emails over&amp;nbsp;HTTPS fails because the webapp pod&amp;nbsp;does not trust the CA which was used to sign the certificate presented by the&amp;nbsp;SMTP server. The following error will be seen in the&amp;nbsp;webapp pod log:&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span&gt;jakarta.mail.MessagingException: Could not convert socket to TLS;&lt;br /&gt;...&lt;br /&gt;javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/span&gt;&lt;/pre&gt;
&lt;h2 id="cause"&gt;Cause&lt;/h2&gt;
&lt;p&gt;This is because the certificate being presented by the SMTP server is not trusted by the webapp&amp;nbsp;pod&amp;nbsp;for one of the following reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The certificate is self-signed.&lt;/li&gt;
&lt;li&gt;The certificate is signed by a Certificate Authority, but the server is not presenting the full certificate chain with all intermediate certs up to the CA root cert.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="action"&gt;Action&lt;/h2&gt;
&lt;p&gt;The external certificate needs to be added to the default Java trust store. This can be done by following the instructions below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Extract the default Java trust store from the Appian webapp deployment:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;kubectl -n&amp;nbsp;*namespace* cp &amp;lt;APPIAN_SITE_NAME&amp;gt;-webapp-0:/usr/local/appian/ae/java/jre/lib/security/cacerts ./cacerts&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Import&amp;nbsp;the target server&amp;rsquo;s certificate and CA root certificate into the cacerts trust store: &lt;/span&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias targetServerCert -file ./&amp;lt;TARGET_SERVER_CERT&amp;gt;.PEM -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias myRootCA&amp;nbsp;-file ./&amp;lt;ROOT_CA&amp;gt;.pem -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Confirm that the certificates were added to the cacerts trust store:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;keytool -list -keystore ./cacerts -storepass changeit&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Convert the cacerts file to base64. We will refer to this file as &amp;lt;cacerts_base64&amp;gt;:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;base64 -w0 ./cacerts &amp;gt; cacerts_base64&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Create a secret based on the above cacerts file:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;kubectl create secret generic cacerts-secret --from-file=keystore.jks=./cacerts_base64 -n &amp;lt;APPIAN_SITE_NAMESPACE&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Configure the Appian Custom Resource to mount the customized trust store by adding the following in the Appian site yaml, under &lt;code&gt;.spec.webapp&amp;nbsp;&lt;/code&gt;&lt;pre class="ui-code" data-mode="text"&gt;additionalVolumes:
  - name: keystore-secret
    secret:
      secretName: &amp;quot;cacerts-secret&amp;quot;
      items:
        - key: keystore.jks
          path: cacerts

additionalVolumeMounts:
  - name: keystore-secret
    mountPath: /usr/local/appian/ae/java/jre/lib/security/cacerts
    subPath: cacerts
    readOnly: true
&lt;/pre&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Start the Appian site. You will find your customized cacerts trust store at &lt;code&gt;/usr/local/appian/ae/java/jre/lib/security/cacerts&lt;/code&gt; alongside other original files in the &lt;code&gt;~/security&lt;/code&gt; directory&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;&lt;span&gt;Affected Versions&lt;/span&gt;&lt;/h2&gt;
&lt;div class="row content_container"&gt;
&lt;p&gt;This article applies to all versions of self-managed Appian on Kubernetes.&lt;/p&gt;
&lt;p&gt;Last Reviewed: March 2023&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: email, appianOnKubernetes, infrastructure&lt;/div&gt;
</description></item><item><title>[DRAFT SP-8161] KB-XXXXX "PKIX path building failed" error seen when sending emails in a self-managed Kubernetes install</title><link>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install/revision/6</link><pubDate>Wed, 08 Feb 2023 06:02:29 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:b08e4e55-2164-4f54-9c37-b11e8af328b3</guid><dc:creator>Maggie Deppe-Walker</dc:creator><comments>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install#comments</comments><description>Revision 6 posted to Appian Knowledge Base by Maggie Deppe-Walker on 2/8/2023 6:02:29 AM&lt;br /&gt;
&lt;h2 id="symptoms"&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Sending emails over&amp;nbsp;HTTPS fails because the webapp pod&amp;nbsp;does not trust the CA which was used to sign the certificate the&amp;nbsp;SMTP server presents. The following error will be seen in the&amp;nbsp;webapp pod log:&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span&gt;jakarta.mail.MessagingException: Could not convert socket to TLS;&lt;br /&gt;...&lt;br /&gt;javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/span&gt;&lt;/pre&gt;
&lt;h2 id="cause"&gt;Cause&lt;/h2&gt;
&lt;p&gt;This is because the certificate being presented by the SMTP server is not trusted by the webapp&amp;nbsp;pod&amp;nbsp;for one of the following reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The certificate is self-signed.&lt;/li&gt;
&lt;li&gt;The certificate is signed by a Certificate Authority, but the server is not presenting the full certificate chain with all intermediate certs up to the CA root cert.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="action"&gt;Action&lt;/h2&gt;
&lt;p&gt;The external certificate needs to be added to the default Java trust store. This can be done by following the instructions below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Extract the default Java trust store from the Appian webapp deployment:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;kubectl -n&amp;nbsp;*namespace* cp &amp;lt;APPIAN_SITE_NAME&amp;gt;-webapp-0:/usr/local/appian/ae/java/jre/lib/security/cacerts ./cacerts&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Import&amp;nbsp;the target server&amp;rsquo;s certificate and CA root certificate into the cacerts trust store: &lt;/span&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias targetServerCert -file ./&amp;lt;TARGET_SERVER_CERT&amp;gt;.PEM -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias myRootCA&amp;nbsp;-file ./&amp;lt;ROOT_CA&amp;gt;.pem -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Confirm that the certificates were added to the cacerts trust store:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;keytool -list -keystore ./cacerts -storepass changeit&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Convert the cacerts file to base64. We will refer to this file as &amp;lt;cacerts_base64&amp;gt;:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;base64 -w0 ./cacerts &amp;gt; cacerts_base64&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Create a secret based on the above cacerts file:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;kubectl create secret generic cacerts-secret --from-file=keystore.jks=./cacerts_base64 -n &amp;lt;APPIAN_SITE_NAMESPACE&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Configure the Appian Custom Resource to mount the customized trust store by adding the following in the Appian site yaml, under &lt;code&gt;.spec.webapp&amp;nbsp;&lt;/code&gt;&lt;pre class="ui-code" data-mode="text"&gt;additionalVolumes:
  - name: keystore-secret
    secret:
      secretName: &amp;quot;cacerts-secret&amp;quot;
      items:
        - key: keystore.jks
          path: cacerts

additionalVolumeMounts:
  - name: keystore-secret
    mountPath: /usr/local/appian/ae/java/jre/lib/security/cacerts
    subPath: cacerts
    readOnly: true
&lt;/pre&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Start the Appian site. You will find your customized cacerts trust store at &lt;code&gt;/usr/local/appian/ae/java/jre/lib/security/cacerts&lt;/code&gt; alongside other original files in the &lt;code&gt;~/security&lt;/code&gt; directory&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;&lt;span&gt;Affected Versions&lt;/span&gt;&lt;/h2&gt;
&lt;div class="row content_container"&gt;
&lt;p&gt;This article applies to all versions of self-managed Appian on Kubernetes.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: email, appianOnKubernetes, infrastructure&lt;/div&gt;
</description></item><item><title>"PKIX path building failed" error seen when sending emails in a self managed Kubernetes install</title><link>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install/revision/5</link><pubDate>Tue, 07 Feb 2023 14:54:01 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:b08e4e55-2164-4f54-9c37-b11e8af328b3</guid><dc:creator>Tejas Kargutkar</dc:creator><comments>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install#comments</comments><description>Revision 5 posted to Appian Knowledge Base by Tejas Kargutkar on 2/7/2023 2:54:01 PM&lt;br /&gt;
&lt;h2 id="symptoms"&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Sending emails over&amp;nbsp;HTTPS fails because the webapp pod&amp;nbsp;does not trust the CA which was used to sign the certificate the&amp;nbsp;SMTP server presents. The following error will be seen in the&amp;nbsp;webapp pod log:&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span&gt;jakarta.mail.MessagingException: Could not convert socket to TLS;&lt;br /&gt;...&lt;br /&gt;javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/span&gt;&lt;/pre&gt;
&lt;h2 id="cause"&gt;Cause&lt;/h2&gt;
&lt;p&gt;This is because the certificate being presented by the SMTP server is not trusted by the webapp&amp;nbsp;pod&amp;nbsp;for one of the following reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The certificate is self-signed.&lt;/li&gt;
&lt;li&gt;The certificate is signed by a Certificate Authority, but the server is not presenting the full certificate chain with all intermediate certs up to the CA root cert.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="action"&gt;Action&lt;/h2&gt;
&lt;p&gt;The external certificate needs to be added to the default Java trust store. This can be done by following the instructions below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Extract the default Java trust store from the Appian webapp deployment:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;kubectl -n&amp;nbsp;*namespace* cp &amp;lt;APPIAN_SITE_NAME&amp;gt;-webapp-0:/usr/local/appian/ae/java/jre/lib/security/cacerts ./cacerts&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Import&amp;nbsp;the target server&amp;rsquo;s certificate and CA root certificate into the cacerts trust store: &lt;/span&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias targetServerCert -file ./&amp;lt;TARGET_SERVER_CERT&amp;gt;.PEM -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias myRootCA&amp;nbsp;-file ./&amp;lt;ROOT_CA&amp;gt;.pem -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Confirm that the certificates were added to the cacerts trust store:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;keytool -list -keystore ./cacerts -storepass changeit&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Convert the cacerts file to base64. We will refer to this file as &amp;lt;cacerts_base64&amp;gt;:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;base64 -w0 ./cacerts &amp;gt; cacerts_base64&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Create a secret based on the above cacerts file:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;kubectl create secret generic cacerts-secret --from-file=keystore.jks=./cacerts_base64 -n &amp;lt;APPIAN_SITE_NAMESPACE&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Configure the Appian Custom Resource to mount the customized trust store by adding the following in the Appian site yaml, under &lt;code&gt;.spec.webapp&amp;nbsp;&lt;/code&gt;&lt;pre class="ui-code" data-mode="text"&gt;additionalVolumes:
  - name: keystore-secret
    secret:
      secretName: &amp;quot;cacerts-secret&amp;quot;
      items:
        - key: keystore.jks
          path: cacerts

additionalVolumeMounts:
  - name: keystore-secret
    mountPath: /usr/local/appian/ae/java/jre/lib/security/cacerts
    subPath: cacerts
    readOnly: true
&lt;/pre&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Start the Appian site. You will find your customized cacerts trust store at &lt;code&gt;/usr/local/appian/ae/java/jre/lib/security/cacerts&lt;/code&gt; alongside other original files in the &lt;code&gt;~/security&lt;/code&gt; directory&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;&lt;span&gt;Affected Versions&lt;/span&gt;&lt;/h2&gt;
&lt;div class="row content_container"&gt;
&lt;p&gt;This article applies to all versions of self-managed Appian on Kubernetes.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: email, appianOnKubernetes, infrastructure&lt;/div&gt;
</description></item><item><title>"PKIX path building failed" error seen when sending emails in a self managed Kubernetes install</title><link>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install/revision/4</link><pubDate>Tue, 07 Feb 2023 14:53:29 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:b08e4e55-2164-4f54-9c37-b11e8af328b3</guid><dc:creator>Tejas Kargutkar</dc:creator><comments>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install#comments</comments><description>Revision 4 posted to Appian Knowledge Base by Tejas Kargutkar on 2/7/2023 2:53:29 PM&lt;br /&gt;
&lt;h2 id="symptoms"&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Sending emails over&amp;nbsp;HTTPS fails because the webapp pod&amp;nbsp;does not trust the CA which was used to sign the certificate the&amp;nbsp;SMTP server presents. The following error will be seen in the&amp;nbsp;webapp pod log:&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span&gt;jakarta.mail.MessagingException: Could not convert socket to TLS;&lt;br /&gt;...&lt;br /&gt;javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/span&gt;&lt;/pre&gt;
&lt;h2 id="cause"&gt;Cause&lt;/h2&gt;
&lt;p&gt;This is because the certificate being presented by the SMTP server is not trusted by the webapp&amp;nbsp;pod&amp;nbsp;for one of the following reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The certificate is self-signed.&lt;/li&gt;
&lt;li&gt;The certificate is signed by a Certificate Authority, but the server is not presenting the full certificate chain with all intermediate certs up to the CA root cert.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="action"&gt;Action&lt;/h2&gt;
&lt;p&gt;The external certificate needs to be added to the default Java trust store. This can be done by following the instructions below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Extract the default Java trust store from the Appian webapp deployment:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;kubectl -n&amp;nbsp;*namespace* cp &amp;lt;APPIAN_SITE_NAME&amp;gt;-webapp-0:/usr/local/appian/ae/java/jre/lib/security/cacerts ./cacerts&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Import&amp;nbsp;the target server&amp;rsquo;s certificate and CA root certificate into the cacerts trust store: &lt;/span&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias targetServerCert -file ./&amp;lt;TARGET_SERVER_CERT&amp;gt;.PEM -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias myRootCA&amp;nbsp;-file ./&amp;lt;ROOT_CA&amp;gt;.pem -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Confirm that the certificates were added to the cacerts trust store:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;keytool -list -keystore ./cacerts -storepass changeit&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Convert the cacerts file to base64. We will refer to this file as &amp;lt;cacerts_base64&amp;gt;:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;base64 -w0 ./cacerts &amp;gt; cacerts_base64&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Create a secret based on the above cacerts file:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;kubectl create secret generic cacerts-secret --from-file=keystore.jks=./cacerts_base64 -n &amp;lt;APPIAN_SITE_NAMESPACE&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Configure the Appian Custom Resource to mount the customized trust store by adding the following in the Appian site yaml, under .spec.webapp&amp;nbsp;&lt;pre class="ui-code" data-mode="text"&gt;additionalVolumes:
  - name: keystore-secret
    secret:
      secretName: &amp;quot;cacerts-secret&amp;quot;
      items:
        - key: keystore.jks
          path: cacerts

additionalVolumeMounts:
  - name: keystore-secret
    mountPath: /usr/local/appian/ae/java/jre/lib/security/cacerts
    subPath: cacerts
    readOnly: true
&lt;/pre&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Start the Appian site. You will find your customized cacerts trust store at &lt;code&gt;/usr/local/appian/ae/java/jre/lib/security/cacerts&lt;/code&gt; alongside other original files in the &lt;code&gt;~/security&lt;/code&gt; directory&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;&lt;span&gt;Affected Versions&lt;/span&gt;&lt;/h2&gt;
&lt;div class="row content_container"&gt;
&lt;p&gt;This article applies to all versions of self-managed Appian on Kubernetes.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: email, appianOnKubernetes, infrastructure&lt;/div&gt;
</description></item><item><title>"PKIX path building failed" error seen when sending emails in a self managed Kubernetes install</title><link>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install/revision/3</link><pubDate>Tue, 07 Feb 2023 14:51:58 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:b08e4e55-2164-4f54-9c37-b11e8af328b3</guid><dc:creator>Tejas Kargutkar</dc:creator><comments>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install#comments</comments><description>Revision 3 posted to Appian Knowledge Base by Tejas Kargutkar on 2/7/2023 2:51:58 PM&lt;br /&gt;
&lt;h2 id="symptoms"&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Sending emails over&amp;nbsp;HTTPS fails because the webapp pod&amp;nbsp;does not trust the CA which was used to sign the certificate the&amp;nbsp;SMTP server presents. The following error will be seen in the&amp;nbsp;webapp pod log:&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span&gt;jakarta.mail.MessagingException: Could not convert socket to TLS;&lt;br /&gt;...&lt;br /&gt;javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/span&gt;&lt;/pre&gt;
&lt;h2 id="cause"&gt;Cause&lt;/h2&gt;
&lt;p&gt;This is because the certificate being presented by the SMTP server is not trusted by the webapp&amp;nbsp;pod&amp;nbsp;for one of the following reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The certificate is self-signed.&lt;/li&gt;
&lt;li&gt;The certificate is signed by a Certificate Authority, but the server is not presenting the full certificate chain with all intermediate certs up to the CA root cert.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="action"&gt;Action&lt;/h2&gt;
&lt;p&gt;The external certificate needs to be added to the default Java trust store. This can be done by following the instructions below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Extract the default Java trust store from the Appian webapp deployment:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;kubectl -n&amp;nbsp;*namespace* cp &amp;lt;APPIAN_SITE_NAME&amp;gt;-webapp-0:/usr/local/appian/ae/java/jre/lib/security/cacerts ./cacerts&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Import&amp;nbsp;the target server&amp;rsquo;s certificate and CA root certificate into the cacerts trust store: &lt;/span&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias targetServerCert -file ./&amp;lt;TARGET_SERVER_CERT&amp;gt;.PEM -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias myRootCA&amp;nbsp;-file ./&amp;lt;ROOT_CA&amp;gt;.pem -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Confirm that the certificates were added to the cacerts trust store:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;keytool -list -keystore ./cacerts -storepass changeit&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Convert the cacerts file to base64. We will refer to this file as &amp;lt;cacerts_base64&amp;gt;:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;base64 -w0 ./cacerts &amp;gt; cacerts_base64&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Create a secret based on the above cacerts file:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;kubectl create secret generic cacerts-secret --from-file=keystore.jks=./cacerts_base64 -n &amp;lt;APPIAN_SITE_NAMESPACE&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Configure the Appian Custom Resource to mount the customized trust store by adding the following in the Appian site yaml, under .spec.webapp &lt;pre class="ui-code" data-mode="text"&gt;additionalVolumes:
  - name: keystore-secret
    secret:
      secretName: &amp;quot;cacerts-secret&amp;quot;
      items:
        - key: keystore.jks
          path: cacerts

additionalVolumeMounts:
  - name: keystore-secret
    mountPath: /usr/local/appian/ae/java/jre/lib/security/cacerts
    subPath: cacerts
    readOnly: true
&lt;/pre&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;&lt;span&gt;Affected Versions&lt;/span&gt;&lt;/h2&gt;
&lt;div class="row content_container"&gt;
&lt;p&gt;This article applies to all versions of self-managed Appian on Kubernetes.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: email, appianOnKubernetes, infrastructure&lt;/div&gt;
</description></item><item><title>"PKIX path building failed" error seen when sending emails in a self managed Kubernetes install</title><link>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install/revision/2</link><pubDate>Mon, 06 Feb 2023 20:23:42 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:b08e4e55-2164-4f54-9c37-b11e8af328b3</guid><dc:creator>Tejas Kargutkar</dc:creator><comments>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install#comments</comments><description>Revision 2 posted to Appian Knowledge Base by Tejas Kargutkar on 2/6/2023 8:23:42 PM&lt;br /&gt;
&lt;h2 id="symptoms"&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Sending emails over&amp;nbsp;HTTPS fails because the webapp pod&amp;nbsp;does not trust the CA which was used to sign the certificate the&amp;nbsp;SMTP server presents. The following error will be seen in the&amp;nbsp;webapp pod log:&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span&gt;jakarta.mail.MessagingException: Could not convert socket to TLS;&lt;br /&gt;...&lt;br /&gt;javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/span&gt;&lt;/pre&gt;
&lt;h2 id="cause"&gt;Cause&lt;/h2&gt;
&lt;p&gt;This is because the certificate being presented by the SMTP server is not trusted by the webapp&amp;nbsp;pod&amp;nbsp;for one of the following reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The certificate is self-signed.&lt;/li&gt;
&lt;li&gt;The certificate is signed by a Certificate Authority, but the server is not presenting the full certificate chain with all intermediate certs up to the CA root cert.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="action"&gt;Action&lt;/h2&gt;
&lt;p&gt;The external certificate needs to be added to the default Java trust store. This can be done by following the instructions below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Extract the default Java trust store from the Appian webapp deployment:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;kubectl -n&amp;nbsp;*namespace* cp &amp;lt;APPIAN_SITE_NAME&amp;gt;-webapp-0:/usr/local/appian/ae/java/jre/lib/security/cacerts ./cacerts&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Import&amp;nbsp;the target server&amp;rsquo;s certificate and CA root certificate into the cacerts trust store: &lt;/span&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias targetServerCert -file ./&amp;lt;TARGET_SERVER_CERT&amp;gt;.PEM -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias myRootCA&amp;nbsp;-file ./&amp;lt;ROOT_CA&amp;gt;.pem -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Confirm that the certificates were added to the cacerts trust store:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;keytool -list -keystore ./cacerts -storepass changeit&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Convert the cacerts file to base64. We will refer to this file as &amp;lt;cacerts_base64&amp;gt;:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;base64 -w0 ./cacerts &amp;gt; cacerts_base64&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Create a secret based on the above cacerts file:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;kubectl create secret generic cacerts-secret --from-file=keystore.jks=./cacerts_base64 -n &amp;lt;APPIAN_SITE_NAMESPACE&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;&lt;span&gt;Affected Versions&lt;/span&gt;&lt;/h2&gt;
&lt;div class="row content_container"&gt;
&lt;p&gt;This article applies to all versions of self-managed Appian on Kubernetes.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: email, appianOnKubernetes, infrastructure&lt;/div&gt;
</description></item><item><title>"PKIX path building failed" error seen when sending emails in a self managed Kubernetes install</title><link>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install/revision/1</link><pubDate>Mon, 06 Feb 2023 19:48:39 GMT</pubDate><guid isPermaLink="false">d3a83456-d57b-489c-a84c-4e8267bb592a:b08e4e55-2164-4f54-9c37-b11e8af328b3</guid><dc:creator>Tejas Kargutkar</dc:creator><comments>https://community.appian.com/support/w/kb/3060/kb-2242-pkix-path-building-failed-error-seen-when-sending-emails-in-a-self-managed-kubernetes-install#comments</comments><description>Revision 1 posted to Appian Knowledge Base by Tejas Kargutkar on 2/6/2023 7:48:39 PM&lt;br /&gt;
&lt;h2 id="symptoms"&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;Sending emails over&amp;nbsp;HTTPS fails because the webapp pod&amp;nbsp;does not trust the CA which was used to sign the certificate the&amp;nbsp;SMTP server presents. The following error will be seen in the&amp;nbsp;webapp pod log:&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span&gt;jakarta.mail.MessagingException: Could not convert socket to TLS;&lt;br /&gt;...&lt;br /&gt;javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target&lt;/span&gt;&lt;/pre&gt;
&lt;h2 id="cause"&gt;Cause&lt;/h2&gt;
&lt;p&gt;This is because the certificate being presented by the SMTP server is not trusted by the webapp&amp;nbsp;pod&amp;nbsp;for one of the following reasons:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The certificate is self-signed.&lt;/li&gt;
&lt;li&gt;The certificate is signed by a Certificate Authority, but the server is not presenting the full certificate chain with all intermediate certs up to the CA root cert.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="action"&gt;Action&lt;/h2&gt;
&lt;p&gt;The external certificate needs to be added to the default Java trust store. This can be done by following the instructions below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Extract the default Java trust store from the Appian webapp deployment:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;kubectl -n&amp;nbsp;*namespace* cp &amp;lt;APPIAN_SITE_NAME&amp;gt;-webapp-0:/usr/local/appian/ae/java/jre/lib/security/cacerts ./cacerts&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Import&amp;nbsp;the target server&amp;rsquo;s certificate and CA root certificate into the cacerts trust store: &lt;/span&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias targetServerCert -file ./&amp;lt;TARGET_SERVER_CERT&amp;gt;.PEM -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;keytool -import -alias myRootCA&amp;nbsp;-file ./&amp;lt;ROOT_CA&amp;gt;.pem -keystore ./cacerts -storepass changeit&lt;/span&gt;&lt;/code&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Confirm that the certificates were added to the cacerts trust store:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;keytool -list -keystore ./cacerts -storepass changeit&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Convert the cacerts file to base64. We will refer to this value as &amp;lt;CACERTS_BASE64&amp;gt;:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;base64 -w0 ./cacerts&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Create a secret based on the above cacerts file:
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;&lt;span&gt;kubectl create secret generic cacerts-secret --from-file=keystore.jks=./cacerts&lt;/span&gt;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;&lt;span&gt;Affected Versions&lt;/span&gt;&lt;/h2&gt;
&lt;div class="row content_container"&gt;
&lt;p&gt;This article applies to all versions of self-managed Appian on Kubernetes.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: email, appianOnKubernetes, infrastructure&lt;/div&gt;
</description></item></channel></rss>