Sun Java System Application Server 9.1 고가용성 관리 설명서

Sun Java System Web Server 구성

Sun Java System Web Server의 경우 Sun Java System Application Server 9.1 설치 마법사를 사용하여 로드 밸런서를 설치할 때 설치 마법사가 필요한 모든 구성을 자동으로 수행합니다. 수동 구성이 필요하지 않습니다. Application Server 9.1과 함께 제공되는 로드 밸런서 플러그인에서 지원하는 Sun Java System Web Server 버전은 다음과 같습니다.

하지만 GlassFish v2를 사용하는 경우에는 Application Server 로드 밸런서 플러그인을 http://download.java.net/javaee5/external/SunOS_X86/aslb/jars/aslb-9.1-MS4-b7.jar에서 별도로 다운로드하여 수동으로 설정해야 합니다. GlassFish v2용 플러그인의 설치 및 설정 방법에 대한 자세한 절차는 Sun Java System Application Server 9.1 Installation GuideTo Install the Load Balancing Plug-in (standalone)을 참조하십시오.

ProcedureSun Java System Web Server 구성

시작하기 전에

주 –

다음 단계는 Application Server 9.1용 설치 프로그램에 의해 자동으로 수행되지만, GlassFish v2를 사용하는 경우에는 이러한 절차를 수동으로 수행해야 합니다.


  1. 웹 서버 인스턴스의 magnus.conf파일에 다음 줄을 추가합니다.

    ##BEGIN EE LB Plug-in Parameters
    Init fn="load-modules"
    shlib="web-server-install-dir/plugins/lbplugin/bin/libpassthrough.so"
    funcs="init-passthrough,service-passthrough,name-trans-passthrough" Thread="no"
    Init fn="init-passthrough"
    ##END EE LB Plug-in Parameters=
  2. 다음 줄이 없는 경우 추가합니다.

    Init fn="load-modules" shlib=".../libj2eeplugin.so" shlib_flags="(global|now)"
  3. web-server-install-dir/config/obj.conf 파일에서 처음 나타나는 nametrans 문자열 앞에 한 줄로 다음을 삽입합니다.

    Nametrans fn="name-trans-passthrough" name="lbplugin"
    config-file="web-server-install-dir/config/loadbalancer.xml"

    NameTrans 항목이 obj.conf에 나타나는 순서는 매우 중요합니다. 설치 프로그램은 NameTrans 항목을 올바른 위치에 놓지만 다른 목적으로 obj.conf를 편집하는 경우 순서가 올바른 상태로 유지되는지 확인해야 합니다. 특히 로드 밸런서 정보가 document-root 함수 앞에 와야 합니다. obj.conf 파일에 대한 자세한 내용은 Sun Java System Web Server 7.0 Administrator’s Configuration File Reference를 참조하십시오.

  4. web-server-install-dir/config/obj.conf 파일에 다음 줄을 추가합니다.

    <Object name = "lbplugin"> 
    ObjectType fn="force-type" type="magnus-internal/lbplugin"
    PathCheck fn="deny-existence" path="*/WEB-INF/*"
    Service type="magnus-internal/lbplugin" fn="service-passthrough"
    Error reason="Bad Gateway" fn="send-error" uri="$docroot/badgateway.html"
    </Object>
  5. web-server-install-dir/start 스크립트를 편집하여 app-server-install-dir/lib/lbplugin/lib를 포함하도록 LD_LIBRARY_PATH 값을 업데이트합니다.

    app-server-install-dir/lib/lbplugin/lib 디렉토리에 로드 밸런서 플러그인에 필요한 바이너리가 포함되어 있습니다.

  6. (옵션) 새 DAS 기반 로드 밸런서 관리의 경우 SSL을 사용하도록 웹 서버를 구성합니다.

    Web Server 6.1에 대한 자세한 지침은 Sun Java System Web Server 6.1에 대해 SSL 모드에서 로드 밸런서 설정 을 참조하십시오.

    Web Server 7에 대한 자세한 지침은 Web Server 7에 대해 SSL 모드에서 로드 밸런서 설정을 참조하십시오.

  7. 웹 서버가 아직 실행 중이지 않으면 웹 서버를 시작합니다.

자동 적용을 사용하도록 Sun Java System Web Server 구성

자동 적용은 Application Server 9.1에서 제공되는 기능으로, 로드 밸런서 구성을 자동으로 웹 서버 구성 디렉토리로 전송합니다. 이 기능에 대한 자세한 내용은 자동 적용을 참조하십시오. 다음 절차에서는 이 기능을 사용하도록 Sun Java System Web Server(버전 6 및 7)를 구성하는 방법에 대해 설명합니다.

ProcedureSun Java System Web Server 6.1에 대해 SSL 모드에서 로드 밸런서 설정


주 –

로드 밸런서 플러그인의 자동 적용 기능을 사용하려는 경우에만 이 절의 단계를 수행합니다. 이 기능을 사용하면 로드 밸런서 구성을 자동으로 웹 서버 구성 디렉토리로 전송할 수 있습니다.


  1. 브라우저를 사용하여 Web Server의 관리 콘솔에 액세스하고 로그인합니다.

  2. 서버 인스턴스를 선택하고 관리를 누릅니다.

  3. 보안 탭을 누릅니다.

  4. 사용자 이름과 비밀번호를 지정하여 트러스트 데이터베이스를 초기화합니다. 이 작업은 certutil 명령 또는 GUI를 사용하여 수행할 수 있습니다. certutil 명령의 다음 옵션을 사용하여 트러스트 데이터베이스를 초기화할 수 있습니다.

    certutil -N -P  "https-instance-name-hostname-" -d .
    • certutil에서 메시지가 나타나면 키를 암호화할 비밀번호를 입력합니다. 키 암호화에 사용될 비밀번호를 입력합니다. 비밀번호는 길이가 최소 8자 이상이어야 하며 적어도 한 개의 알파벳이 아닌 문자를 포함해야 합니다.

    • 새 비밀번호를 입력하라는 메시지가 나타나면 비밀번호를 지정합니다.

  5. 다음 명령을 사용하여 샘플 로컬 인증 기관(CA)을 만듭니다.

    certutil -S -P "https-boqueron.virkki.com-boqueron-" 
    -d . -n SelfCA -s "CN=Self CA,OU=virkki.com,C=US" 
    -x -t "TC,TC,TC" -m 101 -v 99 -5
    1. 인증서 유형으로 0-7을 입력하라는 메시지가 나타나면 5(SSL CA)를 입력합니다. 프롬프트가 다시 나타나면 9를 지정합니다.

    2. “Is this a critical extension [y/n]?”라는 메시지가 나타나면 “y”를 지정합니다.

  6. 위의 샘플 CA를 사용하여 인증서를 생성합니다.

    certutil -S -P "https-instance-name-hostname-"
    -d . -n MyServerCert -s "CN=boqueron.virkki.com,C=US"
    -c SelfCA -t "u,u,u" -m 102 -v 99 -5
    1. 인증서 유형으로 0-7을 입력하라는 메시지가 나타나면 1(SSL Server)을 입력합니다. 프롬프트가 다시 나타나면 9를 지정합니다.

    2. “Is this a critical extension [y/n]?”라는 메시지가 나타나면 “y”를 지정합니다.

  7. 다음 단계의 설명에 따라 HTTPS 수신기를 만듭니다.

    1. 웹 서버의 Administration Server에 로그온합니다.

    2. 서버를 선택하고 관리를 누릅니다.

    3. 수신 소켓 추가를 누릅니다. 수신 소켓 추가 페이지에서 다음을 수행합니다.

      1. 포트 번호를 지정합니다.

      2. 이 때 서버 이름으로 서버의 정규화된 도메인 이름(FQDN)이 지정되어야 합니다. 예를 들어 호스트 이름이 machine1이고 도메인 이름이 server.example.com이면 FQDN은 machine1.server.example.com이어야 합니다.

      3. 보안 드롭다운 목록에서 활성화를 선택합니다.

      4. 확인을 누릅니다.

    4. 수신 소켓 편집 페이지로 이동하여 앞서 만든 수신 소켓을 선택합니다.

    5. 수신 소켓 페이지에서 서버 인증서 이름이 단계 6에서 제공한 인증서 이름과 같은지 확인합니다.

ProcedureSun Java System Web Server 6.1에 사용할 DAS 인증서 내보내기 및 가져오기

  1. Application Server 9.1을 사용하는 경우 다음 명령을 실행하여 DAS 인증서를 내보냅니다.

    <appserver_install_dir>/lib/upgrade/pk12util -d <domain root>/config -o sjsas.p12-W
    <file password> -K <master password> -n s1as
    • GlassFish v2를 사용하는 경우에는 다음 명령을 사용하여 DAS 인증서를 내보내야 합니다.

      <JAVA_HOME>/bin/keytool -export -rfc -alias s1as -keystore
      <GLASSFISH_HOME>/domains/<DOMAIN_NAME>/config/keystore.jks-file s1as.rfc

      여기서 <GLASSFISH_HOME>은 Application Server 설치 디렉토리를 나타내며 <DOMAIN_NAME>은 내보내는 인증서가 있는 도메인을 가리킵니다.

    • 인증서 파일을 웹 서버 구성 디렉토리에 복사합니다.

  2. Application Server 9.1을 사용하는 경우에는 다음 명령을 사용하여 DAS 인증서를 Web Server 인스턴스로 가져옵니다.

    <webserver_install_dir>/bin/https/admin/bin/pk12util-i sjsas.p12 -d 
    <webserver_install_dir>/alias -W<file password> -K <webserver security db password> -P
    <instance-name>-<hostname>-
    <webserver_install_dir>/bin/https/admin/bin/certutil -M -n s1as -t "TCu"
    -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-

    이 명령은 Application Server CA를 클라이언트와 서버 인증서에 서명하는 신뢰할 수 있는 CA로 만듭니다.

    • GlassFish v2를 사용하는 경우에는 NSS 보안 도구 certutil을 사용하여 생성된 rfc 파일에서 DAS 인증서를 가져옵니다.

      <webserver_install_dir>/bin/certutil -A -a -n s1as -t "TCu" -i s1as.rfc 
      -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-

      다음 명령을 사용하여 이 인증서의 존재 여부를 확인할 수 있습니다. 이 명령은 기본 서버 인증서를 비롯한 다른 CA 인증서와 함께 s1as 인증서를 나열합니다. 명령은 한 줄로 입력해야 합니다.

      <WS_INSTALL_ROOT>/bin/certutil -L 
      -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-
  3. obj.conf에 다음 줄이 포함되지 않은 경우 파일의 맨 뒤에 추가하십시오. Application Server 9.1을 사용하는 경우에는 설치 프로그램에서 이 단계를 자동으로 수행합니다.

    <Object ppath="*lbconfigupdate*">
    PathCheck fn="get-client-cert" dorequest="1" require="1"
    <Object>
    <Object ppath="*lbgetmonitordata*">
    PathCheck fn="get-client-cert" dorequest="1" require="1"
    </Object>
  4. 설정 확인 절에 설명된 절차를 사용하여 DAS에서 위의 설정을 확인할 수 있습니다. 로컬 CA를 사용하는 대신 다른 CA와 서버 인증서를 사용할 수 있습니다. 이러한 경우 이전 절에 나열된 단계 5와 6을 건너뛸 수 있지만 다른 CA에서 획득한 서버 인증서를 가져와야 합니다.

Web Server 7에 대해 SSL 모드에서 로드 밸런서 설정

  1. 다음 명령을 사용하여 Web Server의 Administration Server를 시작합니다.

    webserver-install-dir/admin_server/bin/startserv
  2. 다음 절차의 설명에 따라 HTTPS 수신기를 만듭니다. HTTP Listener가 이미 있는 경우에는 이 절차를 건너뛰고 Sun Java System Web Server 7에 사용할 DAS 인증서 내보내기 및 가져오기 절을 진행할 수 있습니다.

    1. Web Server 관리 콘솔에 로그인합니다.

    2. 기본 구성을 선택합니다. 일반적으로 기본 구성 이름은 호스트 이름과 동일합니다. 일반 작업 페이지에서 이 작업을 수행하려면 구성 선택 목록에서 구성을 선택하고 구성 편집을 누릅니다. 또는 구성 페이지를 열고 구성 테이블에서 기본 구성 이름을 누릅니다.

    3. 일반 작업 페이지에서 작업할 경우 서버 인증서 요청을 누릅니다. 구성 페이지에서 작업할 경우에는 인증서 페이지를 열고 서버 인증서 테이블에서 요청 버튼을 누릅니다. 이 기본 구성에 대한 자체 서명 서버 인증서를 만들기 위해 이 작업이 필요합니다.

    4. 서버 인증서 요청 창에서 필요한 세부 정보를 제공합니다.

      이 때 "*서버 이름(cn)"으로 제공되는 값은 웹 서버가 설치된 시스템의 정규화된 이름(FQDN)이어야 합니다. 예를 들어 호스트 이름이 machine1이고 도메인 이름이 server.example.com이면 FQDN은 machine1.server.example.com이어야 합니다. 기본값이 있는 경우에는 모두 기본값을 선택합니다.

      다음 명령을 사용하여 자체 서명 인증서를 만드는 방법도 있습니다. 명령은 한 줄로 입력해야 합니다.

      webserver-install-dir/bin/wadm create-selfsigned-cert --user=
      admin-user --server-name=host-name 
      --nickname=ServerCert --token=internal --config=config-name
      
    5. 선택한 구성 페이지로 돌아갑니다.

    6. HTTP Listener 페이지를 열고 새로 만들기 버튼을 누릅니다. 그러면 SSL이 활성화된 HTTP Listener가 생성됩니다.

    7. 새 HTTP Listener 마법사에 필요한 세부 사항을 제공합니다. 서버 이름은 이전 단계에서 제공한 FQDN이어야 합니다. SSL 버튼을 선택하고 인증서 목록에서 이전에 만든 서버 인증서를 선택합니다. 예를 들면, cert-machine1.server.example.com과 같습니다.

      다음 명령을 사용하여 HTTP Listener를 만드는 방법도 있습니다. 각 명령은 한 줄로 입력해야 합니다.

      webserver-install-dir/bin/wadm create-http-listener 
      --user=admin-user --server-name=host-name 
      --default-virtual-server-name=default-virtual-server-name 
      --listener-port=8090 --config=config-name http-listener-ssl
      webserver-install-dir/bin/wadm set-ssl-prop 
      --user=admin-user --http-listener=http-listener-ssl 
      --config=config-name enabled=true server-cert-nickname=ServerCert
    8. 위의 절차를 수행하면 관리 콘솔 오른쪽 상단에 "보류 중인 배포"라는 경고가 나타납니다. 이를 클릭하고 지침에 따라 배포를 완료합니다. 이 단계는 웹 서버의 Administration Server에 대한 구성 저장소 변경 내용이 웹 서버 인스턴스로 복사되도록 합니다.

ProcedureSun Java System Web Server 7에 사용할 DAS 인증서 내보내기 및 가져오기

DAS 인증서를 내보내고 가져오는 방법으로 DAS를 Web Server의 신뢰할 수 있는 클라이언트로 만들 수 있습니다. DAS 인증서를 사용하는 클라이언트 인증은 DAS만 Web Server에 신뢰할 수 있는 클라이언트로서 연결하도록 합니다.

  1. 터미널 창을 열고 다음 명령을 사용하여 LD_LIBRARY_PATH를 설정합니다.

    export LD_LIBRARY_PATH=/opt/SUNWappserver/lib
  2. Application Server 9.1을 사용하는 경우 다음 명령을 실행하여 DAS 인증서를 내보냅니다. DAS 인증서는 클라이언트 인증서와 서버 인증서의 역할을 모두 담당합니다.

    <appserver_install_dir>/lib/upgrade/pk12util -d <domain root>/config -o s1as.p12 -W
    <s1as.pk12-file-password> -K <master password> -n s1as
    • GlassFish v2를 사용하는 경우에는 키 도구라는 Java SE 5.0 보안 도구를 사용하여 별칭 "s1as"라는 이름으로 DAS 인증서를 내보냅니다. 이 때 -rfc 옵션을 선택하여 인증서를 인터넷 RFC 1421 표준에 정의된 인쇄 가능한 인코딩 형식으로 내보냅니다.

      명령줄에서 다음 명령을 사용하여 DAS 인증서를 내보낼 수 있습니다.

      <JAVA_HOME>/bin/keytool -export -rfc -alias s1as -keystore
      <GLASSFISH_HOME>/domains/<DOMAIN_NAME>/config/keystore.jks-file s1as.rfc

      여기서 <GLASSFISH_HOME>은 Application Server 설치 디렉토리를 나타내며 <DOMAIN_NAME>은 내보내는 인증서가 있는 도메인을 가리킵니다.

    • 인증서 파일을 웹 서버 구성 디렉토리로 복사합니다.

  3. Application Server 9.1을 사용하는 경우에는 DAS 인증서를 Web Server 인스턴스로 가져온 후 다음 명령을 사용하여 인증서의 트러스트 속성을 설정합니다.

    <webserver_install_dir>/bin/pk12util -i <path_to_s1as.pk12-file> 
    -d <webserver_install_dir>/admin-server/config-store/<default-config-name>/config 
    -K <webserver security db password> -W <s1as.pk12-file-passwd>
    <webserver_install_dir>/bin/certutil -M -n s1as -t "TCu" 
    -d <webserver_install_dir>/admin-server/config-store/<default-config-name>/config

    이 명령은 Application Server CA를 클라이언트 인증서와 서버 인증서에 서명하는 신뢰할 수 있는 CA로 만듭니다.

    • GlassFish v2를 사용하는 경우에는 NSS 보안 도구 certutil을 사용하여 생성된 rfc 파일에서 DAS 인증서를 가져옵니다.

      <webserver_install_dir>/bin/certutil -A -a -n s1as -t "TCu" -i s1as.rfc -d
      <webserver_install_dir>/admin-server/config-store/<CONFIG_NAME>/config

      여기서 <webserver_install_dir>은 웹 서버 설치 디렉토리를 나타내며 <CONFIG_NAME>은 기본 웹 서버 인스턴스에 대해 생성된 구성 이름을 가리킵니다.

      다음 명령을 사용하여 이 인증서의 존재 여부를 확인할 수 있습니다. 이 명령은 기본 서버 인증서를 비롯한 다른 CA 인증서와 함께 s1as 인증서를 나열합니다. 전체 명령을 한 줄에 입력해야 합니다.

      <webserver_install_dir>/bin/certutil -L -d
      <webserver_install_dir>/admin-server/config-store/
      <DEFAULT_CONFIG_NAME>/config

      Web Server 관리 콘솔을 사용하여 확인할 수도 있습니다. 인증서를 가져온 구성(이 경우 기본 구성)을 선택한 다음 인증서 탭을 선택합니다. 사용 가능한 모든 인증서를 보기 위해 인증 기관 하위 탭을 선택합니다.

  4. GlassFish v2를 사용하는 경우 Web Server 7의 구성을 다음과 같이 변경합니다. Application Server 9.1을 사용하는 경우에는 다음 단계를 건너뛸 수 있습니다.

    1. <WS_INSTALL_ROOT>/admin-server/config-store/<DEFAULT_CONFIG_NAME>/config/에 있는 obj.conf 파일에 다음 줄을 추가합니다. 이 줄은 뒤에 공백이 삽입되지 않도록 입력해야 합니다.

       <Object ppath="*lbconfigupdate*">
       PathCheck fn="get-client-cert" dorequest="1" require="1"
      </Object>
      <Object ppath="*lbgetmonitordata*">
       PathCheck fn="get-client-cert" dorequest="1" require="1"
      </Object>
  5. 구성을 배포합니다. 이전 단계의 변경을 수행할 때 이 구성이 관리 콘솔에서 배포될 구성으로 표시됩니다.

    1. Web Server 관리 콘솔에서 보류 중인 배포 아이콘을 선택합니다. 다음과 같이 CLI 유틸리티 wadm을 사용하여 이 구성을 배포할 수도 있습니다.

      <webserver_install_dir>/bin/wadm deploy-config --user=<admin> <DEFAULT_CONFIG_NAME>
  6. GlassFish DAS에서 이 설정을 테스트하여, 구성된 HTTP 로드 밸런서와 SSL을 통해 통신하는지 확인합니다. 자세한 내용은 설정 확인을 참조하십시오.