2.4. 원격#159 SSL 활성화
2.4.1. 개요
Red Hat JBoss Fuse는 Cryostat를 사용하여 Karaf 컨테이너의 원격 모니터링 및 관리를 허용하는 Cryostat 포트를 제공합니다. 그러나 기본적으로 Cryostat 연결을 통해 보내는 자격 증명은 암호화되지 않고 스누핑에 취약합니다. Cryostat 연결을 암호화하고 암호 스누핑으로부터 보호하려면 SSL을 통해 Cryostat 통신을 보호해야 합니다.
SSL을 통해 Cryostat를 구성하려면 다음 단계를 수행합니다.
SSL 액세스를 통해 Cryostat를 구성한 후에는 연결을 테스트해야 합니다.
SSL/TLS 보안을 활성화하려면 Poodle 취약점(CVE-2014-3566) 으로부터 보호하기 위해 SSLv3 프로토콜을 명시적으로 비활성화해야 합니다. 자세한 내용은 JBoss Fuse 6.x 및 JBoss A-MQ 6.x에서 SSLv3 비활성화 를 참조하십시오.
Red Hat JBoss Fuse가 실행되는 동안 SSL을 통해 Cryostat를 구성하는 경우 다시 시작해야 합니다.
2.4.2. 사전 요구 사항
아직 수행하지 않은 경우 다음을 수행해야 합니다.
-
JAVA_HOME
환경 변수 설정 admin
역할을 사용하여 Karaf 사용자 구성InstallDir/etc/users.properties
파일을 편집하고 한 줄에 다음 항목을 추가합니다.admin=YourPassword,admin
그러면 사용자 이름,
admin
, password,YourPassword
,admin
역할이 있는 새 사용자가 생성됩니다.
2.4.3. jbossweb.keystore 파일 생성
명령 프롬프트를 열고 Karaf 설치의 etc/
디렉토리에 있는지 확인합니다.
cd etc
명령줄에서 애플리케이션에 적합한 -dname
값(별시 이름)을 사용하여 다음 명령을 입력합니다.
$JAVA_HOME/bin/keytool -genkey -v -alias jbossalias -keyalg RSA -keysize 1024 -keystore jbossweb.keystore -validity 3650 -keypass JbossPassword -storepass JbossPassword -dname "CN=127.0.0.1, OU=RedHat Software Unit, O=RedHat, L=Boston, S=Mass, C=USA"
단일 명령줄에 전체 명령을 입력합니다.
이 명령은 다음과 같은 출력을 반환합니다.
Generating 1,024 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 3,650 days for: CN=127.0.0.1, OU=RedHat Software Unit, O=RedHat, L=Boston, ST=Mass, C=USA New certificate (self-signed): [ [ Version: V3 Subject: CN=127.0.0.1, OU=RedHat Software Unit, O=RedHat, L=Boston, ST=Mass, C=USA Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11 Key: Sun RSA public key, 1024 bits modulus: 1123086025790567043604962990501918169461098372864273201795342440080393808 1594100776075008647459910991413806372800722947670166407814901754459100720279046 3944621813738177324031064260382659483193826177448762030437669318391072619867218 036972335210839062722456085328301058362052369248473659880488338711351959835357 public exponent: 65537 Validity: [From: Thu Jun 05 12:19:52 EDT 2014, To: Sun Jun 02 12:19:52 EDT 2024] Issuer: CN=127.0.0.1, OU=RedHat Software Unit, O=RedHat, L=Boston, ST=Mass, C=USA SerialNumber: [ 4666e4e6] Certificate Extensions: 1 [1]: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: AC 44 A5 F2 E6 2F B2 5A 5F 88 FE 69 60 B4 27 7D .D.../.Z_..i`.'. 0010: B9 81 23 9C ..#. ] ] ] Algorithm: [SHA256withRSA] Signature: 0000: 01 1D 95 C0 F2 03 B0 FD CF 3A 1A 14 F5 2E 04 E5 .........:...... 0010: DD 18 DD 0E 24 60 00 54 35 AE FE 36 7B 38 69 4C ....$`.T5..6.8iL 0020: 1E 85 0A AF AE 24 1B 40 62 C9 F4 E5 A9 02 CD D3 .....$.@b....... 0030: 91 57 60 F6 EF D6 A4 84 56 BA 5D 21 11 F7 EA 09 .W`.....V.]!.... 0040: 73 D5 6B 48 4A A9 09 93 8C 05 58 91 6C D0 53 81 s.kHJ.....X.l.S. 0050: 39 D8 29 59 73 C4 61 BE 99 13 12 89 00 1C F8 38 9.)Ys.a........8 0060: E2 BF D5 3C 87 F6 3F FA E1 75 69 DF 37 8E 37 B5 ...<..?..ui.7.7. 0070: B7 8D 10 CC 9E 70 E8 6D C2 1A 90 FF 3C 91 84 50 .....p.m....<..P ] [Storing jbossweb.keystore]
InstallDir/etc
에 파일 jbossweb.keystore
가 포함되어 있는지 확인합니다.
2.4.4. keystore.xml 파일을 생성하고 배포합니다.
-
즐겨 찾는 XML 편집기를 사용하여 <
installDir> /jboss-fuse-7.13.0.fuse-7_13_0-00012-redhat-00001/etc
디렉터리에keystore.xml
파일을 생성하고 저장합니다. 이 텍스트를 파일에 포함합니다.
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:jaas="http://karaf.apache.org/xmlns/jaas/v1.0.0"> <jaas:keystore name="sample_keystore" rank="1" path="file:etc/jbossweb.keystore" keystorePassword="JbossPassword" keyPasswords="jbossalias=JbossPassword" /> </blueprint>
InstallDir/deploy
디렉터리( hot deploy 디렉터리)에 복사하여keystore.xml
파일을 Karaf 컨테이너에 배포합니다.참고이후
keystore.xml
파일 배포를 취소해야 하는 경우 Karaf 컨테이너가 실행되는 동안deploy/
디렉토리에서keystore.xml
파일을 삭제하여 이를 수행할 수 있습니다.
2.4.5. org.apache.karaf.management.cfg에 필요한 속성을 추가합니다.
InstallDir/etc/org.apache.karaf.management.cfg
파일을 편집하여 파일 끝에 이러한 속성을 포함합니다.
secured = true secureProtocol = TLSv1 keyAlias = jbossalias keyStore = sample_keystore trustStore = sample_keystore
Poodle 취약점 (CVE-2014-3566)으로부터 보호하려면 secureProtocol
을 TLSv1
로 설정해야 합니다.
선택적으로 enabledCipherSuites
속성을 설정하여 Cryostat TLS 연결에 사용할 특정 암호화 제품군을 나열할 수 있습니다. 이 속성을 설정하면 기본 암호화 제품군이 재정의됩니다.
2.4.6. Karaf 컨테이너를 다시 시작
새 Cryostat SSL/TLS 설정을 적용하려면 Karaf 컨테이너를 다시 시작해야 합니다.
2.4.7. Secure Cryostat 연결 테스트
명령 프롬프트를 열고 Fuse 설치의
etc/
디렉터리에 있는지 확인합니다.cd <installDir>/jboss-fuse-7.13.0.fuse-7_13_0-00012-redhat-00001/etc
터미널을 열고 다음 명령을 입력하여 JConsole을 시작합니다.
jconsole -J-Djavax.net.debug=ssl -J-Djavax.net.ssl.trustStore=jbossweb.keystore -J-Djavax.net.ssl.trustStoreType=JKS -J-Djavax.net.ssl.trustStorePassword=JbossPassword
J-Djavax.net.ssl.trustStore
옵션이jbossweb.keystore
파일의 위치를 지정합니다(이 위치가 올바르게 지정되었는지 확인하거나 SSL/TLS 핸드셰이크는 실패합니다).-J-Djavax.net.debug=ssl
설정을 사용하면 SSL/TLS 핸드셰이크 메시지를 로깅할 수 있으므로 SSL/TLS가 성공적으로 활성화되었는지 확인할 수 있습니다.중요동일한 명령줄에 전체 명령을 입력합니다.
-
JConsole이 열리면
새 연결
마법사에서Remote Process
옵션을 선택합니다. Remote Process
옵션에서service:jmx:<protocol>:<sap
> 연결 URL에 대해 다음 값을 입력합니다.service:jmx:rmi://localhost:44444/jndi/rmi://localhost:1099/karaf-root
그리고 유효한 JAAS 인증 정보(
etc/users.properties
파일에 설정된)를 사용하여Username
및Password
필드를 작성합니다.Username: admin Password:
YourPassword