8.3. HTTPS/SSL 설정
Red Hat Single Sign-On은 기본적으로 SSL/HTTPS를 처리하도록 설정되어 있지 않습니다. Red Hat Single Sign-On 서버 자체에서 또는 Red Hat Single Sign-On 서버 앞에 있는 역방향 프록시에서 SSL을 활성화하는 것이 좋습니다.
이 기본 동작은 각 Red Hat Single Sign-On 영역의 SSL/HTTPS 모드로 정의됩니다. 이 내용은 서버 관리 가이드에서 자세히 설명하지만 이러한 모드에 대한 몇 가지 컨텍스트와 간략한 개요를 제공합니다.
- 외부 요청
-
Red Hat Single Sign-On은
localhost,127.0.0.1,10.x.x ,와 같은 개인 IP 주소를 고정하면 SSL 없이 즉시 실행할 수 있습니다. 서버에 SSL/HTTPS가 구성되어 있지 않거나 비개인 IP 주소에서 HTTP를 통해 Red Hat Single Sign-On에 액세스하려고 하면 오류가 발생합니다.192.168.x.x,172.16.x.x - none
- Red Hat Single Sign-On에는 SSL이 필요하지 않습니다. 이것은 실제로 사물과 함께 플레이 할 때 개발에만 사용해야합니다.
- 모든 요청
- Red Hat Single Sign-On은 모든 IP 주소에 대해 SSL이 필요합니다.
각 영역의 SSL 모드는 Red Hat Single Sign-On 관리 콘솔에서 구성할 수 있습니다.
8.3.1. Red Hat Single Sign-On 서버에 대해 SSL/HTTPS 활성화 링크 복사링크가 클립보드에 복사되었습니다!
HTTPS 트래픽을 처리하기 위해 역방향 프록시 또는 로드 밸런서를 사용하지 않는 경우 Red Hat Single Sign-On 서버에 HTTPS를 활성화해야 합니다. 여기에는 다음이 포함됩니다.
- SSL/HTTP 트래픽에 대한 개인 키 및 인증서가 포함된 키 저장소 가져오기 또는 생성
- 이 키 쌍 및 인증서를 사용하도록 Red Hat Single Sign-On 서버 구성.
8.3.1.1. 인증서 및 Java 키 저장소 생성 링크 복사링크가 클립보드에 복사되었습니다!
HTTPS 연결을 허용하려면 Red Hat Single Sign-On 서버를 배포하는 웹 컨테이너에서 HTTPS를 활성화하기 전에 자체 서명된 인증서 또는 타사 서명된 인증서를 가져와서 Java 키 저장소로 가져와야 합니다.
8.3.1.1.1. 자체 서명된 인증서 링크 복사링크가 클립보드에 복사되었습니다!
개발 중에 Red Hat Single Sign-On 배포를 테스트할 수 있는 타사 서명된 인증서가 없으므로 Java JDK와 함께 제공되는 keytool 유틸리티를 사용하여 자체 서명된 인증서를 생성해야 합니다.
What is your first and last name ? 질문이 표시되면 서버를 설치하는 시스템의 DNS 이름을 입력합니다. 테스트 목적으로 localhost 를 사용해야 합니다. 이 명령을 실행하면 에서 keytool 명령을 실행한 것과 동일한 디렉터리에 keycloak.jks 파일이 생성됩니다.
타사 서명된 인증서를 원하지만 없는 경우 cacert.org 에서 무료로 인증서를 받을 수 있습니다. 그러나 먼저 다음 절차를 사용해야 합니다.
절차
인증서 요청을 생성합니다.
keytool -certreq -alias yourdomain -keystore keycloak.jks > keycloak.careq
$ keytool -certreq -alias yourdomain -keystore keycloak.jks > keycloak.careqCopy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서
yourdomain은 이 인증서가 생성되는 DNS 이름입니다. keytool은 요청을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 CA 요청을 CA(인증 기관)로 보냅니다.
CA는 서명된 인증서를 발급하여 사용자에게 보냅니다.
CA의 루트 인증서를 가져와서 가져옵니다.
CA(즉, root.crt)에서 인증서를 다운로드하고 다음과 같이 가져올 수 있습니다.
keytool -import -keystore keycloak.jks -file root.crt -alias root
$ keytool -import -keystore keycloak.jks -file root.crt -alias rootCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 CA가 생성한 인증서를 키 저장소로 가져옵니다.
keytool -import -alias yourdomain -keystore keycloak.jks -file your-certificate.cer
$ keytool -import -alias yourdomain -keystore keycloak.jks -file your-certificate.cerCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3.1.2. 키 저장소를 사용하도록 Red Hat Single Sign-On 구성 링크 복사링크가 클립보드에 복사되었습니다!
이제 적절한 인증서가 있는 Java 키 저장소가 있으므로 이를 사용하려면 Red Hat Single Sign-On 설치를 구성해야 합니다.
절차
- keystore를 사용하고 HTTPS를 활성화하도록 standalone.xml,standalone-ha.xml 또는 host.xml 파일을 편집합니다.
키 저장소 파일을 배포의 구성/ 디렉터리로 이동하거나 선택한 위치에 있는 파일을 이동하고 절대 경로를 제공합니다.
절대 경로를 사용하는 경우 구성에서
relative-to매개변수를 제거합니다( 운영 모드참조).CLI를 사용하여 새로운
security-realm요소를 추가합니다./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)
$ /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)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 도메인 모드를 사용하는 경우 /host=<
host_name>/접두사를 사용하여 모든 호스트에서 명령을 실행해야 합니다(모두security-realm을 생성하려면). 다음은 각 호스트에 대해 반복할 예제입니다./host=<host_name>/core-service=management/security-realm=UndertowRealm/server-identity=ssl:add(keystore-path=keycloak.jks, keystore-relative-to=jboss.server.config.dir, keystore-password=secret)
$ /host=<host_name>/core-service=management/security-realm=UndertowRealm/server-identity=ssl:add(keystore-path=keycloak.jks, keystore-relative-to=jboss.server.config.dir, keystore-password=secret)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 독립 실행형 또는 호스트 구성 파일에서
security-realms요소는 다음과 같아야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
독립 실행형 또는 각 도메인 구성 파일에서
security-realm의 인스턴스를 검색합니다. 생성된 영역을 사용하도록
https-listener를 수정합니다./subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=security-realm, value=UndertowRealm)
$ /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=security-realm, value=UndertowRealm)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 도메인 모드를 사용하는 경우 /profile=<profile
_name>/과 함께 사용되는 프로필로 명령에 접두사를 붙입니다.하위 시스템 xmlns="urn:jboss:domain:undertow:12.0"의 하위 요소인 결과 요소에서는 다음 스탠자를 포함해야 합니다.server name="default-server"Copy to Clipboard Copied! Toggle word wrap Toggle overflow