사용자 정의 비밀번호 암호화 사용

WebSphere® Application Server 구성에 포함된 비밀번호를 보호해야 합니다. 서버 프로파일을 작성한 후에는 비밀번호를 암호화하기 위한 사용자 정의 클래스를 작성하여 보호를 강화할 수 있습니다.

시작하기 전에

비밀번호 암호화를 위한 사용자 정의 클래스를 작성하십시오. 자세한 정보는 사용자 정의 비밀번호 암호화를 위한 플러그 지점을 참조하십시오.

이 태스크 정보

다음 단계를 완료하여 사용자 정의 비밀번호 암호화를 사용 가능하게 하십시오. 암호화해야 하는 비밀번호와 해당 탐색 경로를 포함하는 애플리케이션 서버 프로파일의 파일 목록은 파일에서 비밀번호 인코딩을 참조하십시오.

프로시저

  1. 모든 서버 및 클라이언트 프로세스에 대해 다음 시스템 특성을 추가하십시오. 서버 프로세스의 경우 각 프로세스에 대한 server.xml 파일을 업데이트하십시오. 이들 특성을 -D 접두부가 앞에 오는 genericJvmArgument 인수로서 추가하십시오.
    com.ibm.wsspi.security.crypto.customPasswordEncryptionClass=
           com.acme.myPasswordEncryptionClass
    com.ibm.wsspi.security.crypto.customPasswordEncryptionEnabled=true
    중요: wsadmin 클라이언트와 관련하여, 연결 모드에서 wsadmin을 사용하는 경우 AdminTask.setJVMSystemProperties 명령을 사용하거나 콘솔을 통해 연결된 배치 관리자 또는 서버에서 이 특성을 설정해야 합니다. 로컬 모드(conntype=NONE)에서 wsadmin을 사용하는 경우 다음과 같이 javaoption 명령을 사용하여 특성을 설정할 수 있습니다.
    wsadmin -conntype none -lang jython -javaoption
    -Dcom.ibm.wsspi.security.crypto.customPasswordEncryptionClass=<encryptionClassToUse>
    팁: 사용자 정의 암호화 클래스 이름이 com.ibm.wsspi.security.crypto.CustomPasswordEncryptionImpl인 경우, 이 클래스가 클래스 경로에 있으면 자동으로 사용 가능하게 됩니다. 사용자 정의 구현이 이 패키지 및 클래스 이름을 가질 때 이전에 나열되는 시스템 특성을 정의하지 마십시오. 이 클래스의 암호화를 사용하지 않으려면 다음과 같이 지정해야 합니다.com.ibm.wsspi.security.crypto.customPasswordEncryptionEnabled=false시스템 특성으로 사용할 수 있습니다.
  2. 다음 메소드 중 하나를 선택하여 사용자 정의 암호화 구현 클래스를 로드하도록 WebSphere Application Server 런타임을 구성하십시오.
    • 사용자 정의 암호화 클래스를 작성한 ${WAS_INSTALL_ROOT}/classes 디렉토리에 있는 JAR (Java™ Archive) 파일에 배치하십시오.
      문제점 방지: WebSphere Application Server${WAS_INSTALL_ROOT}/classes 디렉토리를 작성하지 않습니다. 클래스 디렉토리에 대한 자세한 정보는 사용자 정의 클래스에 대해 프로파일에 classes 서브디렉토리 작성 주제를 참조하십시오.
    • ${WAS_HOME}/lib/ext 디렉토리에 상주하는 JAR(Java archive) 파일에 사용자 정의 암호화 클래스를 배치하십시오.
  3. 모든 서버 프로세스를 다시 시작하십시오.
  4. 비밀번호를 포함하는 각 구성 문서를 편집하고 구성을 저장하십시오.
    그런 다음, 모든 비밀번호 필드가 WSEncoderDecoder 유틸리티를 통해 실행되며, 이는 사용 가능할 때 플러그 지점을 호출합니다. {custom:alias} 태그는 구성 문서에 표시됩니다. 비밀번호는 암호화되는 경우에도 여전히 Base64 인코딩됩니다. 태그가 다르다는 점을 제외하고 인코딩된 비밀번호와 비슷합니다.
  5. PropsFilePasswordEncoder (.bat 또는 .sh) 유틸리티를 사용하여 클라이언트 측 특성 파일에 있는 비밀번호를 암호화하십시오.
    이 유틸리티는 새 비밀번호를 인코딩하는 대신 암호화하기 위해 이전에 나열되는 특성이 스크립트에 시스템 특성으로 정의되어야 합니다. 특성을 Java 명령행에 추가하려면 스크립트를 편집해야 합니다. 예를 들어 다음과 같습니다.
    %JAVA_EXE% -Dcom.ibm.wsspi.security.crypto.customPasswordEncryptionEnabled=true 
    -Dcom.ibm.wsspi.security.crypto.customPasswordEncryptionClass=mysample.MySampleEncryption 
    -Dcmd.properties.file=%TMPJAVAPROPFILE% 
    "-Dwas.install.root=%WAS_HOME%" com.ibm.ws.bootstrap.WSLauncher com.ibm.ws.security.util.PropFilePasswordEncoder %*
    PropsFilePasswordEncoder를 통해 실행해야 하는 파일 목록은 파일에서 비밀번호 인코딩의 표 2를 참조하십시오.
  6. 클라이언트 JVM(Java Virtual Machine)의 암호를 암호 해독하려면 각 클라이언트 유틸리티에 대한 시스템 특성으로 이전에 나열되는 특성을 추가하십시오.
  7. 이 기능을 사용하기 전에 모든 노드가 클래스 경로 내에 사용자 정의 암호화 클래스를 가지고 있는지 확인하십시오.

결과

사용자 정의 비밀번호 암호화가 사용 가능합니다.

다음에 수행할 내용

사용자 정의 비밀번호 암호화가 실패하거나 더 이상 필요하지 않은 경우 사용자 정의 비밀번호 암호화 사용 안함을 참조하십시오.