2011-06-12 61 views
6

我一直在Apache Tomcat 7中使用通配符SSL證書。但現在我必須更新,我發現有這些EV(擴展驗證)SSL證書,其中瀏覽器顯示一個很好的綠色酒吧讓用戶感覺更好。這對我的網站很重要,所以我想要它!但我有多個子域名,顯然EV SSL證書本質上不是通配符。好吧,我有一組子域名,我可以爲每個子域名購買一堆(我絕對需要至少2個)EV SSL證書。在Tomcat中使用多個SSL證書7

我可以在Tomcat 7中進行設置,以便在1個Web應用程序上有多個SSL證書?我爲這臺機器分配多個IP地址不是問題。

回答

11

如果沒有服務器名稱指示(SNI),Java(6)中不支持,則每個IP地址需要一個證書。

可以使用address attribute將Tomcat配置爲使用具有不同IP地址和證書的多個連接器。

例如:

<Connector 
     port="8443" maxThreads="200" address="10.0.0.1" 
     scheme="https" secure="true" SSLEnabled="true" 
     keystoreFile="keystore1.jks" keystorePass="..." 
     clientAuth="false" sslProtocol="TLS"/> 
<Connector 
     port="8443" maxThreads="200" address="10.0.0.2" 
     scheme="https" secure="true" SSLEnabled="true" 
     keystoreFile="keystore2.jks" keystorePass="..." 
     clientAuth="false" sslProtocol="TLS"/> 

您可能還可以使用相同的密鑰庫,如果需要,並使用keyAlias屬性(在Connector)告訴密鑰/證書要使用的連接器(基於在密鑰庫中的別名上)。

+0

完美,正是我一直在尋找。還沒有嘗試過,會讓你知道它的工作效果。 – 2011-06-14 17:17:47

+0

老兄,是否可以設置域名而不是ip? – 2014-05-12 12:36:30

+0

嗨@布魯諾,只是想知道,是否有可能在地址屬性中使用域名而不是IP地址?因爲我託管了很多網站,但它們都屬於相同的IP地址。 – 2016-11-26 10:09:02

1

我剛剛得到這個到工作在一個具有多個SSL和IP的服務器上。

添加的IP的這樣:
http://www.loadtestingtool.com/help/how-setup-ip.shtml

添加代碼,以使服務器使用最大可能的安全性與「密碼」(有2048位密鑰時)。

第一次測試,這將使用自簽名密鑰以這種方式工作:
http://community.jboss.org/wiki/GeneratingSelfSignedCertificateWithKeytool
注意,在這個頁面中的檢測具有在「-keystore」文本的開頭錯誤字符(在多個位置)。

下面是代碼:

<Connector protocol="org.apache.coyote.http11.Http11Protocol" address="###.###.###.##1" port="443" minSpareThreads="5" 
    enableLookups="true" acceptCount="100" maxThreads="200" 
    scheme="https" secure="true" SSLEnabled="true" keystoreFile="key1.key" 
    keystorePass="password1" clientAuth="false" sslProtocol="TLS" 
    ciphers="SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA"/> 

<Connector protocol="org.apache.coyote.http11.Http11Protocol" address="###.###.###.##2" port="443" minSpareThreads="5" 
    enableLookups="true" acceptCount="100" maxThreads="200" 
    scheme="https" secure="true" SSLEnabled="true" keystoreFile="key2.key" 
    keystorePass="password2" clientAuth="false" sslProtocol="TLS" 
    ciphers="SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA"/> 
+0

hi @Zuul,只是想知道,是否可以在地址屬性中使用域名而不是IP地址?因爲我託管了很多網站,但它們都屬於相同的IP地址。 – 2016-11-26 10:08:39

1

你可以只讓生活更輕鬆,並得到一個EV SAN(也稱爲UCC)和添加的每個域作爲主題可選名稱中的條目。如果要使用多個IP地址,只需導出證書並將其重新導入到每個IP地址(如果您正在運行Windows,那麼http://www.ssltools.com/manager非常適合)。 EV SAN證書的一個很好的例子是在https://www.ssl.com找到的證書,只是檢查它。

3

我不確定,在這裏如果「SNI」真的有關。

但在你的情況下,典型的解決方案將被稱爲ssloffloading或ssl終止: 即,把你的tomcat behinde apache,配置爲在同一個IP上使用多個虛擬主機/域名。您可以爲apache中的每個虛擬主機配置使用其自己的SSL證書。

沒有爲這個主題在這裏一步步指導:

http://milestonenext.blogspot.de/2012/09/ssl-offloading-with-modjk-part-1.html