2012-06-11 38 views
0

我一直在試圖讓這個工作一段時間,現在我只是在我的繩索結束。我試圖將從安全站點獲得的證書添加到本地密鑰庫和信任庫,然後讓JBoss 7.1配置將其提取出來。我主要試圖遵循的文檔在這裏:http://docs.oracle.com/javase/1.5.0/docs/tooldocs/solaris/keytool.html證書/密鑰庫配置問題 - JBoss AS 7

以下是我執行:

  1. 的keytool -genkey -alias myalias.com -keypass -storepass的changeit -keystore的changeit keystore.jks

  2. 的keytool -import -trustcacerts -keystore keystore.jks -storepass changeit -noprompt -alias myalias.com -file downloaded-certificate.pem

  3. keytool -export -alias myalias.com -file cacerts.cer -keystore keys tore.jks

這是我的JBoss 7.1 standalone.xml文件的相關部分:

<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true"> 
    <ssl name="ssl" password="changeit" key-alias="myalias.com" certificate-key-file="${JBOSS_HOME}/keystore.jks" protocol="TLSv1" verify-client="true" ca-certificate-file="${JBOSS_HOME}/keystore.jks"/> 
</connector> 

最後,這是寫在日誌中的堆棧跟蹤頂部的JBoss啓動時:

15:39:35,882 ERROR [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-2) Error initializing endpoint: java.io.IOException: SSL configuration is invalid due to No available certificate or key corresponds to the SSL cipher suites which are enabled. 
    at org.apache.tomcat.util.net.jsse.JSSESocketFactory.checkConfig(JSSESocketFactory.java:788) [jbossweb-7.0.13.Final.jar:] 
    at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:493) [jbossweb-7.0.13.Final.jar:] 
    at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:168) [jbossweb-7.0.13.Final.jar:] 
    at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:977) [jbossweb-7.0.13.Final.jar:] 
    at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:190) [jbossweb-7.0.13.Final.jar:] 
    at org.apache.catalina.connector.Connector.init(Connector.java:983) [jbossweb-7.0.13.Final.jar:] 
etc... 

任何幫助將不勝感激!

回答

2

如果你提供一個密鑰,你需要指定一個別名,如SSL部分

key-alias="myalias.com"

而且下面,我想證明文件是CA證書文件。

+0

啊,這個別名有點意義。我還會仔細檢查架構是否有證書文件的正確屬性。謝謝!我會在早上嘗試這些,並將結果更新這篇文章。 – Geoff

+0

我仍然遇到問題...當我指定一個別名時,拋出的錯誤是「別名myalias.com不能識別鍵入口。」這看起來很奇怪,因爲如果我導出keystore.jks的內容,則鍵入項名稱存在。使用當前配置更新上面的信息。 – Geoff

+0

奇怪的是......儘管上面的錯誤在JBoss啓動時被拋出,但已部署的應用程序正在正常工作。現在稱它爲好。 – Geoff

0

證書/密鑰存儲配置文檔 - JBoss應用服務器7

第1步:添加在standalone.xml文件這一行

<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false"> 
      <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http" redirect-port="8443"/> 
      <connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true"> 
       <ssl name="foo-ssl" key-alias="foo" password="name" certificate-key-file="../standalone/configuration/test.keystore" protocol="TLSv1" certificate-file="../standalone/configuration/intermediate.cer"/> 
      </connector> 
      <virtual-server name="default-host" enable-welcome-root="false"> 
       <alias name="localhost"/> 
       <alias name="test.com"/> 
      </virtual-server> 
     </subsystem> 

步驟2

加入這一行web.xml文件

<security-constraint> 
     <web-resource-collection> 
      <web-resource-name>HTTPs test</web-resource-name> 
      <url-pattern>/*</url-pattern> 
     </web-resource-collection> 
     <user-data-constraint> 
      <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
     </user-data-constraint> 
    </security-constraint> 
+0

這個web.xml文件是在哪裏。?在我們需要https的wep應用程序中? –

+0

在WEB-INF中添加web.xml文件 – Pravin