JBoss EAP에서 SSL/TLS 구성
JBoss EAP에서 SSL/TLS를 활성화하여 JBoss EAP 관리 인터페이스 및 배포된 애플리케이션을 보호하는 가이드
초록
JBoss EAP 문서에 대한 피드백 제공 링크 복사링크가 클립보드에 복사되었습니다!
오류를 보고하거나 문서를 개선하기 위해 Red Hat Jira 계정에 로그인하여 문제를 제출하십시오. Red Hat Jira 계정이 없는 경우 계정을 생성하라는 메시지가 표시됩니다.
프로세스
- 티켓을 생성하려면 다음 링크를 클릭하십시오.
- 요약 에 문제에 대한 간략한 설명을 입력합니다.
- 설명에서 문제 또는 개선 사항에 대한 자세한 설명을 제공합니다. 문서에서 문제가 발생한 위치에 URL을 포함합니다.
- Submit 을 클릭하고 문제를 적절한 문서 팀으로 라우팅합니다.
보다 포괄적 수용을 위한 오픈 소스 용어 교체 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
1장. 관리 인터페이스 및 애플리케이션에 대한 단방향 SSL/TLS 활성화 링크 복사링크가 클립보드에 복사되었습니다!
SSL/TLS 또는 전송 계층 보안(TLS)은 네트워크를 통해 통신하는 두 엔티티 간에 데이터 전송을 보호하는 데 사용되는 인증서 기반 보안 프로토콜입니다.
JBoss EAP 관리 인터페이스와 JBoss EAP에 배포된 애플리케이션에 대해 단방향 SSL/TLS를 활성화할 수 있습니다. 자세한 내용은 다음 절차를 참조하십시오.
1.1. 관리 인터페이스에 대한 단방향 SSL/TLS 활성화 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP 관리 인터페이스와 인터페이스에 연결하는 클라이언트 간의 통신이 안전하도록 관리 인터페이스에 대해 단방향 SSL/TLS를 활성화합니다.
관리 인터페이스에 단방향 SSL/TLS를 활성화하려면 다음 절차를 사용할 수 있습니다.
- 마법사를 사용하여 관리 인터페이스에 양방향 SSL/TLS 활성화: CLI 기반 마법사 를 사용하여 SSL/TLS를 빠르게 설정하려면 이 절차를 사용하십시오. Elytron은 마법사 입력을 기반으로 필요한 리소스를 만듭니다.
- 하위 시스템 명령을 사용하여 관리 인터페이스에 대해 단방향 SSL/TLS를 활성화합니다. 이 절차를 사용하여 수동으로 SSL/TLS를 활성화하는 데 필요한 리소스를 구성합니다. 리소스를 수동으로 구성하면 서버 구성을 보다 쉽게 제어할 수 있습니다.
또한 보안 명령을 사용하여 관리 인터페이스에 대해 SSL/TLS 비활성화 절차를 사용하여 관리 인터페이스에 대해 SSL/TLS를 비활성화할 수 있습니다.
1.1.1. 마법사를 사용하여 관리 인터페이스에 단방향 SSL/TLS 활성화 링크 복사링크가 클립보드에 복사되었습니다!
Elytron은 SSL/TLS를 신속하게 설정하는 마법사를 제공합니다. 인증서가 포함된 기존 키 저장소를 사용하거나 마법사에서 생성한 키 저장소 및 자체 서명 인증서를 사용하여 SSL/TLS를 활성화할 수 있습니다. --lets-encrypt 옵션을 사용하여 Let's Encrypt 인증 기관에서 인증서를 확보하고 사용할 수도 있습니다. Let's Encrypt에 대한 자세한 내용은 Let's Encrypt 설명서를 참조하십시오.
마법사에서 생성하는 자체 서명된 인증서를 사용하여 테스트 및 개발을 위해서만 SSL/TLS를 활성화합니다. 프로덕션 환경의 경우 항상 CA(인증 기관) 서명 인증서를 사용합니다.
프로덕션 환경에서는 자체 서명된 인증서를 사용하지 마십시오. CA(인증 기관)에서 서명한 인증서만 사용합니다.
마법사는 관리 인터페이스에 대해 SSL/TLS를 활성화하는 데 필요한 다음 리소스를 구성합니다.
-
key-store -
key-manager -
server-ssl-context -
그런 다음
server-ssl-context가http-interface에 적용됩니다.
Elytron은 각 리소스의 이름을 resource-type-UUID 로 지정합니다. 예를 들어 키 저장소-9e35a3be-62bb-4fff-afc2-2d8d141b82bc입니다. UUID(Universally unique identifier)는 리소스의 이름 충돌을 방지하는 데 도움이 됩니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
관리 CLI에 다음 명령을 입력하여 관리 인터페이스에 대한 단방향 SSL/TLS를 구성하려면 마법사를 시작합니다.
구문
security enable-ssl-management --interactive
security enable-ssl-management --interactiveCopy to Clipboard Copied! Toggle word wrap Toggle overflow 메시지가 표시되면 필요한 정보를 입력합니다.
Let's Encrypt 인증 기관에서 인증서를 가져오고 사용하려면
--lets-encrypt옵션을 사용합니다.관리 인터페이스에 SSL/TLS가 이미 활성화되어 있는 경우 마법사는 다음 메시지와 함께 종료됩니다.
SSL is already enabled for http-interface
SSL is already enabled for http-interfaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기존 구성을 변경하려면 먼저 관리 인터페이스에 대해 SSL/TLS를 비활성화한 다음 새 구성을 생성합니다. 관리 인터페이스에 대해 SSL/TLS를 비활성화하는 방법에 대한 자세한 내용은 마법사를 사용하여 관리 인터페이스에 대해 SSL/TLS 비활성화를 참조하십시오.
참고단방향 SSL/TLS를 활성화하려면 SSL 상호 인증을 활성화하라는 메시지가 표시되면
n또는 blank를 입력합니다. 상호 인증을 설정하면 양방향 SSL/TLS가 활성화됩니다.마법사를 대화형으로 사용하는 예
security enable-ssl-management --interactive
security enable-ssl-management --interactiveCopy to Clipboard Copied! Toggle word wrap Toggle overflow 마법사 프롬프트에 대한 입력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow y를 입력하면 서버가 다시 로드됩니다. 자체 서명된 인증서를 구성한 경우 마법사를 사용하여 자체 서명된 인증서를 생성하거나 Java 가상 머신(JVM)에서 신뢰하지 않는 인증서를 구성한 경우 관리 CLI에서 서버에서 제공하는 인증서를 수락하라는 메시지를 표시합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 연결을 진행하려면
T또는P를 입력합니다.다음 출력이 표시됩니다.
Server reloaded. SSL enabled for http-interface ssl-context is ssl-context-a18ba30e-6a26-4ed6-87c5-feb7f3e4dff1 key-manager is key-manager-a18ba30e-6a26-4ed6-87c5-feb7f3e4dff1 key-store is key-store-a18ba30e-6a26-4ed6-87c5-feb7f3e4dff1
Server reloaded. SSL enabled for http-interface ssl-context is ssl-context-a18ba30e-6a26-4ed6-87c5-feb7f3e4dff1 key-manager is key-manager-a18ba30e-6a26-4ed6-87c5-feb7f3e4dff1 key-store is key-store-a18ba30e-6a26-4ed6-87c5-feb7f3e4dff1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
관리 CLI 클라이언트와 연결하여 SSL/TLS를 확인합니다.
구성 파일에 Elytron 클라이언트 SSL 컨텍스트를 배치한 다음 관리 CLI를 사용하여 서버에 연결하고 구성 파일을 참조하여 SSL/TLS를 테스트할 수 있습니다.
키 저장소 파일이 포함된 디렉터리로 이동합니다. 이 예에서 키 저장소 파일
exampleKeystore.pkcs12가 서버의독립 실행형/구성디렉터리에 생성되었습니다.예제
cd JBOSS_HOME/standalone/configuration
$ cd JBOSS_HOME/standalone/configurationCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 인증서를 사용하여 클라이언트
신뢰 저장소를생성합니다.구문
keytool -importcert -keystore <trust_store_name> -storepass <password> -alias <alias> -trustcacerts -file <file_containing_server_certificate>
$ keytool -importcert -keystore <trust_store_name> -storepass <password> -alias <alias> -trustcacerts -file <file_containing_server_certificate>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
keytool -importcert -keystore client.truststore.pkcs12 -storepass secret -alias localhost -trustcacerts -file exampleKeystore.pem
$ keytool -importcert -keystore client.truststore.pkcs12 -storepass secret -alias localhost -trustcacerts -file exampleKeystore.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow 자체 서명된 인증서를 사용한 경우 인증서를 신뢰하라는 메시지가 표시됩니다.
파일에 클라이언트 측 SSL 컨텍스트를 정의합니다(예:
example-security.xml).구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버에 연결하고 명령을 실행합니다.
예제
EAP_HOME/bin/jboss-cli.sh -c --controller=remote+https://127.0.0.1:9993 -Dwildfly.config.url=<path_to_the_configuration_file>/example-security.xml :whoami
$ EAP_HOME/bin/jboss-cli.sh -c --controller=remote+https://127.0.0.1:9993 -Dwildfly.config.url=<path_to_the_configuration_file>/example-security.xml :whoamiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예상 출력
{ "outcome" => "success", "result" => {"identity" => {"username" => "$local"}} }{ "outcome" => "success", "result" => {"identity" => {"username" => "$local"}} }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
브라우저를 사용하여 SSL/TLS를 확인합니다.
https://localhost:9993 로 이동합니다.
자체 서명된 인증서를 사용한 경우 브라우저에서 서버에서 제공하는 인증서를 알 수 없다는 경고가 표시됩니다.
인증서를 검사하고 브라우저에 표시된 지문이 키 저장소의 인증서 지문과 일치하는지 확인합니다. 다음 명령을 사용하여 생성한 인증서를 볼 수 있습니다.
구문
/subsystem=elytron/key-store=<server_keystore_name>:read-alias(alias=<alias>)
/subsystem=elytron/key-store=<server_keystore_name>:read-alias(alias=<alias>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=key-store-a18ba30e-6a26-4ed6-87c5-feb7f3e4dff1:read-alias(alias="localhost")
/subsystem=elytron/key-store=key-store-a18ba30e-6a26-4ed6-87c5-feb7f3e4dff1:read-alias(alias="localhost")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 마법사 출력에서 키 저장소 이름을 가져올 수 있습니다. 예를 들어 "key-store는 key-store-a18ba30e-6a26-4ed6-87c5-feb7f3e4dff1"입니다.
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 인증서를 수락하면 로그인 인증 정보를 입력하라는 메시지가 표시됩니다. 기존 JBoss EAP 사용자의 사용자 자격 증명을 사용하여 로그인할 수 있습니다.
JBoss EAP 관리 인터페이스에 대해 SSL/TLS가 활성화됩니다.
1.1.2. 하위 시스템 명령을 사용하여 관리 인터페이스에 대해 단방향 SSL/TLS 활성화 링크 복사링크가 클립보드에 복사되었습니다!
elytron 하위 시스템 명령을 사용하여 SSL/TLS를 사용하여 JBoss EAP 관리 인터페이스를 보호합니다.
테스트 및 개발 목적으로 자체 서명된 인증서를 사용할 수 있습니다. 인증서가 포함된 기존 키 저장소를 사용하거나 키 저장소 리소스를 생성할 때 Elytron에서 생성하는 키 저장소를 사용할 수 있습니다. 프로덕션 환경의 경우 항상 CA(인증 기관) 서명 인증서를 사용합니다.
프로덕션 환경에서는 자체 서명된 인증서를 사용하지 마십시오. CA(인증 기관)에서 서명한 인증서만 사용합니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
인증서를 저장하도록 키 저장소를 구성합니다.
예를 들어 CA 서명 인증서가 포함된 키 저장소의 경로를 제공하거나 생성할 키 저장소의 경로를 제공할 수 있습니다.
/subsystem=elytron/key-store=<keystore_name>:add(path=<path_to_keystore>, credential-reference=<credential_reference>, type=<keystore_type>)
/subsystem=elytron/key-store=<keystore_name>:add(path=<path_to_keystore>, credential-reference=<credential_reference>, type=<keystore_type>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleKeyStore:add(path=exampleserver.keystore.pkcs12, relative-to=jboss.server.config.dir,credential-reference={clear-text=secret},type=PKCS12)/subsystem=elytron/key-store=exampleKeyStore:add(path=exampleserver.keystore.pkcs12, relative-to=jboss.server.config.dir,credential-reference={clear-text=secret},type=PKCS12)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 키 저장소에 인증서가 포함되어 있지 않거나 위의 단계를 사용하여 키 저장소를 생성한 경우 인증서를 생성하고 인증서를 파일에 저장해야 합니다.
키 저장소에 키 쌍을 생성합니다.
구문
/subsystem=elytron/key-store=<keystore_name>:generate-key-pair(alias=<keystore_alias>,algorithm=<algorithm>,key-size=<key_size>,validity=<validity_in_days>,credential-reference=<credential_reference>,distinguished-name="<distinguished_name>")
/subsystem=elytron/key-store=<keystore_name>:generate-key-pair(alias=<keystore_alias>,algorithm=<algorithm>,key-size=<key_size>,validity=<validity_in_days>,credential-reference=<credential_reference>,distinguished-name="<distinguished_name>")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleKeyStore:generate-key-pair(alias=localhost,algorithm=RSA,key-size=2048,validity=365,credential-reference={clear-text=secret},distinguished-name="CN=localhost")/subsystem=elytron/key-store=exampleKeyStore:generate-key-pair(alias=localhost,algorithm=RSA,key-size=2048,validity=365,credential-reference={clear-text=secret},distinguished-name="CN=localhost")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인증서를 파일에 저장합니다.
구문
/subsystem=elytron/key-store=<keystore_name>:store()
/subsystem=elytron/key-store=<keystore_name>:store()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleKeyStore:store()
/subsystem=elytron/key-store=exampleKeyStore:store()Copy to Clipboard Copied! Toggle word wrap Toggle overflow
키
저장소를참조하는key-manager를 구성합니다.구문
/subsystem=elytron/key-manager=<key-manager_name>:add(key-store=<key-store_name>,credential-reference=<credential_reference>)
/subsystem=elytron/key-manager=<key-manager_name>:add(key-store=<key-store_name>,credential-reference=<credential_reference>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-manager=exampleKeyManager:add(key-store=exampleKeyStore,credential-reference={clear-text=secret})/subsystem=elytron/key-manager=exampleKeyManager:add(key-store=exampleKeyStore,credential-reference={clear-text=secret})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요elytron하위 시스템은KeyManagerFactory.getDefaultAlgorithm()을 사용하여 기본적으로 알고리즘을 결정하기 때문에 Red Hat은 알고리즘 속성을 지정하지 않았습니다. 그러나 알고리즘 특성을 지정할 수 있습니다.알고리즘 특성을 지정하려면 사용 중인 Java 개발 키트(JDK)에서 제공하는 키 관리자 알고리즘을 알아야 합니다. 예를 들어, JSSE(Java Secure Socket Extension)를 사용하는 JDK는 PKIX 및 SunX509 알고리즘을 제공합니다.
명령에서 SunX509를
키-manager알고리즘 속성으로 지정할 수 있습니다.key-manager를 참조하는server-ssl-context를 구성합니다.구문
/subsystem=elytron/server-ssl-context=<server-ssl-context_name>:add(key-manager=<key-manager_name>, protocols=<list_of_protocols>)
/subsystem=elytron/server-ssl-context=<server-ssl-context_name>:add(key-manager=<key-manager_name>, protocols=<list_of_protocols>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/server-ssl-context=examplehttpsSSC:add(key-manager=exampleKeyManager, protocols=["TLSv1.2"])
/subsystem=elytron/server-ssl-context=examplehttpsSSC:add(key-manager=exampleKeyManager, protocols=["TLSv1.2"])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요지원하려는 SSL/TLS 프로토콜을 결정해야 합니다. 예제 명령은 TLSv1.2를 사용합니다.
-
TLSv1.2 및 이전 버전의 경우
cipher-suite-filter인수를 사용하여 허용되는 암호화 제품군을 지정합니다. -
TLSv1.3의 경우
cipher-suite-names인수를 사용하여 허용되는 암호화 제품군을 지정합니다. TLSv1.3은 기본적으로 비활성화되어 있습니다.protocols속성 또는 지정된 세트에 TLSv1.3이 포함된 프로토콜을 지정하지 않으면cipher-suite-names를 구성하면 TLSv1.3을 활성화합니다.
use-cipher-suites-order인수를 사용하여 서버 암호화 제품군 순서를 준수합니다.use-cipher-suites-order속성은 기본적으로true로 설정됩니다. 이는 클라이언트 암호화 제품군 순서를 준수하는 레거시 보안 하위 시스템 동작과 다릅니다.-
TLSv1.2 및 이전 버전의 경우
구성된
server-ssl-context를 사용하도록 관리 인터페이스를 업데이트합니다.구문
/core-service=management/management-interface=http-interface:write-attribute(name=ssl-context, value=<server-ssl-context_name>) /core-service=management/management-interface=http-interface:write-attribute(name=secure-socket-binding, value=management-https)
/core-service=management/management-interface=http-interface:write-attribute(name=ssl-context, value=<server-ssl-context_name>) /core-service=management/management-interface=http-interface:write-attribute(name=secure-socket-binding, value=management-https)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/core-service=management/management-interface=http-interface:write-attribute(name=ssl-context, value=examplehttpsSSC) /core-service=management/management-interface=http-interface:write-attribute(name=secure-socket-binding, value=management-https)
/core-service=management/management-interface=http-interface:write-attribute(name=ssl-context, value=examplehttpsSSC) /core-service=management/management-interface=http-interface:write-attribute(name=secure-socket-binding, value=management-https)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow SSL/TLS를 활성화하기 위해 자체 서명된 인증서를 사용한 경우 관리 CLI에서 서버에서 제공하는 인증서를 수락하라는 메시지를 표시합니다. 키 저장소를 구성한 인증서입니다.
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 연결을 진행하려면
T또는P를 입력합니다.
검증
클라이언트를 통해 연결하여 SSL/TLS를 확인합니다.
구성 파일에 Elytron 클라이언트 SSL 컨텍스트를 배치한 다음 구성 파일을 참조하는 관리 CLI를 사용하여 서버에 연결하여 SSL/TLS를 테스트할 수 있습니다.
키 저장소 파일이 포함된 디렉터리로 이동합니다. 이 예제에서 키 저장소 파일
exampleserver.keystore.pkcs12가 서버의독립 실행형/구성디렉터리에 생성되었습니다.예제
cd JBOSS_HOME/standalone/configuration
$ cd JBOSS_HOME/standalone/configurationCopy to Clipboard Copied! Toggle word wrap Toggle overflow 클라이언트 신뢰 저장소로 가져올 수 있도록 서버 인증서를 내보냅니다.
keytool -export -alias <alias> -keystore <key_store> -storepass <keystore_password>-file <file_name>
$ keytool -export -alias <alias> -keystore <key_store> -storepass <keystore_password>-file <file_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
keytool -export -alias localhost -keystore exampleserver.keystore.pkcs12 -file -storepass secret server.cer
$ keytool -export -alias localhost -keystore exampleserver.keystore.pkcs12 -file -storepass secret server.cerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 인증서를 사용하여 클라이언트
신뢰 저장소를생성합니다.구문
keytool -importcert -keystore <trust_store_name> -storepass <password> -alias <alias> -trustcacerts -file <file_containing_server_certificate>
$ keytool -importcert -keystore <trust_store_name> -storepass <password> -alias <alias> -trustcacerts -file <file_containing_server_certificate>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
keytool -importcert -keystore client.truststore.pkcs12 -storepass secret -alias localhost -trustcacerts -file server.cer
$ keytool -importcert -keystore client.truststore.pkcs12 -storepass secret -alias localhost -trustcacerts -file server.cerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 자체 서명된 인증서를 사용한 경우 인증서를 신뢰하라는 메시지가 표시됩니다.
파일에 클라이언트 측 SSL 컨텍스트를 정의합니다(예:
example-security.xml).구문
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버에 연결하고 명령을 실행합니다.
예제
EAP_HOME/bin/jboss-cli.sh -c --controller=remote+https://127.0.0.1:9993 -Dwildfly.config.url=example-security.xml :whoami
$ EAP_HOME/bin/jboss-cli.sh -c --controller=remote+https://127.0.0.1:9993 -Dwildfly.config.url=example-security.xml :whoamiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예상 출력
{ "outcome" => "success", "result" => {"identity" => {"username" => "$local"}} }{ "outcome" => "success", "result" => {"identity" => {"username" => "$local"}} }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
브라우저를 사용하여 SSL/TLS를 확인합니다.
https://localhost:9993 로 이동합니다.
자체 서명된 인증서를 사용한 경우 브라우저에서 서버에서 제공하는 인증서를 알 수 없다는 경고가 표시됩니다.
인증서를 검사하고 브라우저에 표시된 지문이 키 저장소의 인증서 지문과 일치하는지 확인합니다. 다음 명령을 사용하여 생성한 인증서를 볼 수 있습니다.
구문
/subsystem=elytron/key-store=<server_keystore_name>:read-alias(alias=<alias>)
/subsystem=elytron/key-store=<server_keystore_name>:read-alias(alias=<alias>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleKeyStore:read-alias(alias="localhost")
/subsystem=elytron/key-store=exampleKeyStore:read-alias(alias="localhost")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 인증서를 수락하면 로그인 인증 정보를 입력하라는 메시지가 표시됩니다. 기존 JBoss EAP 사용자의 사용자 자격 증명을 사용하여 로그인할 수 있습니다.
JBoss EAP 관리 인터페이스에 대해 SSL/TLS가 활성화됩니다.
1.1.3. 보안 명령을 사용하여 관리 인터페이스에 대해 SSL/TLS 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
보안 명령을 사용하여 관리 인터페이스에 대해 SSL/TLS를 비활성화합니다. 구성된 것과 다른 SSL/TLS 구성을 사용하기 위해 이 작업을 수행할 수 있습니다.
명령을 사용하여 SSL/TLS를 비활성화해도 Elytron 리소스는 삭제되지 않습니다. 명령은 http-interface management-interface 리소스의 secure-socket-binding 및 ssl-context 속성을 정의 해제합니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
관리 CLI에서
disable-ssl-management명령을 사용합니다.security disable-ssl-management
security disable-ssl-managementCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서버는 다음 출력으로 다시 로드됩니다.
... Server reloaded. Reconnected to server. SSL disabled for http-interface
... Server reloaded. Reconnected to server. SSL disabled for http-interfaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 방법 중 하나를 사용하여 서버 관리 인터페이스에 대해 SSL/TLS를 활성화할 수 있습니다.
- 마법사 를 사용하여 관리 인터페이스에 대한 단방향 SSL/TLS 활성화: CLI 기반 마법사 를 사용하여 SSL/TLS를 빠르게 설정하려면 이 절차를 사용하십시오. Elytron은 마법사 입력을 기반으로 필요한 리소스를 만듭니다.
- 하위 시스템 명령을 사용하여 관리 인터페이스에 대해 단방향 SSL/TLS를 활성화합니다. 이 절차를 사용하여 수동으로 SSL/TLS를 활성화하는 데 필요한 리소스를 구성합니다. 리소스를 수동으로 구성하면 서버 구성을 보다 쉽게 제어할 수 있습니다.
1.2. JBoss EAP에 배포된 애플리케이션에 대해 단방향 SSL/TLS 활성화 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP에 배포된 애플리케이션에 대해 단방향 SSL/TLS를 활성화하여 웹 브라우저와 같은 애플리케이션과 클라이언트 간의 통신이 안전합니다.
JBoss EAP에 배포된 애플리케이션에 대해 단방향 SSL/TLS를 활성화하려면 다음 절차를 사용하면 됩니다.
- 자동으로 생성된 자체 서명 인증서를 사용하여 애플리케이션에 대해 SSL/TLS 활성화: 개발 또는 테스트 환경에서만 이 절차를 사용하십시오. 이 절차에서는 구성을 수행하지 않고도 애플리케이션에 대해 SSL/TLS를 빠르게 활성화하는 데 도움이 됩니다.
- 마법사 를 사용하여 JBoss EAP에 배포된 애플리케이션에 대해 단방향 SSL/TLS를 활성화합니다. CLI 기반 마법사 를 사용하여 SSL/TLS를 신속하게 설정하려면 이 절차를 사용하십시오. Elytron은 마법사 입력을 기반으로 필요한 리소스를 만듭니다.
- 하위 시스템 명령을 사용하여 애플리케이션에 대해 단방향 SSL/TLS 활성화: 이 방법을 사용하여 수동으로 SSL/TLS를 활성화하는 데 필요한 리소스를 구성합니다. 리소스를 수동으로 구성하면 서버 구성을 보다 쉽게 제어할 수 있습니다.
또한 보안 명령을 사용하여 애플리케이션에 SSL/TLS 비활성화 절차를 사용하여 JBoss EAP에 배포된 애플리케이션의 SSL/TLS를 비활성화 할 수 있습니다.
1.2.1. Elytron의 기본 SSL 컨텍스트 링크 복사링크가 클립보드에 복사되었습니다!
개발자가 애플리케이션에 대한 단방향 SSL/TLS를 빠르게 설정할 수 있도록 elytron 하위 시스템에는 기본적으로 개발 또는 테스트 환경에서 사용할 준비가 된 단방향 SSL/TLS가 포함되어 있습니다.
기본적으로 다음 리소스가 제공됩니다.
-
applicationKS라는키 저장소입니다. -
키
저장소를 참조하는.applicationKM이라는key-manager -
key-manager를 참조하는applicationSSC라는server-ssl-context.
기본 TLS 구성
기본 key-manager 인applicationKM 에는 localhost 값이 있는 generate-self-signed-certificate-host 속성이 포함되어 있습니다. generate-self-signed-certificate-host 속성은 이 key-manager 가 서버의 인증서를 가져오는 데 사용될 때 키 저장소를 백업하는 파일이 존재하지 않는 경우 키 관리자가 공통 이름으로 localhost 를 사용하여 자체 서명 인증서를 자동으로 생성해야 함을 나타냅니다. 생성된 자체 서명 인증서는 키 저장소를 백업하는 파일에 저장됩니다.
서버가 설치될 때 기본 키 저장소를 백업하는 파일이 존재하지 않으므로 서버에 https 요청을 전송하면 자체 서명된 인증서가 생성되고 애플리케이션에 대해 단방향 SSL/TLS를 활성화합니다. 자세한 내용은 자동으로 생성된 자체 서명 인증서를 사용하여 애플리케이션에 대해 SSL/TLS 활성화를 참조하십시오.
1.2.2. 자동으로 생성된 자체 서명 인증서를 사용하여 애플리케이션에 SSL/TLS 활성화 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP는 서버가 HTTPS 요청을 처음 수신할 때 자체 서명된 인증서를 자동으로 생성합니다. elytron 하위 시스템에는 기본적으로 개발 또는 테스트 환경에서 사용할 준비가 된 키 저장소,key-manager, server-ssl-context 리소스도 포함되어 있습니다. 따라서 JBoss EAP가 자체 서명된 인증서를 생성하는 즉시 인증서를 사용하여 애플리케이션이 보호됩니다.
프로덕션 환경에서는 자체 서명된 인증서를 사용하지 마십시오. CA(인증 기관)에서 서명한 인증서만 사용합니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
포트
8443에서 서버 URL로 이동합니다(예: https://localhost:8443 ).JBoss EAP는 이 요청을 수신할 때 자체 서명된 인증서를 생성합니다. 이 인증서에 대한 자세한 내용은 서버 로그를 볼 수 있습니다.
생성된 인증서가 자체 서명되므로 브라우저에서 연결에 비보안으로 플래그를 지정합니다.
검증
브라우저와 서버 로그의 인증서와 제공되는 인증서 JBoss EAP를 비교합니다.
서버 로그 예
17:50:24,086 WARN [org.wildfly.extension.elytron] (default task-1) WFLYELY01085: Generated self-signed certificate at /home/user1/Downloads/wildflies/wildfly-27.0.1.Final/standalone/configuration/application.keystore. Please note that self-signed certificates are not secure and should only be used for testing purposes. Do not use this self-signed certificate in production. SHA-1 fingerprint of the generated key is 11:2f:e7:8c:18:b7:2c:c1:b0:5a:ad:ea:83:e0:32:59:ba:73:91:e2 SHA-256 fingerprint of the generated key is b2:a4:ed:b0:5c:c2:a1:4c:ca:39:03:e8:3a:11:e4:c5:c4:81:9d:46:97:7c:e6:6f:0c:45:f6:5d:64:3f:0d:64
17:50:24,086 WARN [org.wildfly.extension.elytron] (default task-1) WFLYELY01085: Generated self-signed certificate at /home/user1/Downloads/wildflies/wildfly-27.0.1.Final/standalone/configuration/application.keystore. Please note that self-signed certificates are not secure and should only be used for testing purposes. Do not use this self-signed certificate in production. SHA-1 fingerprint of the generated key is 11:2f:e7:8c:18:b7:2c:c1:b0:5a:ad:ea:83:e0:32:59:ba:73:91:e2 SHA-256 fingerprint of the generated key is b2:a4:ed:b0:5c:c2:a1:4c:ca:39:03:e8:3a:11:e4:c5:c4:81:9d:46:97:7c:e6:6f:0c:45:f6:5d:64:3f:0d:64Copy to Clipboard Copied! Toggle word wrap Toggle overflow 브라우저에 제공된 인증서 예
SHA-256 Fingerprint B2 A4 ED B0 5C C2 A1 4C CA 39 03 E8 3A 11 E4 C5 C4 81 9D 46 97 7C E6 6F 0C 45 F6 5D 64 3F 0D 64 SHA-1 Fingerprint 11 2F E7 8C 18 B7 2C C1 B0 5A AD EA 83 E0 32 59 BA 73 91 E2
SHA-256 Fingerprint B2 A4 ED B0 5C C2 A1 4C CA 39 03 E8 3A 11 E4 C5 C4 81 9D 46 97 7C E6 6F 0C 45 F6 5D 64 3F 0D 64 SHA-1 Fingerprint 11 2F E7 8C 18 B7 2C C1 B0 5A AD EA 83 E0 32 59 BA 73 91 E2Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 예와 같이 지문이 일치하는 경우 페이지로 이동할 수 있습니다.
애플리케이션에 대해 SSL/TLS가 활성화되어 있습니다.
1.2.3. 마법사를 사용하여 JBoss EAP에 배포된 애플리케이션에 대해 단방향 SSL/TLS 활성화 링크 복사링크가 클립보드에 복사되었습니다!
Elytron은 SSL/TLS를 신속하게 설정하는 마법사를 제공합니다. 인증서가 포함된 기존 키 저장소를 사용하거나 마법사에서 생성한 키 저장소 및 자체 서명 인증서를 사용하여 SSL/TLS를 활성화할 수 있습니다. --lets-encrypt 옵션을 사용하여 Let's Encrypt 인증 기관에서 인증서를 확보하고 사용할 수도 있습니다. Let's Encrypt에 대한 자세한 내용은 Let's Encrypt 설명서를 참조하십시오.
마법사에서 생성하는 자체 서명된 인증서를 사용하여 테스트 및 개발을 위해서만 SSL/TLS를 활성화합니다. 프로덕션 환경의 경우 항상 CA(인증 기관) 서명 인증서를 사용합니다.
프로덕션 환경에서는 자체 서명된 인증서를 사용하지 마십시오. CA(인증 기관)에서 서명한 인증서만 사용합니다.
마법사는 애플리케이션에 대해 SSL/TLS를 활성화하는 데 필요한 다음 리소스를 구성합니다.
-
key-store -
key-manager -
server-ssl-context -
그런 다음
server-ssl-context가https-listener에 적용됩니다.
Elytron은 각 리소스의 이름을 resource-type-UUID 로 지정합니다. 예를 들어 키 저장소-9e35a3be-62bb-4fff-afc2-2d8d141b82bc입니다. UUID(Universally unique identifier)는 리소스의 이름 충돌을 방지하는 데 도움이 됩니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
관리 CLI에 다음 명령을 입력하여 애플리케이션의 단방향 SSL/TLS를 구성하려면 마법사를 시작합니다.
구문
security enable-ssl-http-server --interactive
security enable-ssl-http-server --interactiveCopy to Clipboard Copied! Toggle word wrap Toggle overflow 메시지가 표시되면 필요한 정보를 입력합니다.
Let's Encrypt 인증 기관에서 인증서를 가져오고 사용하려면
--lets-encrypt옵션을 사용합니다.server-ssl-context가 이미 존재하는 경우 마법사는 다음 메시지와 함께 종료됩니다.An SSL server context already exists on the HTTPS listener, use --override-ssl-context option to overwrite the existing SSL context
An SSL server context already exists on the HTTPS listener, use --override-ssl-context option to overwrite the existing SSL contextCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고elytron하위 시스템에는 기본적으로 이미 구성된server-ssl-context리소스가 포함되어 있습니다. 따라서 새로 설치한 후 마법사를 처음 시작할 때--override-ssl-context옵션을 사용해야 합니다.자세한 내용은 Elytron의 기본 SSL 컨텍스트를 참조하십시오.
기존
server-ssl-context를 재정의하면 Elytron은 마법사에서 생성한server-ssl-context를 사용하여 SSL을 활성화합니다.참고단방향 SSL/TLS를 활성화하려면 SSL 상호 인증을 활성화하라는 메시지가 표시되면
n또는 blank를 입력합니다. 상호 인증을 설정하면 양방향 SSL/TLS가 활성화됩니다.마법사 시작 예
security enable-ssl-http-server --interactive --override-ssl-context
security enable-ssl-http-server --interactive --override-ssl-contextCopy to Clipboard Copied! Toggle word wrap Toggle overflow 마법사 프롬프트에 대한 입력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow y를 입력하면 서버는 다음 출력으로 다시 로드됩니다.Server reloaded. SSL enabled for default-server ssl-context is ssl-context-4cba6678-c464-4dcc-90ff-9295312ac395 key-manager is key-manager-4cba6678-c464-4dcc-90ff-9295312ac395 key-store is key-store-4cba6678-c464-4dcc-90ff-9295312ac395
Server reloaded. SSL enabled for default-server ssl-context is ssl-context-4cba6678-c464-4dcc-90ff-9295312ac395 key-manager is key-manager-4cba6678-c464-4dcc-90ff-9295312ac395 key-store is key-store-4cba6678-c464-4dcc-90ff-9295312ac395Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
https://localhost:8443 로 이동합니다.
자체 서명된 인증서를 사용한 경우 브라우저에서 서버에서 제공하는 인증서를 알 수 없다는 경고가 표시됩니다.
인증서를 검사하고 브라우저에 표시된 지문이 키 저장소의 인증서 지문과 일치하는지 확인합니다. 다음 명령을 사용하여 생성한 인증서를 볼 수 있습니다.
구문
/subsystem=elytron/key-store=<server_keystore_name>:read-alias(alias=<alias>)
/subsystem=elytron/key-store=<server_keystore_name>:read-alias(alias=<alias>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=key-store-4cba6678-c464-4dcc-90ff-9295312ac395:read-alias(alias="localhost")
/subsystem=elytron/key-store=key-store-4cba6678-c464-4dcc-90ff-9295312ac395:read-alias(alias="localhost")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들어 "key-store는 key-store-4cba6678-c464-4dcc-90ff-9295312ac395"와 같이 마법사 출력에서 키 저장소 이름을 가져올 수 있습니다.
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
JBoss EAP에 배포된 애플리케이션에 대해 SSL/TLS가 활성화됩니다.
1.2.4. 하위 시스템 명령을 사용하여 애플리케이션에 대해 단방향 SSL/TLS 활성화 링크 복사링크가 클립보드에 복사되었습니다!
elytron 하위 시스템 명령을 사용하여 SSL/TLS를 사용하여 JBoss EAP에 배포된 애플리케이션을 보호합니다.
테스트 및 개발 목적으로 자체 서명된 인증서를 사용할 수 있습니다. 인증서가 포함된 기존 키 저장소를 사용하거나 키 저장소 리소스를 생성할 때 Elytron에서 생성하는 키 저장소를 사용할 수 있습니다. 프로덕션 환경의 경우 항상 CA(인증 기관) 서명 인증서를 사용합니다.
프로덕션 환경에서는 자체 서명된 인증서를 사용하지 마십시오. CA(인증 기관)에서 서명한 인증서만 사용합니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
인증서를 저장하도록 키 저장소를 구성합니다.
예를 들어 CA 서명 인증서가 포함된 키 저장소의 경로를 제공하거나 생성할 키 저장소의 경로를 제공할 수 있습니다.
/subsystem=elytron/key-store=<keystore_name>:add(path=<path_to_keystore>, credential-reference=<credential_reference>, type=<keystore_type>)
/subsystem=elytron/key-store=<keystore_name>:add(path=<path_to_keystore>, credential-reference=<credential_reference>, type=<keystore_type>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleKeyStore:add(path=exampleserver.keystore.pkcs12, relative-to=jboss.server.config.dir,credential-reference={clear-text=secret},type=PKCS12)/subsystem=elytron/key-store=exampleKeyStore:add(path=exampleserver.keystore.pkcs12, relative-to=jboss.server.config.dir,credential-reference={clear-text=secret},type=PKCS12)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 키 저장소에 인증서가 포함되어 있지 않거나 위의 단계를 사용하여 키 저장소를 생성한 경우 인증서를 생성하고 인증서를 파일에 저장해야 합니다.
키 저장소에 키 쌍을 생성합니다.
구문
/subsystem=elytron/key-store=<keystore_name>:generate-key-pair(alias=<keystore_alias>,algorithm=<algorithm>,key-size=<key_size>,validity=<validity_in_days>,credential-reference=<credential_reference>,distinguished-name="<distinguished_name>")
/subsystem=elytron/key-store=<keystore_name>:generate-key-pair(alias=<keystore_alias>,algorithm=<algorithm>,key-size=<key_size>,validity=<validity_in_days>,credential-reference=<credential_reference>,distinguished-name="<distinguished_name>")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleKeyStore:generate-key-pair(alias=localhost,algorithm=RSA,key-size=2048,validity=365,credential-reference={clear-text=secret},distinguished-name="CN=localhost")/subsystem=elytron/key-store=exampleKeyStore:generate-key-pair(alias=localhost,algorithm=RSA,key-size=2048,validity=365,credential-reference={clear-text=secret},distinguished-name="CN=localhost")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인증서를 파일에 저장합니다.
구문
/subsystem=elytron/key-store=<keystore_name>:store()
/subsystem=elytron/key-store=<keystore_name>:store()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleKeyStore:store()
/subsystem=elytron/key-store=exampleKeyStore:store()Copy to Clipboard Copied! Toggle word wrap Toggle overflow
키
저장소를참조하는key-manager를 구성합니다.구문
/subsystem=elytron/key-manager=<key-manager_name>:add(key-store=<key-store_name>,credential-reference=<credential_reference>)
/subsystem=elytron/key-manager=<key-manager_name>:add(key-store=<key-store_name>,credential-reference=<credential_reference>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-manager=exampleKeyManager:add(key-store=exampleKeyStore,credential-reference={clear-text=secret})/subsystem=elytron/key-manager=exampleKeyManager:add(key-store=exampleKeyStore,credential-reference={clear-text=secret})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요elytron하위 시스템은KeyManagerFactory.getDefaultAlgorithm()을 사용하여 기본적으로 알고리즘을 결정하기 때문에 Red Hat은 알고리즘 속성을 지정하지 않았습니다. 그러나 알고리즘 특성을 지정할 수 있습니다.알고리즘 특성을 지정하려면 사용 중인 Java 개발 키트(JDK)에서 제공하는 키 관리자 알고리즘을 알아야 합니다. 예를 들어, JSSE(Java Secure Socket Extension)를 사용하는 JDK는 PKIX 및 SunX509 알고리즘을 제공합니다.
명령에서 SunX509를
키-manager알고리즘 속성으로 지정할 수 있습니다.key-manager를 참조하는server-ssl-context를 구성합니다.구문
/subsystem=elytron/server-ssl-context=<server-ssl-context_name>:add(key-manager=<key-manager_name>, protocols=<list_of_protocols>)
/subsystem=elytron/server-ssl-context=<server-ssl-context_name>:add(key-manager=<key-manager_name>, protocols=<list_of_protocols>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/server-ssl-context=examplehttpsSSC:add(key-manager=exampleKeyManager, protocols=["TLSv1.2"])
/subsystem=elytron/server-ssl-context=examplehttpsSSC:add(key-manager=exampleKeyManager, protocols=["TLSv1.2"])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요지원하려는 SSL/TLS 프로토콜을 결정해야 합니다. 예제 명령은 TLSv1.2를 사용합니다.
-
TLSv1.2 및 이전 버전의 경우
cipher-suite-filter인수를 사용하여 허용되는 암호화 제품군을 지정합니다. -
TLSv1.3의 경우
cipher-suite-names인수를 사용하여 허용되는 암호화 제품군을 지정합니다. TLSv1.3은 기본적으로 비활성화되어 있습니다.protocols속성 또는 지정된 세트에 TLSv1.3이 포함된 프로토콜을 지정하지 않으면cipher-suite-names를 구성하면 TLSv1.3을 활성화합니다.
use-cipher-suites-order인수를 사용하여 서버 암호화 제품군 순서를 준수합니다.use-cipher-suites-order속성은 기본적으로true로 설정됩니다. 이는 클라이언트 암호화 제품군 순서를 준수하는 레거시 보안 하위 시스템 동작과 다릅니다.-
TLSv1.2 및 이전 버전의 경우
구성된
server-ssl-context를 사용하도록 Cryostat를 업데이트합니다.구문
/subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context, value=<server-ssl-context_name>)
/subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context, value=<server-ssl-context_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context, value=examplehttpsSSC)
/subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context, value=examplehttpsSSC)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
https://localhost:8443 로 이동합니다.
자체 서명된 인증서를 사용한 경우 브라우저에서 서버에서 제공하는 인증서를 알 수 없다는 경고가 표시됩니다.
인증서를 검사하고 브라우저에 표시된 지문이 키 저장소의 인증서 지문과 일치하는지 확인합니다. 다음 명령을 사용하여 생성한 인증서를 볼 수 있습니다.
구문
/subsystem=elytron/key-store=<server_keystore_name>:read-alias(alias=<alias>)
/subsystem=elytron/key-store=<server_keystore_name>:read-alias(alias=<alias>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleKeyStore:read-alias(alias=localhost)
/subsystem=elytron/key-store=exampleKeyStore:read-alias(alias=localhost)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
JBoss EAP에 배포된 애플리케이션에 대해 SSL/TLS가 활성화됩니다.
1.2.5. 보안 명령을 사용하여 애플리케이션의 SSL/TLS 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
보안 명령을 사용하여 JBoss EAP에 배포된 애플리케이션의 SSL/TLS를 비활성화합니다. 명령을 사용하여 SSL/TLS를 비활성화해도 Elytron 리소스는 삭제되지 않습니다. 이 명령은 서버의 ssl-context 를 기본값 applicationSSC 로 설정합니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
관리 CLI에서
보안 disable-ssl-http-server명령을 사용합니다.security disable-ssl-http-server
security disable-ssl-http-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서버는 다음 출력으로 다시 로드됩니다.
... Server reloaded. SSL disabled for default-server
... Server reloaded. SSL disabled for default-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 절차 중 하나를 사용하여 JBoss EAP에 배포된 애플리케이션에 대해 SSL/TLS를 활성화할 수 있습니다.
- 자동으로 생성된 자체 서명 인증서를 사용하여 애플리케이션에 대해 SSL/TLS 활성화: 개발 또는 테스트 환경에서만 이 절차를 사용하십시오. 이 절차에서는 구성을 수행하지 않고도 애플리케이션에 대해 SSL/TLS를 빠르게 활성화하는 데 도움이 됩니다.
- 마법사 를 사용하여 JBoss EAP에 배포된 애플리케이션에 대해 단방향 SSL/TLS를 활성화합니다. CLI 기반 마법사 를 사용하여 SSL/TLS를 신속하게 설정하려면 이 절차를 사용하십시오. Elytron은 마법사 입력을 기반으로 필요한 리소스를 만듭니다.
- 하위 시스템 명령을 사용하여 애플리케이션에 대해 단방향 SSL/TLS 활성화: 이 방법을 사용하여 수동으로 SSL/TLS를 활성화하는 데 필요한 리소스를 구성합니다. 리소스를 수동으로 구성하면 서버 구성을 보다 쉽게 제어할 수 있습니다.
2장. 관리 인터페이스 및 애플리케이션에 대해 양방향 SSL/TLS 활성화 링크 복사링크가 클립보드에 복사되었습니다!
SSL/TLS 또는 전송 계층 보안(TLS)은 네트워크를 통해 통신하는 두 엔티티 간에 데이터 전송을 보호하는 데 사용되는 인증서 기반 보안 프로토콜입니다. 서버가 신뢰할 수 있는 클라이언트에만 연결하려는 경우 양방향 SSL/TLS를 사용합니다.
양방향 SSL/TLS는 다음과 같은 보안 기능을 제공합니다.
- 인증
- 단방향 SSL/TLS에서 서버는 자체적으로 인증하기 위해 클라이언트에 인증서를 제공합니다. 양방향 SSL/TLS에서 클라이언트는 클라이언트를 인증하기 위해 서버에 인증서도 제공합니다. 따라서 양방향 SSL/TLS는 상호 인증이라고도 합니다.
- 기밀성
- 클라이언트와 서버 간에 전송된 데이터는 암호화됩니다.
- 데이터 무결성
-
TLS 프로토콜은 메시지 인증 코드(MAC) 계산에 사용되는 보안 해시 함수로 데이터 무결성을 제공합니다. SSL 컨텍스트 리소스의
cipher-suite-filter및cipher-suite-names속성을 사용하여 연결에 특정 알고리즘 및 해시 함수를 적용할 수 있습니다.
자세한 내용은 server-ssl-context 특성을 참조하십시오.
양방향 SSL/TLS를 사용하여 JBoss EAP 관리 인터페이스와 배포된 애플리케이션을 모두 보호할 수 있습니다.
양방향 SSL/TLS를 사용하여 관리 인터페이스를 보호하려면 다음 절차를 사용하십시오.
- 클라이언트의 CA(인증 기관)에서 인증서를 가져옵니다. 또는 프로덕션 환경 이외의 환경의 경우 절차에 따라 자체 서명된 인증서를 생성할 수 있습니다. 클라이언트 인증서 생성.
- 클라이언트 인증서에 대한 신뢰 저장소 및 신뢰 관리자 구성
- 양방향 SSL/TLS에 대한 서버 인증서를 구성합니다.
- SSL/TLS를 사용하여 JBoss EAP 관리 인터페이스를 보호하도록 SSL 컨텍스트 구성
양방향 SSL/TLS를 사용하여 JBoss EAP에 배포된 애플리케이션을 보호하려면 다음 절차를 사용하십시오.
- 클라이언트의 CA(인증 기관)에서 인증서를 가져옵니다. 또는 프로덕션 환경 이외의 환경의 경우 절차에 따라 자체 서명된 인증서를 생성할 수 있습니다. 클라이언트 인증서 생성.
- 클라이언트 인증서에 대한 신뢰 저장소 및 신뢰 관리자 구성
- 양방향 SSL/TLS에 대한 서버 인증서 구성
- SSL/TLS를 사용하여 JBoss EAP에 배포된 애플리케이션을 보호하도록 SSL 컨텍스트 구성
Elytron에서 인증서 취소 검사 구성 절차에 따라 인증서 취소 검사를 구성할 수 있습니다.
2.1. 클라이언트 인증서 생성 링크 복사링크가 클립보드에 복사되었습니다!
양방향 SSL/TLS 구성을 테스트하고 개발하기 위해 CLI에서 keytool 명령을 사용하여 자체 서명된 클라이언트 인증서를 생성합니다.
프로덕션 환경에서는 자체 서명된 인증서를 사용하지 마십시오. CA(인증 기관)에서 서명한 인증서만 사용합니다.
프로세스
클라이언트 인증서를 생성합니다.
구문
keytool -genkeypair -alias <keystore_alias> -keyalg <algorithm> -keysize <key_size> -validity <validity_in_days> -keystore <keystore_name> -dname "<distinguished_name>" -keypass <private_key_password> -storepass <keystore_password>
$ keytool -genkeypair -alias <keystore_alias> -keyalg <algorithm> -keysize <key_size> -validity <validity_in_days> -keystore <keystore_name> -dname "<distinguished_name>" -keypass <private_key_password> -storepass <keystore_password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
keytool -genkeypair -alias exampleClientKeyStore -keyalg RSA -keysize 2048 -validity 365 -keystore exampleclient.keystore.pkcs12 -dname "CN=client" -keypass secret -storepass secret
$ keytool -genkeypair -alias exampleClientKeyStore -keyalg RSA -keysize 2048 -validity 365 -keystore exampleclient.keystore.pkcs12 -dname "CN=client" -keypass secret -storepass secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow 클라이언트 인증서를 파일로 내보냅니다.
구문
keytool -exportcert -keystore <keystore_name> -alias <keystore_alias> -keypass <private_key_password> -storepass <keystore_password> -file <file_path>
$ keytool -exportcert -keystore <keystore_name> -alias <keystore_alias> -keypass <private_key_password> -storepass <keystore_password> -file <file_path>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
keytool -exportcert -keystore exampleclient.keystore.pkcs12 -alias exampleClientKeyStore -keypass secret -storepass secret -file EAP_HOME/standalone/configuration/client.cer Certificate stored in file <EAP_HOME/standalone/configuration/client.cer>
$ keytool -exportcert -keystore exampleclient.keystore.pkcs12 -alias exampleClientKeyStore -keypass secret -storepass secret -file EAP_HOME/standalone/configuration/client.cer Certificate stored in file <EAP_HOME/standalone/configuration/client.cer>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이제 생성된 클라이언트 인증서를 사용하여 서버에서 서버 신뢰 저장소 및 신뢰 관리자를 구성할 수 있습니다. 자세한 내용은 클라이언트 인증서에 대한 신뢰 저장소 구성 및 신뢰 관리자를 참조하십시오.
2.2. 클라이언트 인증서에 대한 신뢰 저장소 및 신뢰 관리자 구성 링크 복사링크가 클립보드에 복사되었습니다!
클라이언트 인증서 및 신뢰 관리자를 사용하여 신뢰 저장소에 대한 참조가 있는 신뢰 저장소를 구성하여 TLS 핸드셰이크 중에 클라이언트 인증서를 확인합니다.
사전 요구 사항
클라이언트 인증서를 얻거나 생성했습니다.
자세한 내용은 클라이언트 인증서 생성을 참조하십시오.
- JBoss EAP가 실행 중입니다.
프로세스
관리 CLI를 사용하여 클라이언트 인증서로 신뢰 저장소를 구성합니다.
신뢰할 클라이언트 인증서를 저장할 서버 신뢰 저장소를 생성합니다.
구문
/subsystem=elytron/key-store=<server_trust_store_name>:add(path=<path_to_server_trust_store_file>,credential-reference={<password>})/subsystem=elytron/key-store=<server_trust_store_name>:add(path=<path_to_server_trust_store_file>,credential-reference={<password>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleServerTrustStore:add(path=exampleTLSServer.truststore,relative-to=jboss.server.config.dir,credential-reference={clear-text=secret}) {"outcome" => "success"}/subsystem=elytron/key-store=exampleServerTrustStore:add(path=exampleTLSServer.truststore,relative-to=jboss.server.config.dir,credential-reference={clear-text=secret}) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클라이언트 인증서 별칭을 지정하여 클라이언트 인증서를 서버 신뢰 저장소로 가져옵니다. 서버의 신뢰 저장소가 신뢰하는 인증서를 제공하는 클라이언트만 서버에 연결할 수 있습니다.
참고자체 서명된 인증서를 사용하여 양방향 SSL/TLS를 구성하는 경우 인증서에 대한 신뢰 체인이 없으므로
validate를false로 설정합니다.CA에서 서명한 인증서를 사용하여 프로덕션 환경에서 양방향 SSL/TLS를 구성하려면
validate를true로 설정합니다.구문
/subsystem=elytron/key-store=<server_trust_store_name>:import-certificate(alias=<alias>,path=<certificate_file>,credential-reference={<password>},trust-cacerts=<true_or_false>,validate=<true_false>)/subsystem=elytron/key-store=<server_trust_store_name>:import-certificate(alias=<alias>,path=<certificate_file>,credential-reference={<password>},trust-cacerts=<true_or_false>,validate=<true_false>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleServerTrustStore:import-certificate(alias=client,path=client.cer,relative-to=jboss.server.config.dir,credential-reference={clear-text=serverTrustSecret},trust-cacerts=true,validate=false) {"outcome" => "success"}/subsystem=elytron/key-store=exampleServerTrustStore:import-certificate(alias=client,path=client.cer,relative-to=jboss.server.config.dir,credential-reference={clear-text=serverTrustSecret},trust-cacerts=true,validate=false) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클라이언트 인증서를 신뢰 저장소 파일로 내보냅니다.
구문
/subsystem=elytron/key-store=<server_trust_store_name>:store()
/subsystem=elytron/key-store=<server_trust_store_name>:store()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleServerTrustStore:store() { "outcome" => "success", "result" => undefined }/subsystem=elytron/key-store=exampleServerTrustStore:store() { "outcome" => "success", "result" => undefined }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
TLS 핸드셰이크 중에 클라이언트 인증서를 확인하도록 신뢰 관리자를 구성합니다.
구문
/subsystem=elytron/trust-manager=<trust_manager_name>:add(key-store=<server_trust_store_name>)
/subsystem=elytron/trust-manager=<trust_manager_name>:add(key-store=<server_trust_store_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/trust-manager=exampleTLSTrustManager:add(key-store=exampleServerTrustStore) {"outcome" => "success"}/subsystem=elytron/trust-manager=exampleTLSTrustManager:add(key-store=exampleServerTrustStore) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
구성된 신뢰 저장소의 클라이언트 인증서는 TLS 핸드셰이크 중에 클라이언트가 서버와 제공하는 인증서를 확인하는 데 사용됩니다.
2.3. 양방향 SSL/TLS에 대한 서버 인증서 구성 링크 복사링크가 클립보드에 복사되었습니다!
TLS 핸드셰이크 중에 클라이언트에 제공될 서버 인증서를 구성합니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
프로세스
테스트 및 개발을 위해 사용할 자체 서명된 서버 인증서를 생성합니다. CA(인증 기관)에서 인증서를 가져온 경우 이 단계를 건너뜁니다.
중요프로덕션 환경에서는 자체 서명된 인증서를 사용하지 마십시오. CA(인증 기관)에서 서명한 인증서만 사용합니다.
서버 인증서를 저장할 키 저장소를 생성합니다.
구문
/subsystem=elytron/key-store=<key_store_name>:add(path=<path>,credential-reference={<password>},type=<key_store_type>)/subsystem=elytron/key-store=<key_store_name>:add(path=<path>,credential-reference={<password>},type=<key_store_type>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleServerKeyStore:add(path=server.keystore.pkcs12,relative-to=jboss.server.config.dir,credential-reference={clear-text=secret},type=PKCS12) {"outcome" => "success"}/subsystem=elytron/key-store=exampleServerKeyStore:add(path=server.keystore.pkcs12,relative-to=jboss.server.config.dir,credential-reference={clear-text=secret},type=PKCS12) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 키 저장소에 서버 인증서를 생성합니다.
구문
/subsystem=elytron/key-store=<key_store_name>:generate-key-pair(alias=<alias>,algorithm=<algorithm>,key-size=<key_size>,validity=<validaity_in_days>,credential-reference={<password>},distinguished-name="<distinguished_name_in_certificate>")/subsystem=elytron/key-store=<key_store_name>:generate-key-pair(alias=<alias>,algorithm=<algorithm>,key-size=<key_size>,validity=<validaity_in_days>,credential-reference={<password>},distinguished-name="<distinguished_name_in_certificate>")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleServerKeyStore:generate-key-pair(alias=localhost,algorithm=RSA,key-size=2048,validity=365,credential-reference={clear-text=secret},distinguished-name="CN=localhost") {"outcome" => "success"}/subsystem=elytron/key-store=exampleServerKeyStore:generate-key-pair(alias=localhost,algorithm=RSA,key-size=2048,validity=365,credential-reference={clear-text=secret},distinguished-name="CN=localhost") {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 키 저장소를 파일에 저장합니다.
구문
/subsystem=elytron/key-store=<key_store_name>:store()
/subsystem=elytron/key-store=<key_store_name>:store()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleServerKeyStore:store() { "outcome" => "success", "result" => undefined }/subsystem=elytron/key-store=exampleServerKeyStore:store() { "outcome" => "success", "result" => undefined }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 인증서를 내보냅니다.
구문
/subsystem=elytron/key-store=<key_store_name>:export-certificate(alias=<alias>,path=<path_to_certificate>,pem=true)
/subsystem=elytron/key-store=<key_store_name>:export-certificate(alias=<alias>,path=<path_to_certificate>,pem=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleServerKeyStore:export-certificate(alias=localhost,path=server.cer,pem=true,relative-to=jboss.server.config.dir) {"outcome" => "success"}/subsystem=elytron/key-store=exampleServerKeyStore:export-certificate(alias=localhost,path=server.cer,pem=true,relative-to=jboss.server.config.dir) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
서버 키 저장소를 참조하는 키 관리자를 생성합니다.
구문
/subsystem=elytron/key-manager=<key_manager_name>:add(credential-reference={<password>},key-store=<key_store_name>)/subsystem=elytron/key-manager=<key_manager_name>:add(credential-reference={<password>},key-store=<key_store_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-manager=exampleServerKeyManager:add(credential-reference={clear-text=secret},key-store=exampleServerKeyStore) {"outcome" => "success"}/subsystem=elytron/key-manager=exampleServerKeyManager:add(credential-reference={clear-text=secret},key-store=exampleServerKeyStore) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow SSL/TLS가 활성화된 경우 서버는 이 인증서를 클라이언트에 제공합니다.
클라이언트가 SSL 핸드셰이크 중에 서버 인증서를 확인할 수 있도록 서버 인증서를 클라이언트의 신뢰 저장소로 가져옵니다.
구문
keytool -import -file <server_certificate_file> -alias <alias> -keystore <client_trust_store_file> -storepass <password>
$ keytool -import -file <server_certificate_file> -alias <alias> -keystore <client_trust_store_file> -storepass <password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow yes를 입력합니다. 다음 출력이 표시됩니다.Certificate was added to keystore
Certificate was added to keystoreCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4. SSL/TLS를 사용하여 JBoss EAP 관리 인터페이스를 보호하도록 SSL 컨텍스트 구성 링크 복사링크가 클립보드에 복사되었습니다!
서버에서 신뢰하는 인증서를 제공하는 클라이언트만 서버의 관리 인터페이스에 연결할 수 있도록 양방향 SSL/TLS를 사용하여 JBoss EAP 관리 인터페이스를 보호합니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
클라이언트 인증서에 대한 서버 신뢰 저장소 및 신뢰 관리자를 구성했습니다.
서버 인증서를 구성했습니다.
자세한 내용은 SSL/TLS용 서버 인증서 구성을참조하십시오.
프로세스
양방향 SSL을 사용하도록 서버 SSL 컨텍스트를 구성합니다.
구문
/subsystem=elytron/server-ssl-context=<server_ssl_context_name>:add(key-manager=<key_manager_name>,trust-manager=<trust_manager_name>,need-client-auth=true)
/subsystem=elytron/server-ssl-context=<server_ssl_context_name>:add(key-manager=<key_manager_name>,trust-manager=<trust_manager_name>,need-client-auth=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/server-ssl-context=exampleServerSSLContext:add(key-manager=exampleServerKeyManager,trust-manager=exampleTLSTrustManager,need-client-auth=true) {"outcome" => "success"}/subsystem=elytron/server-ssl-context=exampleServerSSLContext:add(key-manager=exampleServerKeyManager,trust-manager=exampleTLSTrustManager,need-client-auth=true) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로 SSL 컨텍스트는 TLSv1.2를 사용합니다. 다음과 같이 TLSv1.3을 사용하도록
protocols속성을 구성할 수 있습니다.구문
/subsystem=elytron/server-ssl-context=<server-ssl-context-name>:add(key-manager=<key_manager_name>,trust-manager=<trust_manager_name>,need-client-auth=true,protocols=[TLSv1.3])
/subsystem=elytron/server-ssl-context=<server-ssl-context-name>:add(key-manager=<key_manager_name>,trust-manager=<trust_manager_name>,need-client-auth=true,protocols=[TLSv1.3])Copy to Clipboard Copied! Toggle word wrap Toggle overflow http 관리 인터페이스에 사용할 SSLContext에 참조를 추가합니다.
구문
/core-service=management/management-interface=http-interface:write-attribute(name=ssl-context, value=<server_ssl_context_name>)
/core-service=management/management-interface=http-interface:write-attribute(name=ssl-context, value=<server_ssl_context_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow HTTPS 관리 인터페이스의 소켓에 사용할 소켓 바인딩 구성을 정의합니다.
구문
/core-service=management/management-interface=http-interface:write-attribute(name=secure-socket-binding, value=<socket_binding>)
/core-service=management/management-interface=http-interface:write-attribute(name=secure-socket-binding, value=<socket_binding>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드합니다.
reload ... Accept certificate? [N]o, [T]emporarily, [P]ermanently :
reload ... Accept certificate? [N]o, [T]emporarily, [P]ermanently :Copy to Clipboard Copied! Toggle word wrap Toggle overflow T또는P를 입력하여 서버에서 제공한 인증서를 일시적으로 또는 영구적으로 수락합니다.관리 CLI의 연결이 끊기 때문에 클라이언트 인증서가 표시됩니다.
검증
관리 콘솔이 보호되었는지 확인합니다.
CLI를 사용하여 확인합니다.
구문
curl --verbose --location --cacert <server_certificate> --cert <client_keystore>:<password> --cert-type P12 https://localhost:9993
$ curl --verbose --location --cacert <server_certificate> --cert <client_keystore>:<password> --cert-type P12 https://localhost:9993Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
curl --verbose --location --cacert server.cer --cert EAP_HOME/standalone/configuration/exampleclient.keystore.pkcs12:secret --cert-type P12 https://localhost:9993 ... < HTTP/1.1 200 OK ...
$ curl --verbose --location --cacert server.cer --cert EAP_HOME/standalone/configuration/exampleclient.keystore.pkcs12:secret --cert-type P12 https://localhost:9993 ... < HTTP/1.1 200 OK ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 브라우저를 사용하여 확인합니다.
클라이언트 인증서를 브라우저로 가져옵니다. 생성 클라이언트 인증서 프로세스에서 생성된 예제 인증서를
exampleclient.keystore.pkcs12라고 하며 이를 가져올 예제 암호는시크릿입니다.브라우저로 인증서를 가져오는 방법에 대한 정보는 브라우저 설명서를 참조하십시오.
브라우저에서
https://localhost:9993에 액세스합니다.브라우저에서 서버와 식별할 수 있는 인증서를 제공하라는 메시지를 표시합니다.
브라우저로 가져온 인증서를 선택합니다.
예:client.keystore.pkcs12.자체 서명된 인증서를 사용하는 경우 브라우저에서 서버에서 제공하는 인증서를 알 수 없다는 경고가 표시됩니다.
인증서를 검사하고 브라우저에 표시된 지문이 키 저장소의 인증서 지문과 일치하는지 확인합니다. 다음 명령을 사용하여 키 저장소에서 인증서를 볼 수 있습니다.
구문
/subsystem=elytron/key-store=<server_keystore_name>:read-alias(alias=<alias>)
/subsystem=elytron/key-store=<server_keystore_name>:read-alias(alias=<alias>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleServerKeyStore:read-alias(alias=localhost) ... "sha-1-digest" => "5e:3e:ad:c8:df:d7:f6:63:38:05:e2:a3:a7:31:07:82:c8:c8:94:47", "sha-256-digest" => "11:b6:8f:00:42:e1:7f:6c:16:ef:db:08:5e:13:d9:b8:16:6e:a0:3c:2e:d4:e5:fd:cb:53:90:88:d2:9c:b1:99",
/subsystem=elytron/key-store=exampleServerKeyStore:read-alias(alias=localhost) ... "sha-1-digest" => "5e:3e:ad:c8:df:d7:f6:63:38:05:e2:a3:a7:31:07:82:c8:c8:94:47", "sha-256-digest" => "11:b6:8f:00:42:e1:7f:6c:16:ef:db:08:5e:13:d9:b8:16:6e:a0:3c:2e:d4:e5:fd:cb:53:90:88:d2:9c:b1:99",Copy to Clipboard Copied! Toggle word wrap Toggle overflow
서버 인증서를 수락하면 로그인 인증 정보를 입력하라는 메시지가 표시됩니다. 기존 JBoss EAP 사용자의 사용자 자격 증명을 사용하여 로그인할 수 있습니다.
관리 CLI가 보호되었는지 확인합니다.
다음 콘텐츠를 사용하여
wildfly-config.xml파일을 생성합니다.예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고난독 처리를 위해 일반 텍스트 대신
key-store-clear-password요소에서 마스크된 암호를 사용할 수 있습니다.클라이언트 인증서를 제공하여 액세스 관리 CLI에 액세스합니다.
./jboss-cli.sh --controller=remote+https://127.0.0.1:9993 -Dwildfly.config.url=/path/to/wildfly-config.xml --connect
$ ./jboss-cli.sh --controller=remote+https://127.0.0.1:9993 -Dwildfly.config.url=/path/to/wildfly-config.xml --connectCopy to Clipboard Copied! Toggle word wrap Toggle overflow
클라이언트 모두 클라이언트의 웹 브라우저 및 관리 CLI, 서버의 인증서를 신뢰하고, 서버는 두 클라이언트를 신뢰합니다. 클라이언트와 서버 간의 통신은 SSL/TLS를 통해 이루어집니다.
2.5. SSL/TLS를 사용하여 JBoss EAP에 배포된 애플리케이션을 보호하도록 server-ssl-context 구성 링크 복사링크가 클립보드에 복사되었습니다!
Elytron은 SSL/TLS를 구성하는 데 사용할 수 있는 applicationSSC 라는 기본 server-ssl-context 를 제공합니다. 또는 Elytron에서 고유한 SSL 컨텍스트를 만들 수 있습니다. 다음 절차에서는 애플리케이션에 대한 SSL/TLS 구성을 위해 기본 SSL 컨텍스트인 applicationSSC 를 사용하는 방법을 보여줍니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
클라이언트 인증서에 대한 서버 신뢰 저장소 및 신뢰 관리자를 구성했습니다.
서버 인증서를 구성했습니다.
자세한 내용은 SSL/TLS용 서버 인증서 구성을참조하십시오.
프로세스
양방향 SSL을 사용하도록 기본 서버 SSL 컨텍스트를 구성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 기본적으로 SSL 컨텍스트는 TLSv1.2를 사용합니다. 다음과 같이 TLSv1.3을 사용하도록
protocols속성을 구성할 수 있습니다./subsystem=elytron/server-ssl-context=applicationSSC:write-attribute(name=protocols,value=[TLSv1.3])
/subsystem=elytron/server-ssl-context=applicationSSC:write-attribute(name=protocols,value=[TLSv1.3])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 SSL 컨텍스트에 대한 신뢰 관리자를 구성합니다.
구문
/subsystem=elytron/server-ssl-context=applicationSSC:write-attribute(name=trust-manager,value=<server_trust_manager>)
/subsystem=elytron/server-ssl-context=applicationSSC:write-attribute(name=trust-manager,value=<server_trust_manager>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 SSL 컨텍스트의 키 관리자를 구성합니다.
구문
/subsystem=elytron/server-ssl-context=applicationSSC:write-attribute(name=key-manager,value=<key_manager_name>)
/subsystem=elytron/server-ssl-context=applicationSSC:write-attribute(name=key-manager,value=<key_manager_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버를 다시 로드합니다.
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
JBoss EAP 시작 페이지에 액세스할 수 있는지 확인합니다.
CLI를 사용하여 확인합니다.
구문
curl --verbose --location --cacert <server_certificate> --cert <client_keystore>:<password> --cert-type P12 https://localhost:8443
$ curl --verbose --location --cacert <server_certificate> --cert <client_keystore>:<password> --cert-type P12 https://localhost:8443Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
curl --verbose --location --cacert server.cer --cert exampleclient.keystore.pkcs12:secret --cert-type P12 https://localhost:8443 ... <h3>Your Red Hat JBoss Enterprise Application Platform is running.</h3> ...
$ curl --verbose --location --cacert server.cer --cert exampleclient.keystore.pkcs12:secret --cert-type P12 https://localhost:8443 ... <h3>Your Red Hat JBoss Enterprise Application Platform is running.</h3> ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 브라우저를 사용하여 확인합니다.
클라이언트 인증서를 브라우저로 가져옵니다. 생성 클라이언트 인증서 프로세스에서 생성된 예제 인증서를
exampleclient.keystore.pkcs12라고 하며 이를 가져올 예제 암호는시크릿입니다.브라우저로 인증서를 가져오는 방법에 대한 정보는 브라우저 설명서를 참조하십시오.
브라우저에서
https://localhost:8443으로 이동합니다.브라우저에서 서버와 식별할 수 있는 인증서를 제공하라는 메시지를 표시합니다.
브라우저로 가져온 인증서를 선택합니다.
예:client.keystore.pkcs12.자체 서명된 인증서를 사용하는 경우 브라우저에서 서버에서 제공하는 인증서를 알 수 없다는 경고가 표시됩니다.
인증서를 검사하고 브라우저에 표시된 지문이 키 저장소의 인증서 지문과 일치하는지 확인합니다. 다음 명령을 사용하여 키 저장소에서 인증서를 볼 수 있습니다.
구문
/subsystem=elytron/key-store=<server_keystore_name>:read-alias(alias=<alias>)
/subsystem=elytron/key-store=<server_keystore_name>:read-alias(alias=<alias>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/key-store=exampleServerKeyStore:read-alias(alias=localhost) ... "sha-1-digest" => "5e:3e:ad:c8:df:d7:f6:63:38:05:e2:a3:a7:31:07:82:c8:c8:94:47", "sha-256-digest" => "11:b6:8f:00:42:e1:7f:6c:16:ef:db:08:5e:13:d9:b8:16:6e:a0:3c:2e:d4:e5:fd:cb:53:90:88:d2:9c:b1:99",
/subsystem=elytron/key-store=exampleServerKeyStore:read-alias(alias=localhost) ... "sha-1-digest" => "5e:3e:ad:c8:df:d7:f6:63:38:05:e2:a3:a7:31:07:82:c8:c8:94:47", "sha-256-digest" => "11:b6:8f:00:42:e1:7f:6c:16:ef:db:08:5e:13:d9:b8:16:6e:a0:3c:2e:d4:e5:fd:cb:53:90:88:d2:9c:b1:99",Copy to Clipboard Copied! Toggle word wrap Toggle overflow
서버 인증서를 수락하면 JBoss EAP 시작 페이지에 액세스할 수 있습니다.
이제 애플리케이션에 대해 양방향 SSL/TLS가 구성되어 있습니다.
3장. Elytron에서 인증서 취소 검사 구성 링크 복사링크가 클립보드에 복사되었습니다!
만료일 이전에 발행 CA(인증 기관)에서 해지한 인증서가 Elytron 또는 Elytron 클라이언트에서 신뢰할 수 없도록 하려면 인증서 취소 검사를 구성합니다. 인증서 해지 검사에는 CRL(Certificate Revocation Lists) 또는 OCSCSP(Online Certificate Status Protocol) 응답자 중 하나를 사용할 수 있습니다. 전체 CRL을 다운로드하지 않으려면 OCSP를 사용하십시오.
3.1. 인증서 해지 목록을 사용하여 인증서 해지 검사 구성 링크 복사링크가 클립보드에 복사되었습니다!
Elytron에서 2방향 SSL/TLS를 활성화하는 데 사용되는 Elytron 신뢰 관리자의 인증서 해지 목록(CRL)을 사용하여 인증서 해지 검사를 구성하여 만료 날짜가 Elytron에 의해 신뢰되지 않기 전에 발행 인증 기관(CA)에서 취소한 인증서를 사용하도록 합니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
신뢰 관리자가 구성되어 있습니다.
프로세스
다음 단계 중 하나를 사용하여 CRL을 사용하도록 신뢰 관리자를 구성합니다.
인증서에서 참조하는 배포 지점에서 가져온 CRL을 사용하도록 신뢰 관리자를 구성합니다.
구문
/subsystem=elytron/trust-manager=<trust_manager_name>:write-attribute(name=certificate-revocation-lists,value=[])
/subsystem=elytron/trust-manager=<trust_manager_name>:write-attribute(name=certificate-revocation-lists,value=[])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/trust-manager=exampleTLSTrustManager:write-attribute(name=certificate-revocation-lists,value=[])
/subsystem=elytron/trust-manager=exampleTLSTrustManager:write-attribute(name=certificate-revocation-lists,value=[])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인증서에서 참조하는 배포 지점에서 얻은 CRL을 재정의합니다.
구문
/subsystem=elytron/trust-manager=<trust_manager_name>:write-attribute(name=certificate-revocation-lists,value=[{path="<CRL-file-1>"},{path="<CRL-file-2>"},...,{path="<CRL-file-N>"}])/subsystem=elytron/trust-manager=<trust_manager_name>:write-attribute(name=certificate-revocation-lists,value=[{path="<CRL-file-1>"},{path="<CRL-file-2>"},...,{path="<CRL-file-N>"}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/trust-manager=exampleTLSTrustManager:write-attribute(name=certificate-revocation-lists,value=[{path="intermediate.crl.pem"}])/subsystem=elytron/trust-manager=exampleTLSTrustManager:write-attribute(name=certificate-revocation-lists,value=[{path="intermediate.crl.pem"}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow
인증서 해지 검사에 CRL을 사용하도록 신뢰 관리자를 구성합니다.
OCSP 응답자가 인증서 취소 검사를 위해 구성된 경우 신뢰 관리자에서 값이
true인ocsp.prefer-crls속성을 추가하여 인증서 해지 검사에 CRL을 사용합니다.구문
/subsystem=elytron/trust-manager=<trust_manager_name>:write-attribute(name=ocsp.prefer-crls,value="true")
/subsystem=elytron/trust-manager=<trust_manager_name>:write-attribute(name=ocsp.prefer-crls,value="true")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/trust-manager=exampleTLSTrustManager:write-attribute(name=ocsp.prefer-crls,value="true")
/subsystem=elytron/trust-manager=exampleTLSTrustManager:write-attribute(name=ocsp.prefer-crls,value="true")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 인증서 해지 검사를 위해 OCSP 응답자가 구성되지 않은 경우 구성이 완료됩니다.
3.2. Elytron에서 OCSP를 사용하여 인증서 해지 검사 구성 링크 복사링크가 클립보드에 복사되었습니다!
양방향 SSL/TLS가 인증서 취소 검사를 위해 OCSP(Online Certificate Status Protocol) 응답자를 사용하도록 하는 데 사용되는 신뢰 관리자를 구성합니다. OCSP는 RFC6960 에 정의되어 있습니다.
OCSP 응답자와 CRL이 인증서 취소 검사를 위해 구성된 경우 OCSP 응답자가 기본적으로 호출됩니다.
사전 요구 사항
- JBoss EAP가 실행 중입니다.
신뢰 관리자가 구성되어 있습니다.
프로세스
다음 단계 중 하나를 사용하여 OCSP를 사용하여 인증 취소를 위해 신뢰 관리자를 구성합니다.
인증서 해지 검사를 위해 인증서에 정의된 OCSP 응답자를 사용하도록 신뢰 관리자를 구성합니다.
구문
/subsystem=elytron/trust-manager=<trust_manager_name>:write-attribute(name=ocsp,value={})/subsystem=elytron/trust-manager=<trust_manager_name>:write-attribute(name=ocsp,value={})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/trust-manager=exampleTLSTrustManager:write-attribute(name=ocsp,value={})/subsystem=elytron/trust-manager=exampleTLSTrustManager:write-attribute(name=ocsp,value={})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인증서에 정의된 OCSP 응답자를 재정의합니다.
구문
/subsystem=elytron/trust-manager=<trust_manager_name>:write-attribute(name=ocsp.responder,value="<ocsp_responeder_url>")
/subsystem=elytron/trust-manager=<trust_manager_name>:write-attribute(name=ocsp.responder,value="<ocsp_responeder_url>")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
/subsystem=elytron/trust-manager=exampleTLSTrustManager:write-attribute(name=ocsp.responder,value="http://example.com/ocsp-responder")
/subsystem=elytron/trust-manager=exampleTLSTrustManager:write-attribute(name=ocsp.responder,value="http://example.com/ocsp-responder")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. Elytron 클라이언트에서 CRL을 사용하여 인증서 취소 검사 구성 링크 복사링크가 클립보드에 복사되었습니다!
Elytron 클라이언트의 CRL(Certificate Revocation Lists)을 사용하여 인증서 해지 검사를 구성하여 클라이언트에서 만료 날짜를 신뢰하지 않기 전에 발행 인증 기관(CA)에서 취소한 인증서를 사용하도록 합니다.
사전 요구 사항
-
Elytron 클라이언트에 대해
wildfly-config.xml파일을 생성했습니다.
프로세스
wildfly-config.xml파일의 <ssl-context> 요소에 다음 내용을 추가합니다.구문
<certificate-revocation-lists> <certificate-revocation-list path="${path_to_crl}"/> </certificate-revocation-lists><certificate-revocation-lists> <certificate-revocation-list path="${path_to_crl}"/> </certificate-revocation-lists>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
<certificate-revocation-lists> <certificate-revocation-list path="/server/ca/crl/revoked.pem"/> </certificate-revocation-lists><certificate-revocation-lists> <certificate-revocation-list path="/server/ca/crl/revoked.pem"/> </certificate-revocation-lists>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. Elytron 클라이언트에서 OCSP를 사용하여 인증서 해지 검사 구성 링크 복사링크가 클립보드에 복사되었습니다!
Elytron 클라이언트의 OCSP(Online Certificate Status Protocol)를 사용하여 인증서 해지 검사를 구성하여 클라이언트의 만료 날짜를 신뢰하지 않기 전에 발행 인증 기관(CA)에서 취소한 인증서가 있는지 확인합니다. OCSP 응답자를 사용하는 경우 전체 CRL을 다운로드할 필요가 없습니다.
사전 요구 사항
-
Elytron 클라이언트에 대해
wildfly-config.xml파일을 생성했습니다.
프로세스
wildfly-config.xml
의 <ssl-context> 요소에 다음 내용을 추가합니다.구문
<ocsp responder="${ocsp_responder_uri}" responder-certificate=”${alias_of_ocsp_responder_certificate}” responder-keystore=”${keystore_for_ocsp_responder_certificate}” /><ocsp responder="${ocsp_responder_uri}" responder-certificate=”${alias_of_ocsp_responder_certificate}” responder-keystore=”${keystore_for_ocsp_responder_certificate}” />Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예제
<ocsp />
<ocsp />Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4장. JBoss EAP 클라이언트에서 Elytron 클라이언트 기본 SSLcontext 보안 공급자 사용 링크 복사링크가 클립보드에 복사되었습니다!
JVM(Java Virtual Machine)을 사용하여 기본 SSLcontext 를 제공하기 위해 Elytron 클라이언트 구성을 사용하려면 WildFlyElytronClientDefaultSSLContextProvider 를 사용할 수 있습니다. 이 공급자를 사용하여 기본 SSLContext 를 요청할 때 클라이언트 라이브러리가 Elytron 클라이언트 구성을 자동으로 사용하도록 합니다.
4.1. Elytron 클라이언트 기본 SSL 컨텍스트 보안 공급자 링크 복사링크가 클립보드에 복사되었습니다!
Elytron 클라이언트는 Java 보안 공급자인 org.wildfly.security.auth.client.wildFlytronClientDefaultSSLContextProvider 를 제공합니다. 이 공급자를 사용하여 Java 가상 시스템(JVM) 전체 기본 SSL 컨텍스트를 등록할 수 있습니다.
WildFlyElytronClientDefaultSSLContextProvider 공급자는 다음과 같이 작동합니다.
메서드가 호출되면 공급자가 SSLContext를 인스턴스화합니다.SSLContext.getDefault()SSLContext는 다음 위치 중 하나에서 얻은 인증 컨텍스트에서 시작됩니다.- 공급자에 인수로 전달된 Elytron 클라이언트 구성 파일입니다.
파일 시스템에서
wildfly-config.xml파일을 자동으로 검색합니다. 자세한 내용은 기본 구성 접근 방식을 참조하십시오.공급자에 대한 인수로 전달된 클라이언트 구성 파일이 우선합니다.
SSLContext.getDefault()메서드를 호출하면 JVM에서 공급자가 인스턴스화한SSLContext를 반환합니다.Elytron 클라이언트에는 여러 SSL 컨텍스트가 구성될 수 있으므로 규칙이 연결에 대한 단일 SSL 컨텍스트를 선택하는 데 사용됩니다. 기본 SSL 컨텍스트는 모든 규칙과 일치하는 것입니다. 공급자는 이 기본 SSL 컨텍스트를 반환합니다.
기본 SSLContext 가 구성되지 않았거나 구성이 없는 경우 공급자는 무시됩니다.
WildFlyElytronClientDefaultSSLContextProvider 공급자를 등록할 때 코드에서 Elytron 클라이언트 API를 사용하지 않고도 SSLContext.getDefault() 메서드를 사용하는 모든 클라이언트 라이브러리는 Elytron 클라이언트 구성을 사용합니다.
공급자를 등록하려면 다음 아티팩트에 런타임 종속성을 추가해야 합니다.
-
wildfly-elytron-client -
wildfly-client-config
공급자를 프로그래밍 방식으로, 클라이언트 코드에서 등록하거나 java.security 파일에서 정적으로 등록할 수 있습니다. 등록하고 사용할 공급자를 동적으로 결정하려면 프로그래밍 방식의 등록을 사용합니다.
프로그래밍 방식으로 공급자 등록
다음과 같이 클라이언트 코드에서 프로그래밍 방식으로 공급자를 등록할 수 있습니다.
Security.insertProviderAt(new WildFlyElytronClientDefaultSSLContextProvider(CONFIG_FILE_PATH), 1);
Security.insertProviderAt(new WildFlyElytronClientDefaultSSLContextProvider(CONFIG_FILE_PATH), 1);
공급자를 정적으로 등록
다음과 같이 java.security 파일에 공급자를 등록할 수 있습니다.
security.provider.1=org.wildfly.security.auth.client.WildFlyElytronClientDefaultSSLContextProvider <CONFIG_FILE_PATH>
security.provider.1=org.wildfly.security.auth.client.WildFlyElytronClientDefaultSSLContextProvider <CONFIG_FILE_PATH>
4.2. 기본 SSL 컨텍스트를 로드하는 클라이언트 생성 예 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 Ely tron 클라이언트에서 초기화한 를 등록하는 방법을 보여줍니다. 이 예제에서는 공급자에 대한 인수로 제공된 정적 클라이언트 구성을 사용합니다.
SSLContext.getDefault() 메서드를 프로그래밍 방식으로 사용하고 사용하는 WildFlytronClientDefaultSSLContextProvider 공급자
4.2.1. JBoss EAP 클라이언트용 Maven 프로젝트 생성 링크 복사링크가 클립보드에 복사되었습니다!
JBoss EAP에 배포된 애플리케이션에 대한 클라이언트를 생성하려면 필요한 종속성과 디렉터리 구조가 포함된 Maven 프로젝트를 생성합니다.
사전 요구 사항
- Maven이 설치되어 있어야 합니다. 자세한 내용은 Apache Maven 다운로드를 참조하십시오.
프로세스
mvn명령을 사용하여 Maven 프로젝트를 설정합니다. 명령은 프로젝트에 대한 디렉터리 구조와pom.xml구성 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 애플리케이션 루트 디렉터리로 이동합니다.
cd client-ssl-context
$ cd client-ssl-contextCopy to Clipboard Copied! Toggle word wrap Toggle overflow 생성된
pom.xml파일의 내용을 다음 텍스트로 바꿉니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow src/test디렉토리를 삭제합니다.rm -rf src/test/
$ rm -rf src/test/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
애플리케이션 루트 디렉터리에 다음 명령을 입력합니다.
mvn install
$ mvn installCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 유사한 출력이 표시됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.2. 기본 SSLContext를 로드하는 클라이언트 생성 링크 복사링크가 클립보드에 복사되었습니다!
SSLContext.getDefault() 메서드를 사용하여 SSLContext 를 로드하는 JBoss EAP에 배포된 애플리케이션에 대한 클라이언트를 생성합니다.
이 절차에서 < ;application_home >은 애플리케이션의 pom.xml 구성 파일이 포함된 디렉터리를 나타냅니다.
사전 요구 사항
양방향 TLS를 사용하여 JBoss EAP에 배포된 애플리케이션을 보호했습니다.
이렇게 하려면 다음 절차를 따르십시오.
Maven 프로젝트를 생성했습니다.
자세한 내용은 JBoss EAP 클라이언트에 대한 Maven 프로젝트 생성 을 참조하십시오.
- JBoss EAP가 실행 중입니다.
프로세스
Java 파일을 저장할 디렉터리를 만듭니다.
mkdir -p <application_home>/src/main/java/com/example/client
$ mkdir -p <application_home>/src/main/java/com/example/clientCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 디렉터리로 이동합니다.
cd <application_home>/src/main/java/com/example/client
$ cd <application_home>/src/main/java/com/example/clientCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 콘텐츠를 사용하여 Java 파일
App.java를 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow <
application_home> /src디렉터리에 "wildfly-config-two-way-tls.xml"이라는 클라이언트 구성 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 위치 소유자 값을 실제 경로로 바꿉니다.
- ${path_to_client_truststore}
- ${path_to_client_keystore}
검증
- < application_home> 디렉터리 로 이동합니다.
애플리케이션을 실행합니다.
mvn compile exec:java
$ mvn compile exec:javaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
INFO: ELY00001: WildFly Elytron version 2.0.0.Final-redhat-00001 SSL Default SSLContext is: WildFlyElytronClientDefaultSSLContextProvider
INFO: ELY00001: WildFly Elytron version 2.0.0.Final-redhat-00001 SSL Default SSLContext is: WildFlyElytronClientDefaultSSLContextProviderCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5장. reference 링크 복사링크가 클립보드에 복사되었습니다!
5.1. key-manager 속성 링크 복사링크가 클립보드에 복사되었습니다!
해당 속성을 설정하여 key-manager 를 구성할 수 있습니다.
| 속성 | 설명 |
|---|---|
| 알고리즘 |
기본 |
| alias-filter | 키 저장소에서 반환된 별칭에 적용할 필터입니다. 이 목록은 쉼표로 구분된 별칭 목록을 사용하여 반환하거나 다음 형식 중 하나일 수 있습니다.
|
| credential-reference |
키 저장소 항목의 암호를 해독하기 위한 인증 정보 참조입니다. 이는 일반 텍스트로 지정하거나 인증 정보 |
| generate-self-signed-certificate-host | 키 저장소를 백업하는 파일이 존재하지 않고 이 속성이 설정되면 지정된 호스트 이름에 대한 자체 서명된 인증서가 생성됩니다. 프로덕션 환경에서 이 속성을 설정하지 마십시오. |
| key-store |
기본 |
| provider-name |
기본 |
| 공급자 |
기본 |
5.2. key-store 속성 링크 복사링크가 클립보드에 복사되었습니다!
해당 속성을 설정하여 키 저장소를 구성할 수 있습니다.
| 속성 | 설명 |
|---|---|
| alias-filter | 키 저장소에서 반환된 별칭에 적용되는 필터는 쉼표로 구분된 별칭 목록 중 하나 또는 다음 형식 중 하나일 수 있습니다.
참고
|
| credential-reference |
키 저장소에 액세스하는 데 사용할 암호입니다. 이는 일반 텍스트로 지정하거나 인증 정보 |
| path | 키 저장소 파일의 경로입니다. |
| provider-name | 키 저장소를 로드하는 데 사용할 공급자의 이름입니다. 이 속성을 설정하면 지정된 유형의 키 저장소를 생성할 수 있는 첫 번째 공급자에 대한 검색이 비활성화됩니다. |
| 공급자 | 검색할 공급자 인스턴스 목록을 가져오는 데 사용해야 하는 공급자에 대한 참조입니다. 지정하지 않으면 글로벌 공급자 목록이 대신 사용됩니다. |
| relative-to |
이 저장소가 상대적인 기본 경로입니다. 이는 전체 경로이거나 |
| 필수 항목 |
|
| type |
키 저장소의 유형입니다(예: 참고 다음 키 저장소 유형이 자동으로 감지됩니다.
다른 키 저장소 유형을 수동으로 지정해야 합니다. 주요 저장소 유형의 전체 목록은 Oracle JDK 문서의 Java Cryptography Architecture Standard Algorithm Name Documentation for JDK 11 에서 확인할 수 있습니다. |
5.3. server-ssl-context 속성 링크 복사링크가 클립보드에 복사되었습니다!
해당 속성을 설정하여 서버 SSL 컨텍스트 server-ssl-context 를 구성할 수 있습니다.
| 속성 | 설명 |
|---|---|
| authentication-optional |
보안 도메인에서 클라이언트 인증서를 |
| cipher-suite-filter |
활성화된 암호화 제품군을 지정하는 데 적용할 필터입니다. 이 필터는 콜론, 쉼표 또는 공백으로 구분된 항목 목록을 사용합니다. 각 항목은 OpenSSL 스타일 암호화 제품군 이름, 표준 SSL/TLS 암호화 제품군 이름 또는 |
| cipher-suite-names | TLSv1.3에 대해 활성화된 암호화 제품군을 지정하는 데 적용할 필터입니다. |
| final-principal-transformer | 이 메커니즘 영역에 적용할 최종 주요 변환기입니다. |
| key-manager |
|
| maximum-session-cache-size | 캐시할 최대 SSL/TLS 세션 수입니다. |
| need-client-auth |
|
| post-realm-principal-transformer | 영역을 선택한 후 적용할 주요 변환기입니다. |
| pre-realm-principal-transformer | 영역을 선택하기 전에 적용할 주요 변환기입니다. |
| 프로토콜 | 활성화된 프로토콜입니다. 허용되는 옵션은 다음과 같습니다.
기본값은 enable 주의 SSLv2, SSLv3 및 TLSv1.0 대신 TLSv1.2 또는 TLSv1.3을 사용합니다. SSLv2, SSLv3 또는 TLSv1.0을 사용하면 보안 위험이 발생할 수 있으므로 명시적으로 비활성화해야 합니다.
프로토콜을 지정하지 않으면 |
| provider-name |
사용할 공급자의 이름입니다. 지정하지 않으면 공급자의 모든 |
| 공급자 |
|
| realm-mapper | SSL/TLS 인증에 사용할 영역 매퍼입니다. |
| security-domain | SSL/TLS 세션 설정 중에 인증에 사용할 보안 도메인입니다. |
| session-timeout | SSL 세션의 제한 시간(초)입니다.
값
값
기본값은 |
| trust-manager |
SSLContext 내에서 사용할 |
| use-cipher-suites-order |
|
| want-client-auth |
|
| wrap |
|
server-ssl-context 의 realm-mapper 및 principal-transformer 속성은 trust 관리자가 인증서를 확인하는 SASL EXTERNAL 메커니즘에만 적용됩니다. HTTP CLIENT-CERT 인증 설정은 http-authentication-factory 에 구성됩니다.
5.4. trust-manager 속성 링크 복사링크가 클립보드에 복사되었습니다!
신뢰 관리자 trust-manager 를 해당 특성을 설정하여 구성할 수 있습니다.
| 속성 | 설명 |
|---|---|
| 알고리즘 |
기본 |
| alias-filter | 키 저장소에서 반환된 별칭에 적용할 필터입니다. 이 목록은 쉼표로 구분된 별칭 목록을 사용하여 반환하거나 다음 형식 중 하나일 수 있습니다.
|
| certificate-revocation-list |
신뢰 관리자에서 인증서 취소 목록 검사를 활성화합니다. 이 속성을 사용하여 단일 CRL 경로만 정의할 수 있습니다. 여러 CRL 경로를 정의하려면
|
| certificate-revocation-lists |
여러 인증서 취소 목록을 사용하여 신뢰 관리자의 인증서 취소 목록 검사를 활성화합니다.
|
| key-store |
기본 |
| maximum-cert-path |
인증 경로에 존재할 수 있는 자체 발행되지 않은 중간 인증서의 최대 수입니다. 기본값은
이 속성은 JBoss EAP 7.3의 참고
|
| OCSP |
신뢰 관리자에서 온라인 인증서 상태 프로토콜(OCSP) 검사를 활성화합니다.
|
| only-leaf-cert |
리프 인증서의 취소 상태를 확인합니다. 이는 선택적 속성입니다. 기본값은 |
| provider-name |
기본 |
| 공급자 |
기본 |