8.4. Red Hat Single Sign-On 서버에 HTTPS/SSL 활성화
역방향 프록시 또는 로드 밸런서를 사용하여 HTTPS 트래픽을 처리하지 않는 경우 Red Hat Single Sign-On 서버에 대해 HTTPS를 활성화해야 합니다. 여기에는 다음이 포함됩니다.
- SSL/HTTP 트래픽을 위한 개인 키 및 인증서가 포함된 키 저장소 가져오기 또는 생성
- 이 키 쌍과 인증서를 사용하도록 Red Hat Single Sign-On 서버 구성.
8.4.1. 인증서 및 Java 키 저장소 생성 링크 복사링크가 클립보드에 복사되었습니다!
HTTPS 연결을 허용하려면 자체 서명된 인증서 또는 타사 서명된 인증서를 가져와 Red Hat Single Sign-On Server를 배포하는 웹 컨테이너에서 HTTPS를 활성화하기 전에 Java 키 저장소로 가져와야 합니다.
8.4.1.1. 자체 서명된 인증서 링크 복사링크가 클립보드에 복사되었습니다!
개발 시 Red Hat Single Sign-On 배포를 테스트하는 데 사용할 수 있는 타사 서명 인증서가 없으므로 Java JDK와 함께 제공되는 keytool 유틸리티를 사용하여 자체 서명된 인증서를 생성해야 합니다.
$ keytool -genkey -alias localhost -keyalg RSA -keystore keycloak.jks -validity 10950
Enter keystore password: secret
Re-enter new password: secret
What is your first and last name?
[Unknown]: localhost
What is the name of your organizational unit?
[Unknown]: Keycloak
What is the name of your organization?
[Unknown]: Red Hat
What is the name of your City or Locality?
[Unknown]: Westford
What is the name of your State or Province?
[Unknown]: MA
What is the two-letter country code for this unit?
[Unknown]: US
Is CN=localhost, OU=Keycloak, O=Test, L=Westford, ST=MA, C=US correct?
[no]: yes
무엇이 첫 번째이자 마지막 이름인지 질문이 표시되면 서버를 설치하는 시스템의 DNS 이름을 제공하십시오. 테스트를 위해 localhost 를 사용해야 합니다. 이 명령을 실행하면 에서 keytool 명령을 실행한 것과 동일한 디렉터리에 keycloak.jks 파일이 생성됩니다.
타사 서명 인증서를 원하지만 존재하지 않는 경우 cacert.org 에서 무료로 사용할 수 있습니다. 그러나 먼저 다음 절차를 사용해야 합니다.
절차
인증서 요청을 생성합니다.
$ keytool -certreq -alias yourdomain -keystore keycloak.jks > keycloak.careq여기서
yourdomain은 이 인증서가 생성되는 DNS 이름입니다. keytool은 요청을 생성합니다.-----BEGIN NEW CERTIFICATE REQUEST----- MIIC2jCCAcICAQAwZTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk1BMREwDwYDVQQHEwhXZXN0Zm9y ZDEQMA4GA1UEChMHUmVkIEhhdDEQMA4GA1UECxMHUmVkIEhhdDESMBAGA1UEAxMJbG9jYWxob3N0 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr7kck2TaavlEOGbcpi9c0rncY4HhdzmY Ax2nZfq1eZEaIPqI5aTxwQZzzLDK9qbeAd8Ji79HzSqnRDxNYaZu7mAYhFKHgixsolE3o5Yfzbw1 29RvyeUVe+WZxv5oo9wolVVpdSINIMEL2LaFhtX/c1dqiqYVpfnvFshZQaIg2nL8juzZcBjj4as H98gIS7khql/dkZKsw9NLvyxgJvp7PaXurX29fNf3ihG+oFrL22oFyV54BWWxXCKU/GPn61EGZGw Ft2qSIGLdctpMD1aJR2bcnlhEjZKDksjQZoQ5YMXaAGkcYkG6QkgrocDE2YXDbi7GIdf9MegVJ35 2DQMpwIDAQABoDAwLgYJKoZIhvcNAQkOMSEwHzAdBgNVHQ4EFgQUQwlZJBA+fjiDdiVzaO9vrE/i n2swDQYJKoZIhvcNAQELBQADggEBAC5FRvMkhal3q86tHPBYWBuTtmcSjs4qUm6V6f63frhveWHf PzRrI1xH272XUIeBk0gtzWo0nNZnf0mMCtUBbHhhDcG82xolikfqibZijoQZCiGiedVjHJFtniDQ 9bMDUOXEMQ7gHZg5q6mJfNG9MbMpQaUVEEFvfGEQQxbiFK7hRWU8S23/d80e8nExgQxdJWJ6vd0X MzzFK6j4Dj55bJVuM7GFmfdNC52pNOD5vYe47Aqh8oajHX9XTycVtPXl45rrWAH33ftbrS8SrZ2S vqIFQeuLL3BaHwpl3t7j2lMWcK1p80laAxEASib/fAwrRHpLHBXRcq6uALUOZl4Alt8= -----END NEW CERTIFICATE REQUEST-----이 CA 요청을 CA(인증 기관)로 보냅니다.
CA는 서명된 인증서를 발행하여 사용자에게 보냅니다.
CA의 루트 인증서를 가져와 가져옵니다.
CA(즉, root.crt)에서 인증서를 다운로드하고 다음과 같이 가져올 수 있습니다.
$ keytool -import -keystore keycloak.jks -file root.crt -alias root새 CA 생성 인증서를 키 저장소로 가져옵니다.
$ keytool -import -alias yourdomain -keystore keycloak.jks -file your-certificate.cer
8.4.2. 키 저장소를 사용하도록 Red Hat Single Sign-On 구성 링크 복사링크가 클립보드에 복사되었습니다!
이제 적절한 인증서가 있는 Java 키 저장소가 있으므로 이를 사용하도록 Red Hat Single Sign-On 설치를 구성해야 합니다. 설치에 적용되는 구성 절차를 사용합니다.
8.4.2.1. JBoss Security Legacy 링크 복사링크가 클립보드에 복사되었습니다!
절차
- 키 저장소를 사용하고 HTTPS를 활성화하도록 standalone.xml,standalone-ha.xml 또는 host.xml 파일을 편집합니다.
키 저장소 파일을 배포의 구성 디렉터리 또는 선택한 위치에 있는 파일로 이동하여 절대 경로를 제공합니다.
절대 경로를 사용하는 경우 구성에서 선택적
relative-to매개 변수를 제거합니다( 운영 모드참조).-
JBoss EAP의
bin디렉토리에sso_legacy.cli라는 배치 파일을 만듭니다. 배치 파일에 다음 내용을 추가합니다.
# Start batching commands batch /core-service=management/security-realm=UndertowRealm:add() /core-service=management/security-realm=UndertowRealm/server-identity=ssl:add(keystore-path=keycloak.jks, keystore-relative-to=jboss.server.config.dir, keystore-password=secret) /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=security-realm, value=UndertowRealm) # Run the batch commands run-batch- Red Hat Single Sign-On 서버를 시작합니다.
-
JBoss EAP의
bin디렉토리로 변경합니다. 다음 스크립트를 실행합니다.
$ sh jboss-cli.sh --connect --file=sso_legacy.cli The batch executed successfully process-state: reload-required-
sso_legacy.cli변경 사항이 적용되도록 Red Hat Single Sign-On 서버를 다시 시작합니다.
8.4.2.2. Elytron TLS v1.2 링크 복사링크가 클립보드에 복사되었습니다!
절차
-
JBoss EAP의
bin디렉토리에sso.cli라는 배치 파일을 생성합니다. 배치 파일에 다음 내용을 추가합니다.
# Start batching commands batch # Add the keystore, key manager and ssl context configuration in the elytron subsystem /subsystem=elytron/key-store=httpsKS:add(relative-to=jboss.server.config.dir,path=keycloak.jks,credential-reference={clear-text=secret},type=JKS) /subsystem=elytron/key-manager=httpsKM:add(key-store=httpsKS,credential-reference={clear-text=secret}) /subsystem=elytron/server-ssl-context=httpsSSC:add(key-manager=httpsKM,protocols=["TLSv1.2"]) # Change the undertow subsystem configuration to use the ssl context defined in the previous step for https /subsystem=undertow/server=default-server/https-listener=https:undefine-attribute(name=security-realm) /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context, value=httpsSSC) # Run the batch commands run-batch- Red Hat Single Sign-On 서버를 시작합니다.
-
JBoss EAP의
bin디렉토리로 변경합니다. 다음 스크립트를 실행합니다.
$ sh jboss-cli.sh --connect --file=sso.cli The batch executed successfully process-state: reload-required-
sso.cli변경 사항이 적용되도록 Red Hat Single Sign-On 서버를 다시 시작합니다.
TLS 구성에 대한 자세한 내용은 WildFly 문서를 참조하십시오.
8.4.2.3. Elytron TLS 1.3 링크 복사링크가 클립보드에 복사되었습니다!
절차
-
JBoss EAP의
bin디렉토리에sso.cli라는 배치 파일을 생성합니다. 배치 파일에 다음 내용을 추가합니다.
batch # Add the keystore, key manager and ssl context configuration in the elytron subsystem /subsystem=elytron/key-store=httpsKS:add(relative-to=jboss.server.config.dir,path=keycloak.jks,credential-reference={clear-text=secret},type=JKS) /subsystem=elytron/key-manager=httpsKM:add(key-store=httpsKS,credential-reference={clear-text=secret}) /subsystem=elytron/server-ssl-context=httpsSSC:add(key-manager=httpsKM,protocols=["TLSv1.3"]) /subsystem=elytron/server-ssl-context=httpsSSC:write-attribute(name=cipher-suite-names,value=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256) # Change the undertow subsystem configuration to use the ssl context defined in the previous step for https /subsystem=undertow/server=default-server/https-listener=https:undefine-attribute(name=security-realm) /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context, value=httpsSSC) # Run the batch commands run-batch- Red Hat Single Sign-On 서버를 시작합니다.
-
JBoss EAP의
bin디렉토리로 변경합니다. 다음 스크립트를 실행합니다.
$ sh jboss-cli.sh --connect --file=sso.cli The batch executed successfully process-state: reload-required-
sso.cli변경 사항이 적용되도록 Red Hat Single Sign-On 서버를 다시 시작합니다.
TLS 구성에 대한 자세한 내용은 WildFly 문서를 참조하십시오.