securityUtility 명령

securityUtility 명령어는 일반 텍스트 암호화, SSL 인증서 생성, Liberty 용 LTPA 키 생성을 지원합니다. 25.0.0.12 버전부터, securityUtility 명령어는 Liberty 용 FIPS 140-3 구성을 지원합니다.

Open Liberty 버전 21.0.0.11 이상의 securityUtility 명령에 대한 문서는 Open Liberty 웹 사이트에서 사용 가능합니다.

구문

명령 구문은 다음과 같습니다.

securityUtility task [options]

여기서 optionstask의 값에 따라 다릅니다.

주의:

다른 운영 체제와 명령행 환경은 일부 문자를 다르게 처리합니다. 많은 환경에서 특수 문자 및 해당 문자의 작동 방법을 재정의할 수 있습니다.

Windows 플랫폼용기본적으로 Windows 환경에서 입력 문자열에 느낌표 (!) 가 있는 경우 캐럿 문자 (^) 로 이스케이프해야 합니다. 다음 예제의 값은 a ! 입니다. 인코딩됨
D:\Liberty\images\855\Liberty855\wlp\bin>securityUtility encode "a^!"

일부 운영 체제의 경우 도구에 전달되는 인수 양 옆에 작은따옴표 표시를 사용해야 할 수도 있습니다.

터미널 에뮬레이터를 사용하는 경우 세션이 서버와 같은 코드 페이지를 사용하도록 구성되어 있는지 확인하십시오.

예상치 못한 결과를 경험하면 특수 문자 및 코드 페이지에 대한 운영 체제, 명령 쉘, 터미널 에뮬레이터 문서를 참조하십시오.

매개변수

securityUtility 명령에 대해 다음 태스크가 사용 가능합니다.
도움
지정된 태스크에 대한 도움말 정보를 인쇄합니다.
[ 25.0.0.12 그리고 나중에]generateAESKey

암호화 키를 Base64-encodedAES-256 생성합니다. 생성된 키는 Liberty 구성 파일에서 변수를 wlp.aes.encryption.key 정의하여 사용할 수 있습니다.

옵션은 다음과 같습니다.

--createConfigFile=name
변수에 wlp.aes.encryption.key 생성된 AES 키를 포함하는 XML 구성 파일을 생성합니다. 이 옵션이 제공되지 않으면 키가 콘솔에 출력됩니다.
--key=password
제공된 암호문구를 사용하여 Liberty 의 내부 키 유도 함수를 통해 키를 Base64-encodedAES-256 유도합니다. 이 옵션이 지정되지 않으면 임의의 AES-256 키가 생성됩니다.
encode
Base-64를 사용하여 제공된 텍스트를 인코딩하십시오. 옵션이 지정되지 않은 경우에는 명령이 대화식 모드에 들어갑니다. 그렇지 않으면 제공된 텍스트가 인코드됩니다. 공백이 있는 텍스트는 따옴표 안에 넣어야 합니다.
옵션은 다음과 같습니다.
--encoding=encoding_type

비밀번호를 인코딩하는 방법을 지정합니다. 지원되는 인코딩은 xor, aeshash입니다. 기본값은 xor입니다.

[ 25.0.0.2 이상]해당 aes 유형은 암호화를 AES-256 사용합니다.

25.0.0.1 과 그 이전 버전에서는 aes 유형이 AES-128 암호화를 사용합니다.

' hash 인코딩 옵션을 사용하여 기본 사용자 레지스트리 및 ' quickStartSecurity 요소의 비밀번호를 인코딩할 수 있습니다.

[ 25.0.0.3 이후]FIPS 140-3이 활성화된 경우, 및 hash aes 옵션 모두 문자열을 암호화하고 인코딩하기 위해 향상된 알고리즘을 사용합니다. 알고리즘이 개선되기 전에 이러한 옵션으로 암호화 또는 인코딩된 문자열은 FIPS 140-3 환경에서 실패할 수 있습니다.

--key=encryption_key
AES 암호화를 사용하여 인코드할 때 사용할 키를 지정합니다. 이 문자열은 해시 처리되어 암호를 암호화 및 복호화하는 데 사용되는 AES 암호화 키를 생성합니다. 키는 해당 값이 키인 변수 wlp.password.encryption.key를 정의하여 서버에 키를 제공할 수 있습니다. 이 옵션이 제공되지 않은 경우, 기본 키가 사용됩니다.

wlp.password.encryption.key에 대한 변수 설정 에 대한 정보도 참조하십시오.

[ 25.0.0.12 그리고 나중에]--base64Key=base64_key
AES 암호화를 사용하여 비밀번호를 인코딩할 키를 Base64-encodedAES-256 지정합니다. 변수를 wlp.aes.encryption.key 정의함으로써 키를 서버에 제공할 수 있습니다. 이 옵션은 또는 --key --aesConfigFile 옵션과 함께 사용할 수 없습니다.
[ 25.0.0.12 그리고 나중에]--aesConfigFile=file
XML 또는 Java 속성 파일을 지정하여 또는 wlp.aes.encryption.key wlp.password.encryption.key 변수를 정의합니다. 두 변수가 동일한 파일에 동시에 존재할 수 없습니다. 이 옵션은 또는 --key --base64Key 옵션과 함께 사용할 수 없습니다.
[ 25.0.0.12 그리고 나중에]중요: 25.0.0.12 부터, securityUtility encode 명령어는 Base64-encoded AES-256 암호화 방식을 지원합니다. 이것은 옵션 --key (option)을 통해 암호문구를 사용하여 키를 도출하는 기존 AES 지원을 보완합니다. 사전 생성된 Base64-encoded 키를 사용하려면 옵션을 --base64Key 지정하거나 옵션을 --aesConfigFile 사용하여 를 정의하는 파일을 wlp.aes.encryption.key참조하십시오.
--listCustom
사용자 정의 비밀번호 암호화 정보를 JSON ( JavaScript Object Notation) 형식으로 표시합니다. 정보는 다음 내용으로 구성됩니다.
  • name: 사용자 정의 비밀번호 암호화 알고리즘 이름.
  • featurename: 기능 이름.
  • description: 사용자 정의 비밀번호 암호화에 대한 설명.

사용자 지정 암호 암호화에 대한 자세한 내용은 ' customPasswordEncryption 공급자 개발'을 참조하십시오.

--notrim
지정된 텍스트의 시작 및 끝 부분에서 공백 문자가 제거되는지 여부를 지정합니다. 이 옵션이 지정되면 제공된 텍스트가 있는 그대로 인코드됩니다. 이 옵션이 지정되지 않으면 지정된 텍스트의 시작 및 끝 부분에 있는 공백 문자가 제거됩니다.
text
인코드될 텍스트입니다.
createSSLCertificate
서버 또는 클라이언트 구성에서 사용할 SSL 인증서를 포함한 기본 키 저장소를 작성합니다.
키 저장소 세부사항:
위치: 서버 또는 클라이언트 디렉토리의 resource/security/key.p12 파일.
유형: PKCS12
버전 19.0.0.2 이하의 경우: location: 서버 또는 클라이언트 디렉토리의 resource/security/key.jks 파일에 있습니다.
버전 19.0.0.2 이하에서: JKS를 입력하십시오.
비밀번호: --password 옵션과 함께 제공되는 비밀번호입니다. 비밀번호는 키 저장소 파일을 열고 키 저장소 파일에서 키를 검색하기 위해 필요합니다.
인증서 세부사항:
유형: 자체 서명된 인증서입니다.
크기: 기본값은 2048입니다(--keySize 옵션으로 대체 크기를 지정할 수 있음).
서명 알고리즘: SHA256withRSA, --sigAlg 옵션으로 사용자 정의할 수 있습니다.
유효성: 기본값은 365일입니다(--validity 옵션을 사용하여 사용자 정의할 수 있음).
CN=<hostname>,OU=<client or server name>,O=ibm,C=usSubjectDN: 기본적으로, --subject 옵션으로 사용자 정의할 수 있습니다.

옵션은 다음과 같습니다.

--server=name
키 저장소 및 인증서가 작성되는 Liberty 서버의 이름을 지정합니다. --client 옵션이 지정된 경우에는 이 옵션을 사용할 수 없습니다.
--client=name
키 저장소 및 인증서가 작성되는 Liberty 클라이언트의 이름을 지정합니다. --server 옵션이 지정된 경우에는 이 옵션을 사용할 수 없습니다.
--keyType=keystore type
생성할 키 저장소 유형을 지정합니다. JKS 키스토어를 생성하려면 옵션을 --keyType 값으로 지정하십시오 JKS. 기본적으로 PKCS12 키 저장소가 생성됩니다. 그러나 PKCS12 키스토어 생성을 명시적으로 지정하려면 옵션을 --keyType 값으로 지정하십시오 PKCS12.

PKCS12 키 저장소는 JKS 키 저장소에 비해 많은 장점을 갖고 있습니다. PKCS12 키 저장소가 더 확장 가능하고, 더 강력한 암호화 알고리즘을 지원하며 광범위하게 채택됩니다. PKCS12 형식은 주로 인증 기관이 인증서를 발행할 때 제공하는 형식입니다.

--keySize=size
인증서 키 비트 크기를 지정합니다. 기본값은 2048입니다.
--password=password
키 저장소에서 사용할 비밀번호를 지정합니다. 이 값은 최소 6자 이상이어야 합니다. 이 옵션은 필수입니다.
--passwordEncoding=password_encoding_type
키 저장소 비밀번호를 인코딩하는 방법을 지정합니다. 지원되는 인코딩 값은 xor 또는 aes입니다. 이 옵션이 제공되지 않는 경우에는 기본값인 xor이 사용됩니다.

[ 25.0.0.2 이상]해당 aes 유형은 AES-256 암호화를 사용합니다.

25.0.0.1 과 그 이전 버전에서는 aes 유형이 AES-128 암호화를 사용합니다.

--passwordKey=password_encryption_key
AES 암호화를 사용하여 키 저장소 비밀번호를 인코딩하는 데 사용할 키를 지정합니다. 이 문자열은 비밀번호를 암호화하고 복호화하는데 사용되는 암호화 키를 생성하기 위해 해시됩니다. 키는 해당 값이 키인 변수 wlp.password.encryption.key를 정의하여 서버에 키를 제공할 수 있습니다. 이 옵션이 제공되지 않은 경우, 기본 키가 사용됩니다.
--validity=days
인증서의 유효 기간(일)을 지정합니다. 이 값은 365 이상이어야 합니다. 이 옵션이 제공되지 않는 경우에는 기본값인 365가 사용됩니다.
--subject=DN
인증서 주제 및 발행자에 대한 식별 이름(DN)을 지정합니다. 이 옵션을 제공하지 않으면 기본값 CN=<hostname>,OU=<server or client name>,O=ibm,C=us 가 사용됩니다. CN 값은 시스템의 로컬 호스트 이름을 가져오기 위한 Java 메소드를 사용하여 검색됩니다. 호스트 이름을 해석할 수 없으면 IP 주소가 리턴됩니다.
--sigAlg
자체 서명된 인증서를 서명하는 데 사용되는 서명 알고리즘을 지정합니다. 지원되는 서명 알고리즘은 기본 JRE에서 지원하는 내용에 따라 다릅니다. 보다 강력한 서명 알고리즘은 제한 없는 정책 파일이 제 위치에 있는 JRE를 요구할 수 있습니다.
명령은 SHA256withRSA(기본값), SHA1withRSA, SHA384withRSA, SHA512withRSA, SHA1withECDSA, SHA256withECDSA, SHA384withECDSA 및 SHA512withECDSA를 허용합니다. RSA으로 끝나는 서명 알고리즘은 RSA 키로 인증서를 작성하며 ECDSA로 끝나는 서명 알고리즘은 EC(Elliptical Curve) 키로 인증서를 작성합니다.
참고: EC키로 작성된 인증서를 사용하는 경우, 서버는 EC 암호를 포함하도록 ssl 구성에서 사용자 정의된 암호 목록을 필요로 합니다.
--extInfo
기본 인증서를 작성하기 위해 사용하는 X.509 인증서 확장 정보를 지정합니다. 인증서에는 기본적으로 제목 대체 이름 확장이 서버의 호스트 이름으로 추가되어 있습니다. --extInfo 옵션이 사용된 경우 해당 값이 직접 keytool 명령으로 전달됩니다. 명령어에서 keytool --ext 플래그의 구문을 사용하십시오.
[ 25.0.0.12 그리고 나중에]--passwordBase64Key=base64_key
키스토어 암호화 시 사용되는 키를 Base64-encodedAES-256--passwordEncoding=aes 지정합니다. 이 옵션은 또는 --passwordKey --aesConfigFile 옵션과 함께 사용할 수 없습니다.
[ 25.0.0.12 그리고 나중에]--aesConfigFile=file
암호화 암호화에 사용할 AES 키를 정의하는 XML 또는 Java 속성 파일을 지정합니다. 파일에는 또는 wlp.aes.encryption.key 변수 wlp.password.encryption.key 중 하나가 반드시 포함되어야 합니다. 이 옵션은 또는 --passwordKey --passwordBase64Key 옵션과 함께 사용할 수 없습니다.
createLTPAKeys

서버에서 사용하거나 여러 서버와 공유할 수 있는 LTPA 키 집합을 만듭니다. 서버나 파일을 지정하지 않으면 현재 작업 디렉터리에 ltpa.keys 파일이 만들어집니다.

옵션은 다음과 같습니다.

--file=name
LTPA 키를 작성할 파일입니다. --server 옵션이 지정된 경우에는 이 옵션을 사용할 수 없습니다.
--passwordEncoding=password_encoding_type
server.xml 파일에서 LTPA 키 비밀번호를 인코딩하는 방법을 지정합니다. 지원되는 인코딩 유형은 xoraes 입니다. 이 옵션을 지정하지 않으면 기본 인코딩 유형인 xor 이 사용됩니다.

securityUtility encode --listCustom 명령을 사용하여 추가 사용자 지정 암호화가 지원되는지 확인할 수 있습니다.

--passwordKey=password_encryption_key
AES 암호화로 LTPA 키 비밀번호를 인코딩하는 데 사용할 키를 지정합니다. 이 문자열은 비밀번호를 암호화하고 복호화하는데 사용되는 암호화 키를 생성하기 위해 해시됩니다. wlp.password.encryption.key 변수를 키 값으로 정의하여 키를 제공할 수 있습니다. 이 옵션을 지정하지 않으면 기본 키가 사용됩니다.
--server=name
LTPA 키가 생성되는 Liberty 서버의 이름을 지정합니다. --file 옵션이 지정된 경우에는 이 옵션을 사용할 수 없습니다.
[ 25.0.0.12 그리고 나중에]--passwordBase64Key=base64_key
--passwordEncoding=aes 옵션이 사용될 때 LTPA 키 암호를 암호화하는 데 사용할 Base64-encodedAES-256 키를 지정합니다. 이 옵션은 또는 --passwordKey --aesConfigFile 옵션과 함께 사용할 수 없습니다.
[ 25.0.0.12 그리고 나중에]--aesConfigFile=file
LTPA 키 암호를 인코딩하는 데 사용되는 AES 키를 정의하는 XML 또는 Java 속성 파일을 지정합니다. 파일에는 또는 중 wlp.password.encryption.key 하나가 wlp.aes.encryption.key 포함되어야 합니다. 이 옵션은 또는 --passwordKey --passwordBase64Key 옵션과 함께 사용할 수 없습니다.

[ 25.0.0.3 이후]FIPS 140-3 승인 알고리즘을 사용하여 LTPA 키를 생성하는 방법에 대한 정보는 Liberty의 FIPS 준수 설정 항목을 참조하십시오.

[ 25.0.0.12 그리고 나중에]configureFIPS

모든 서버, 클라이언트 및 도구에 대해 FIPS 140-3을 구성합니다.

옵션은 다음과 같습니다.

--server=server_name
지정된 서버에서 FIPS 140-3을 구성합니다.
--client=client_name
지정된 클라이언트에서 FIPS 140-3을 구성합니다.
--customProfileFile=name
지정된 이름이나 지정된 위치에 사용자 정의 프로필 파일을 생성합니다 IBMSemeru Runtime. 사용자 지정 프로필 파일의 기본 이름은. FIPS140-3-Liberty-Application.properties입니다.
  • 이 옵션이 지정되지 않은 경우 사용자 정의 프로필 파일은 Liberty 설치 /etc 디렉토리의 에 위치합니다.
  • 이 옵션이 제공되지 않고 옵션이 --server 사용된 경우, 사용자 정의 프로필 파일은 지정된 서버의 /security 디렉토리에 위치합니다.
  • 이 옵션이 제공되지 않고 --client 옵션이 사용된 경우, 사용자 지정 프로필 파일은 지정된 클라이언트의 /security 디렉터리에 위치합니다.
--disable
개별적으로 구성되지 않은 모든 서버 및 클라이언트에서 FIPS 140-3을 비활성화합니다. FIPS 140-3을 비활성화하려면 옵션과 --server 함께 및 --client 옵션을 --disable 사용하여 각각 지정된 서버 및 클라이언트에서 해당 기능을 해제하십시오.

사용법

다음 예제는 올바른 구문을 보여줍니다.

securityUtility encode --encoding=aes --base64Key=<your_base64_key> GiveMeLiberty

securityUtility createSSLCertificate --password=<your_password> \
                                     --passwordEncoding=aes \
                                     --passwordBase64Key=<your_base64_key> \
                                     --server=myserver \
                                     --validity=365 \
                                     --subject=CN=mycompany,O=myOrg,C=myCountry

securityUtility createLTPAKeys --password=<your_password> \
                               --passwordEncoding=aes \
                               --passwordBase64Key=<your_base64_key> \
                               --file=myLTPA.keys

securityUtility configureFIPS --server=myserver

securityUtility help createSSLCertificate