2012-11-06 56 views
0

我目前正在嘗試配置2個Tomcat,一個使用CAS,另一個使用Liferay。 我使用OpenSSL創建了CAS服務器,Liferay的時候我重定向到CAS登錄頁面在瀏覽器中,但是當CAS重定向我回Liferay的,(這是顯示證書時的Liferay試圖驗證票CAS創建),我只能得到一個美妙的白頁,Liferay服務器顯示「無法找到有效的證書路徑到請求的目標」。 我嘗試使用keytool創建證書,或者將它添加到傳遞給Liferay的自定義信任庫,但是一切都讓我失望。2個Tomcat服務器之間的SSL

也許你們能幫忙嗎?

謝謝。

更新:我看着SSL trafic與wireshark,似乎liferay不使用ssl來驗證CAS票證,這解釋了爲什麼它可以驗證證書,因爲truststore是在SSL連接器中定義的... 但我不知道如何解決這個

+0

你在用Liferay Portal Tomcat的server.xml中的財產指定 「truststoreFile」?您的證書應該導入到該信任庫文件。你還可以發佈你得到的整個異常堆棧跟蹤嗎? –

+0

所以現在我指定的truststoreFile和Liferay的服務器密碼,我有一個錯誤,告訴我,我的密鑰庫被破壞,所以我想我必須做的tomcat看在一個特定的keystoreFile,但是我必須創建一個新的爲了它?然後爲CAS服務器創建另一個自定義信任庫? –

回答

1

對於你應該在server.xml中指定的SSL連接器的屬性「truststoreFile」自簽名證書:

<Connector port="8443" sslProtocol="TLS" scheme="https" clientAuth="false" 
... 
keystoreFile="tomcat.keystore" keystorePass="password" keyAlias="tomcat" 

<!-- Here's attribute "truststoreFile" --> 
truststoreFile="%JAVA_HOME%/jre/lib/security/cacerts" 
... /> 

嘗試使用真實位於共同信任的文件在「%JAVA_HOME%/ jre/lib/security/cacerts」中。您應該使用keytool命令將您的證書導入該信任庫文件:

keytool -import -file tomcat.crt -alias tomcat -keystore %JAVA_HOME%/jre/lib/security/cacerts 

默認密碼是「changeit」。沒有必要在server.xml中的<connector />標記中指定默認密碼。

+0

我是否必須爲Liferay Server創建另一個密鑰庫? 感謝您的回答。 –

+0

如果兩個Tomcats共享相同的域名,則可以爲兩個Tomcats使用一個證書(並因此使用一個密鑰存儲)。如果域名不同,您應該爲每個域名生成兩個證書(但您可以將兩個證書放在一個密鑰庫中)。 –

+0

現在(爲了測試目的)兩個tomcat都在我的本地主機上,所以我可以使用相同的密鑰庫,如果我這樣做,我必須爲兩者指定一個信任庫(兩者最終都可以相同)? –