2011-01-19 7 views
0

응용 프로그램을 HTTP에서 HTTPS로 이동하는 중입니다. 문제가있는 것 같습니다. 여기JBoss 5.1.0에서 HTTPS 설정하기 GA

는 지금까지 these instructions의 기반으로 무엇을했는지 있습니다 :

  1. 서버를 호스팅하는 컴퓨터의 호스트 이름을 확인합니다. 이 지침의 로컬 호스트
  2. jBoss 서버 유형 (모두, 기본값, 프로덕션)을 식별합니다. 이 지침에 대한 ecotrak
  3. jBoss는 keystore 및 trustore와 동일한 파일을 사용하도록 권장합니다. 이것은 server.keystore가됩니다. 처녀 설치에서는 default/conf 폴더에 server.keystore가 없어야합니다. 가지고있는 경우 삭제할 것인지 (지침 사용) 또는 상황에 맞게 지침을 적용할지 여부를 결정해야합니다.
  4. 키 저장소 및 개인 키 만들기 :
    • 명령 프롬프트 나 셸을 열고 기본/conf 폴더로 이동하십시오.
    • keytool -genkey -alias jbosskey -keypass changeit -keyalg RSA -keystore server.keystore
    • 프롬프트에 응답하십시오. 성/이름을 물으면 myHostname을 사용하십시오. 이것은 매우 중요합니다.
    • server.keystore가 생성됩니다.
    • keytool -list -keystore server.keystore
    • 목록에 jbosskey라는 PrivateKeyEntry가 있어야합니다.
  5. 인증서 생성 및 저장.
    • 는 키 도구 -export -alias jbosskey -keypass changeit를 -file는 server.crt -keystore server.keystore
    • 는 server.crt 생성된다.
    • keytool -import -alias jbosscert -keypass changeit -file server.crt -keystore server.keystore
    • 키 스토어에 이미 있다는 경고가 표시됩니다. 무시해. 자바가 별도의 키 스토어 및 트러스트 파일을 기대하며 우리는 하나만 사용하기 때문입니다.
    • keytool -list -keystore server.keystore
    • 목록에 jbosscert라는 TrustedCertEntry가 있어야합니다.

내 서버에 있습니다.XML I는 다음과 같습니다

<!-- SSL/TLS Connector configuration using the admin devl guide keystore--> 
    <Connector protocol="HTTP/1.1" SSLEnabled="true" 
     port="8443" address="${jboss.bind.address}" 
     scheme="https" secure="true" clientAuth="false" 
     keystoreFile="C:/dev/server/jboss-5.1.0.GA/server/ecotrak/conf/server.keystore" 
     keystorePass="password" sslProtocol = "TLS" keyAlias="jbosskey" /> 

나는 내가 가지고있는 서버는 다음 시작할 때 :의

00:09:03,110 INFO [AprLifecycleListener] The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\dev\jdk\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\dev\jdk\jre\bin;native 

00:09:03,197 INFO [Http11Protocol] Initializing Coyote HTTP/1.1 on http-localhost%2F127.0.0.1-8080 

00:09:03,214 INFO [AjpProtocol] Initializing Coyote AJP/1.3 on ajp-localhost%2F127.0.0.1-8009 

00:09:03,261 ERROR [Http11Protocol] Error initializing endpoint 

java.io.IOException: Cannot recover key 

at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:456) 

at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:139) 

또 다른 섹션

여기
call %JBOSS_HOME%\bin\run.bat -c default -b 0.0.0.0 -Djavax.net.ssl.trustStore=C:/dev/server/jboss-5.1.0.GA/server/ecotrak/conf/server.keystore 

내가 내 로그 파일에 무엇을 얻을 로그

00:09:03,265 ERROR [AbstractKernelController] Error installing to Start: name=WebServer state=Create 

LifecycleException: Protocol handler initialization failed: java.io.IOException: Cannot recover key 

at org.apache.catalina.connector.Connector.initialize(Connector.java:1031) 

at org.apache.catalina.core.StandardService.initialize(StandardService.java:683) 

배포 정보 I 배포 N 오류 :

Deployment "WebServer" is in error due to the following reason(s): LifecycleException: Protocol handler initialization failed: java.io.IOException: Cannot recover key 

Deployment "jboss.web:service=WebServer" is in error due to the following reason(s): ** NOT FOUND Depends on 'jboss.web:service=WebServer' ** 

여기에 무슨 일이 일어나고 있는지 이상적으로 생각하세요?


업데이트 내 오류를 발견 - 나는 키 스토어와 인증서의 암호를 혼합했다. 수정이 완료되면 이제 HTTPS로 사이트를 실행할 수있게되었습니다.

답변

3

위의 지시 사항을 따른 것으로보고 한 것과 같은 오류가 발생했습니다. 나는 당신의 갱신을 이해하지 않았고, 그래서 거기에 다음과 같이 배치 파일을 작성 :

c: 
cd "/opt/fg/jboss-5.1.0.GA/server/default/conf" 
REM create the server.keystore file - will fail if it already exists 
keytool -genkey -alias jbosskey -keypass changeit -keyalg RSA -keystore server.keystore -storepass changeit -dname "CN=localhost, OU=MY_DEPARTMENT, O=MY_COMPANY, L=MY_CITY, S=MY_STATE, C=US" 

REM display what was made 
keytool -list -keystore server.keystore -storepass changeit 

REM generate and store the certificate 
keytool -export -alias jbosskey -keypass changeit -file server.crt -keystore server.keystore -storepass changeit 

keytool -import -alias jbosscert -keypass changeit -file server.crt -keystore server.keystore -storepass changeit 

REM display what was made 
keytool -list -keystore server.keystore -storepass changeit 

이 모든 암호가 설정되고 있었다 어디에서 나를보고 도움 지내요. 원래는 명령을 읽지 않고 명령을 복사하여 붙여 넣었습니다. 일부 명령에 암호가 내장되어 있음을 알지 못했습니다. 갑자기 업데이트 된 게시물이 나에게 훨씬 더 의미가있었습니다.

같은 문제가있는 사람은 언제든지 내가 작성한 박쥐 파일에서 "changeit"을보고 비밀번호로 변경하십시오.

위의 스크립트에서 컴퓨터 이름, 부서, 조직, 주 및 국가를 변경해야 할 수도 있습니다.

이제 JBoss가 올바르게 시작되고있는 것처럼 보입니다.

게시 및 업데이트 주셔서 감사합니다.

1

해당 오류의 또 다른 이유는 키 저장소가 고급 암호화를 사용하고 있기 때문입니다. true이면 Java 암호화 수준을 높이려면 Java Cryptography Extension을 설치해야합니다 (미국 수출 규칙으로 인해 기본적으로 활성화되지 않음)

이 방법을 확인하려면 JCE install mini-howto을 확인하십시오.

jre7의 JCE는 here입니다. 여전히 jre6을 사용하는 사용자는 link을 확인하십시오.

2

필자의 경우 키 저장소 비밀번호와 별칭 비밀번호가 다릅니다. 그들은 이 같아야합니다 (적어도 Tomcat에서는).

관련 문제