<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title>Liferay CAS integration on Separate servers SSL error</title>
  <link rel="self" href="https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=18124719" />
  <subtitle>Liferay CAS integration on Separate servers SSL error</subtitle>
  <id>https://liferay.dev/c/message_boards/find_thread?p_l_id=119785294&amp;threadId=18124719</id>
  <updated>2026-04-06T22:03:27Z</updated>
  <dc:date>2026-04-06T22:03:27Z</dc:date>
  <entry>
    <title>Liferay CAS integration on Separate servers SSL error</title>
    <link rel="alternate" href="https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=18124718" />
    <author>
      <name>Alex alex</name>
    </author>
    <id>https://liferay.dev/c/message_boards/find_message?p_l_id=119785294&amp;messageId=18124718</id>
    <updated>2012-11-22T23:56:30Z</updated>
    <published>2012-11-22T23:56:30Z</published>
    <summary type="html">hi, i m new with liferay and i&amp;#39;m facing a problem related to the CAS single sign on configuration.&lt;br /&gt;I followed faithfully the steps listed in the wiki at: http://www.liferay.com/community/wiki/-/wiki/Main/CAS+Liferay+6+Integration&lt;br /&gt;and i got my cas server working JUST with it deployed in the same tomcat hosting liferay 6.1.1 ga2.&lt;br /&gt;But now i&amp;#39;ve the real situation to be implemented i.e. hosting the cas server on a different tomcat.&lt;br /&gt;&lt;br /&gt;I&amp;#39;m working in develpment mode i.e. in a intranet, so dealing with IP ADDRESSES.&lt;br /&gt;This is my simple configuration:&lt;br /&gt;&lt;br /&gt;SERVER 1: IP address: 192.168.1.5. This hosts tomcat and liferay listening on the port 8080.The version of Cas client deployed in Liferay is  3.2.1&lt;br /&gt;SERVER 2: IP address: 192.168.1.6  this hosts cas server deployed on a tomcat instance. cas version is 3.5.1&lt;br /&gt;&lt;br /&gt;JAVA_HOME = C:\Java\jdk1.6.0_37&lt;br /&gt;JRE_HOME = %JAVA_HOME%\jre&lt;br /&gt;&lt;br /&gt;These are the steps i did for configuring all:&lt;br /&gt;_____________________________________&lt;br /&gt;On SERVER 1: &lt;br /&gt;1) in tomcat server.xml&lt;br /&gt;uncommented these code lines for activating https&lt;br /&gt;&lt;br /&gt;&amp;lt;Connector port=&amp;#34;8443&amp;#34; maxThreads=&amp;#34;150&amp;#34; minSpareThreads=&amp;#34;25&amp;#34; maxSpareThreads=&amp;#34;75&amp;#34; SSLEnabled=&amp;#34;true&amp;#34;&lt;br /&gt;               enableLookups=&amp;#34;false&amp;#34; disableUploadTimeout=&amp;#34;true&amp;#34;&lt;br /&gt;               acceptCount=&amp;#34;100&amp;#34; scheme=&amp;#34;https&amp;#34; secure=&amp;#34;true&amp;#34;&lt;br /&gt;               clientAuth=&amp;#34;false&amp;#34; sslProtocol=&amp;#34;TLS&amp;#34; /&amp;gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) On liferay portal-ext.properties:&lt;br /&gt;&lt;br /&gt;cas.auth.enabled=true&lt;br /&gt;cas.login.url=https://192.168.1.6:8443/cas-web/login&lt;br /&gt;cas.logout.url=https://192.168.1.6:8443/cas-web/logout&lt;br /&gt;cas.service.url=http://192.168.1.5:8080/c/portal/login&lt;br /&gt;cas.server.name=192.168.1.5:8080&lt;br /&gt;cas.validate.url=https://192.168.1.6:8443/cas/proxyValidate&lt;br /&gt;&lt;br /&gt;3) i put the same values in the Control Panel ---&amp;gt; Portal Settings ---&amp;gt; Authentication ---&amp;gt; CAS Form.&lt;br /&gt;&lt;br /&gt;4) I create my server keystore&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;keytool -genkey -alias tomcatLiferay -keypass changeit -keyalg RSA&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;keystore password:  changeit&lt;br /&gt;What is your first and last name?&lt;br /&gt;[Unknown]:  localhost&lt;br /&gt;What is the name of your organizational unit?&lt;br /&gt;[Unknown]:&lt;br /&gt;What is the name of your organization?&lt;br /&gt;[Unknown]:&lt;br /&gt;What is the name of your City or Locality?&lt;br /&gt;[Unknown]:&lt;br /&gt;What is the name of your State or Province?&lt;br /&gt;[Unknown]:&lt;br /&gt;What is the two-letter country code for this unit?&lt;br /&gt;[Unknown]:&lt;br /&gt;Is CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?&lt;br /&gt;[no]: y&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; ________________________________________________________________&lt;br /&gt;&lt;br /&gt;On SERVER 2: &lt;br /&gt;&lt;br /&gt;1)uncomment these code lines for activating https&lt;br /&gt;&lt;br /&gt;&amp;lt;Connector port=&amp;#34;8443&amp;#34; maxThreads=&amp;#34;150&amp;#34; minSpareThreads=&amp;#34;25&amp;#34; maxSpareThreads=&amp;#34;75&amp;#34; SSLEnabled=&amp;#34;true&amp;#34;&lt;br /&gt;               enableLookups=&amp;#34;false&amp;#34; disableUploadTimeout=&amp;#34;true&amp;#34;&lt;br /&gt;               acceptCount=&amp;#34;100&amp;#34; scheme=&amp;#34;https&amp;#34; secure=&amp;#34;true&amp;#34;&lt;br /&gt;               clientAuth=&amp;#34;false&amp;#34; sslProtocol=&amp;#34;TLS&amp;#34; /&amp;gt;  &lt;br /&gt;&lt;br /&gt;2)i create a self signed certificate:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;keytool -genkey -alias tomcatCAS -keypass changeit -keyalg RSA&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;keystore password:  changeit&lt;br /&gt;What is your first and last name?&lt;br /&gt;[Unknown]:  ServerCAS&lt;br /&gt;What is the name of your organizational unit?&lt;br /&gt;[Unknown]:&lt;br /&gt;What is the name of your organization?&lt;br /&gt;[Unknown]:&lt;br /&gt;What is the name of your City or Locality?&lt;br /&gt;[Unknown]:&lt;br /&gt;What is the name of your State or Province?&lt;br /&gt;[Unknown]:&lt;br /&gt;What is the two-letter country code for this unit?&lt;br /&gt;[Unknown]:&lt;br /&gt;Is CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?&lt;br /&gt;[no]: y&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;keytool -export -alias tomcatCAS -keypass changeit -file server.cert&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;keytool -import -alias tomcatCAS -file server.cert -keypass changeit -keystore %JAVA_HOME%/jre/lib/security/cacerts &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;____________________________________________________________________________________________________&lt;br /&gt;&lt;br /&gt;1) Now i copy server.cert from SERVER 2, i paste it on SERVER 1 then i import it in %JAVA_HOME%/jre/lib/security/cacerts  of SERVER 1&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;keytool -import -alias tomcatCAS -file c:\server.cert -keypass changeit -keystore %JAVA_HOME%/jre/lib/security/cacerts&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Now  the certificate is copied in the keystore of the liferay Server.&lt;br /&gt;&lt;br /&gt;2)I turn on both the servers.&lt;br /&gt;3)I access the liferay login page, i click on sing-in button then the  https://192.168.1.6:8443/cas-web/login page opens.&lt;br /&gt;I fill it with username and pwd... and i got a white page.&lt;br /&gt;On catalina.out of liferay server there is this exception: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;23:25:36,623 ERROR [http-bio-8080-exec-9][CommonUtils:340] sun.security.validato&lt;br /&gt;r.ValidatorException: PKIX path building failed: sun.security.provider.certpath.&lt;br /&gt;SunCertPathBuilderException: unable to find valid certification path to requeste&lt;br /&gt;d target&lt;br /&gt;javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:&lt;br /&gt;PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExce&lt;br /&gt;ption: unable to find valid certification path to requested target&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1&lt;br /&gt;623)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:198)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:192)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Clien&lt;br /&gt;tHandshaker.java:1074)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHa&lt;br /&gt;ndshaker.java:128)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:5&lt;br /&gt;29)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.jav&lt;br /&gt;a:465)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.j&lt;br /&gt;ava:884)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SS&lt;br /&gt;LSocketImpl.java:1120)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketIm&lt;br /&gt;pl.java:1147)&lt;br /&gt;&lt;br /&gt;Caused by: sun.security.validator.ValidatorException: PKIX path building failed:&lt;br /&gt; sun.security.provider.certpath.SunCertPathBuilderException: unable to find vali&lt;br /&gt;d certification path to requested target&lt;br /&gt;        at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:294)&lt;br /&gt;        at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.jav&lt;br /&gt;a:200)&lt;br /&gt;        at sun.security.validator.Validator.validate(Validator.java:218)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustM&lt;br /&gt;anagerImpl.java:126)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(&lt;br /&gt;X509TrustManagerImpl.java:209)&lt;br /&gt;&lt;br /&gt;23:25:36,733 ERROR [http-bio-8080-exec-9][CASFilter:81] java.lang.RuntimeExcepti&lt;br /&gt;on: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorExcepti&lt;br /&gt;on: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilder&lt;br /&gt;Exception: unable to find valid certification path to requested target&lt;br /&gt;java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: sun.security.va&lt;br /&gt;lidator.ValidatorException: PKIX path building failed: sun.security.provider.cer&lt;br /&gt;tpath.SunCertPathBuilderException: unable to find valid certification path to re&lt;br /&gt;quested target&lt;br /&gt;        at org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUti&lt;br /&gt;ls.java:341)&lt;br /&gt;        at org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUti&lt;br /&gt;ls.java:305)&lt;br /&gt;        at org.jasig.cas.client.validation.AbstractCasProtocolUrlBasedTicketVali&lt;br /&gt;dator.retrieveResponseFromServer(AbstractCasProtocolUrlBasedTicketValidator.java&lt;br /&gt;:50)&lt;br /&gt;&lt;br /&gt;Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.Validator&lt;br /&gt;Exception: PKIX path building failed: sun.security.provider.certpath.SunCertPath&lt;br /&gt;BuilderException: unable to find valid certification path to requested target&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1&lt;br /&gt;623)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:198)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:192)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Clien&lt;br /&gt;tHandshaker.java:1074)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHa&lt;br /&gt;ndshaker.java:128)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:5&lt;br /&gt;29)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.jav&lt;br /&gt;a:465)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.j&lt;br /&gt;ava:884)&lt;br /&gt;&lt;br /&gt;Caused by: sun.security.validator.ValidatorException: PKIX path building failed:&lt;br /&gt; sun.security.provider.certpath.SunCertPathBuilderException: unable to find vali&lt;br /&gt;d certification path to requested target&lt;br /&gt;        at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:294)&lt;br /&gt;        at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.jav&lt;br /&gt;a:200)&lt;br /&gt;        at sun.security.validator.Validator.validate(Validator.java:218)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustM&lt;br /&gt;anagerImpl.java:126)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(&lt;br /&gt;X509TrustManagerImpl.java:209)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(&lt;br /&gt;X509TrustManagerImpl.java:249)&lt;br /&gt;        at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Clien&lt;br /&gt;tHandshaker.java:1053)&lt;br /&gt;        ... 59 more&lt;br /&gt;Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to&lt;br /&gt; find valid certification path to requested target&lt;br /&gt;        at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCert&lt;br /&gt;PathBuilder.java:174)&lt;br /&gt;        at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238)&lt;br /&gt;        at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:289)&lt;br /&gt;        ... 65 more&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It&amp;#39;s the same error as reported in the cas wiki:&lt;br /&gt;&lt;br /&gt;https://wiki.jasig.org/display/CASUM/SSL+Troubleshooting+and+Reference+Guide#SSLTroubleshootingandReferenceGuide-ImportTrustedCertificate &lt;br /&gt;&lt;br /&gt;But i think the steps i listed above are the same described in this wiki.&lt;br /&gt;It&amp;#39;s probably a certificate issue... but i cannot understand where is my error.&lt;br /&gt;&lt;br /&gt;if i run this command on liferay server: &lt;br /&gt;keytool -list -alias tomcatCAS -keystore %JAVA_HOME%/jre/lib/security/cacerts    i get the certificate, that means it&amp;#39;s present.&lt;br /&gt;&lt;br /&gt;Thanks a lot.&lt;br /&gt;Alessio</summary>
    <dc:creator>Alex alex</dc:creator>
    <dc:date>2012-11-22T23:56:30Z</dc:date>
  </entry>
</feed>
