2017-02-09 26 views
3

我試圖用Tomcat 8.5更改server.xml並在嘗試啓動tomcat時出現以下錯誤:Tomcat 8.5 server.xml - 爲主機名[_default_]提供了多個SSLHostConfig元素。主機名必須是唯一的

09-Feb-2017 06:23:25.278 WARNING [main] org.apache .catalina.startup.Catalina.load使用conf/server.xml的Catalina.start:(135,20)時出錯:爲主機名[默認]提供了多個SSLHostConfig元素。主機名稱必須是唯一的。

相關的server.xml代碼:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol" SSLEnabled="true" 
      maxThreads="150" scheme="https" secure="true" 
      clientAuth="false" > 
    <SSLHostConfig>  
        keystoreFile="/saswork/sasadmin/tomcat/certs/eccerts" 
        keystorePass="xxxxxxxx" 
        storepass="xxxxxxxx" 
        truststoreFile="/saswork/sasadmin/tomcat/certs/eccerts" 
        sslProtocol="TLS" 
</SSLHostConfig> 

建議讚賞有什麼錯誤的手段和建議的解決方案的歡迎。

回答

4

首先,您的語法對於<SSLHostConfig>不正確。 它應該是:

<SSLHostConfig>  
    <Certificate ... /> 
</SSLHostConfig> 

而且,我有很多更好的運氣把keystorePass<Connector>內。

唯一<Connector>,沒有失敗對我的作品是:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
    maxThreads="150" scheme="https" secure="true" 
    keystoreFile="keystore.jks" keyAlias="alias" 
    keystorePass="password" 
    clientAuth="false" sslProtocol="TLS" /> 

否則會出現這些MultipleSSLHostConfig元素的錯誤。

+2

感謝v多少成爲certificateVerification="none"使用clientAuth="false"。我最初嘗試了的方法,但是在路由下冒險出現錯誤。 根據你的反饋,我調整了我的來複制你的,現在所有人都在工作。 – Ecu

+0

謝謝,如果這回答你的問題,請標記它的答案,或自己創建一個答案並標記。 –

+1

通過使用clientAuth =「false」,除了顯式聲明的外,您還意外創建了一個默認的SSL主機配置。這使得2,因此錯誤。請參閱下面的@ muttonUp的出色答案。 –

4

一個很明顯的錯誤「多SSLHostConfig元素」當你明確只有一個。

原因是使用不推薦的指令。

如果你把這些deprecated attributesConnector指令,tomcat的假設您正在使用舊的方式和自動創建一個SSLHostConfig本身,然後與您正在創建的衝突。

在您的特定情況下,你在Connector指令,它已經在SSLHostConfig指令

+0

這是正確的答案。 –