2.5. Elytron 인증 정보 저장소 사용


Fuse에는 JBoss EAP의 일부인 Elytron 자격 증명 저장소 기능이 포함되어 있습니다. 인증 정보 저장소는 스토리지 파일에서 암호화하여 중요한 텍스트 문자열을 안전하게 보호할 수 있습니다. 각 컨테이너에는 정확히 하나의 인증 정보 저장소가 있을 수 있습니다.

보안 구성에서 일반적인 문제는 암호를 저장하는 방법입니다. 예를 들어 다양한 애플리케이션에서 데이터베이스 액세스에 대한 암호를 고려하십시오. 여러 인증 방법의 경우 서버가 데이터베이스 서버에 자격 증명을 보내기 전에 암호를 일반 텍스트로 사용할 수 있어야 합니다. 일반적으로 텍스트 구성 파일에 일반 텍스트 암호를 저장하는 것은 좋지 않습니다.

Elytron 인증 정보 저장소는 이 문제를 해결합니다. PKCS#12 사양을 준수하는 암호화된 파일인 인증 정보 저장소에 암호 및 기타 중요한 값을 안전하게 저장합니다. 인증 정보 저장소는 암호화되지 않은 값을 저장하지 않습니다. 인증 정보 저장소는 PBE(암호 기반 암호화)를 사용하여 암호와 저장소 자체와 같은 중요한 값을 모두 암호화합니다.

다음 주제에서는 세부 정보를 제공합니다.

2.5.1. 사용할 인증 정보 저장소 만들기

Fuse를 실행 중인 Apache Karaf 컨테이너에서 사용 자격 증명 저장소를 사용하고, 인증 정보 저장소를 생성 및 구성한 다음 값을 추가합니다. Fuse는 계속 실행되며 인증 정보 저장소를 사용할 수 있습니다.

사전 요구 사항

  • 인증 정보 저장소를 생성할 때 다음 기본값을 사용합니다.

    • PKCS#12 인증 정보 저장소를 생성합니다.
    • masked-SHA1-DES-EDE 알고리즘을 적용하여 자격 증명 저장소를 암호화합니다.
    • 알고리즘을 200000 번 반복합니다.
    • ${karaf.etc}/credential.store.p12 에서 인증 정보 저장소를 찾습니다.
  • 인증 정보 저장소 구성을 ${karaf.etc}/system.properties 에 저장하려고 합니다.

이러한 동작을 변경해야 하는 경우 credentials -store:create 명령 호출에 대한 정보를 참조하십시오.

프로세스

  1. 인증 정보 저장소 암호를 선택합니다.

    나중에 인증 정보 저장소에 값을 추가하거나 값을 해독하려는 경우 인증 정보 저장소 명령에서는 인증 정보 저장소 암호를 사용하여 값을 암호화하고 암호 해독합니다.

  2. credentials -store:create 명령을 호출하여 선택한 인증 정보 저장소 암호를 입력하라는 메시지를 표시합니다.

    karaf@root()> credential-store:create --persist
    Credential store password: *****
    Credential store password (repeat): *****
    
    Credential store configuration was persisted in ${karaf.etc}/system.properties and is effective.
    
    Credential store was written to /data/servers/fuse-karaf-7.4.0.fuse-740060/etc/credential.store.p12
    
    By default, only system properties are encrypted.
    Encryption of configuration admin properties can be enabled by setting
    felix.cm.pm=elytron in etc/config.properties.

    이 명령은 etc/system.properties 에 다음과 같은 구성을 작성합니다.

    credential.store.location = /data/servers/fuse-karaf-7.4.0.fuse-740060/etc/credential.store.p12
    credential.store.protection.algorithm = masked-SHA1-DES-EDE
    credential.store.protection.params = MDkEKFJId25PaXlVQldKUWw5R2tLclhZQndpTGhhVXJsWG5lNVJMbTFCZEMCAwMNQAQI0Whepb7H1BA=
    credential.store.protection = m+1BcfRyCnI=
  3. 다음과 같이 credential-store:store 명령을 호출하여 인증 정보 저장소에 암호화된 값을 추가합니다.

    credential-store:store 별칭

    alias 를 고유한 키 값으로 바꿉니다. 나중에 인증 정보 저장소에 추가하는 암호화된 값을 검색하려면 툴에서 이 별칭을 사용합니다. 예를 들어 코드에서 db.password 시스템 속성을 사용하고 etc/system.properties 파일에 db.password 속성을 데이터베이스의 실제 암호로 설정하는 항목이 있다고 가정합니다. 시스템 속성 db.password 를 별칭으로 지정하는 것이 좋습니다.

    이 명령을 호출하면 입력하라는 메시지를 표시하고 인증 정보 저장소에 추가할 중요한 값을 확인합니다. 프롬프트에서 db.password 별칭 예제를 계속 사용하면 데이터베이스에 대한 실제 암호를 입력합니다.

    karaf@root()> credential-store:store db.password
    Secret value to store: ******
    Secret value to store (repeat): ******
    Value stored in the credential store. To reference it use: CS:db.password
  4. etc/system.properties 파일에서 항목을 업데이트하거나 새 항목을 추가합니다. 업데이트하거나 추가하는 항목은 credentials -store:store 명령에 지정한 별칭을 명령이 출력하는 참조 값으로 설정합니다. 예를 들면 다음과 같습니다.

    db.password = CS:db.password

    Fuse가 구성된 인증 정보 저장소로 실행 중이면 db.password 시스템 속성의 각 인스턴스를 인증 정보 저장소에 있는 실제 시크릿 값으로 동적으로 대체합니다.

  5. credential-store:store 명령에서 지정한 별칭이 이미 사용 중인 시스템 속성인 경우 다음 단계로 건너뜁니다. 코드가 시크릿에 지정한 별칭을 아직 사용하지 않는 경우 시크릿이 필요한 각 파일에서 이전 단계에서 시스템 속성으로 추가한 별칭을 지정합니다. 예를 들어 코드는 db.password 를 참조합니다.
  6. 인증 정보 저장소에 추가할 각 값에 대해 이전 세 단계를 반복합니다.

결과

인증 정보 저장소를 사용할 준비가 되었습니다. Fuse가 시작되거나 인증 정보 저장소 번들이 다시 시작되면 시스템 속성을 처리하여 해당 참조 인증 정보 저장소 항목을 찾습니다. 이러한 각 시스템 속성의 경우 Fuse는 인증 정보 저장소에서 관련 값을 가져오고 시스템 속성을 실제 시크릿 값으로 대체합니다. 그러면 해당 시스템 속성의 인스턴스가 포함된 모든 구성 요소, 번들 및 코드에서 실제 시크릿 값을 사용할 수 있습니다.

2.5.2. 시스템 속성이 인증 정보 저장소 구성을 보유할 때 동작

인증 정보 저장소가 사용 중이며 시스템 속성을 사용하여 구성 매개 변수를 보유하고 있다고 가정합니다. Fuse가 시작되면 모든 시스템 속성을 처리합니다. Fuse는 CS: 접두사가 인증 정보 저장소에 있는 연결된 값과 함께 값으로 설정된 시스템 속성을 대체합니다. Fuse는 java.lang:type=Runtime Cryostat를 프록시하여 Cryostat getSystemProperties() 메서드를 통해 암호 해독된 값을 숨기도록 합니다.

예를 들어 하나의 항목이 있는 인증 정보 저장소를 고려해 보십시오.

karaf@root()> credential-store:list --show-secrets
Alias       │ Reference      │ Secret value
────────────┼────────────────┼─────────────
db.password │ CS:db.password │ sec4et

이 항목을 인증 정보 저장소에 추가한 후 etc/system.properties 파일을 편집하여 이 항목을 추가하십시오.

db.password = CS:db.password

Fuse가 시작되거나 org.jboss.fuse.modules.fuse-credential-store-core 번들을 다시 시작할 때 Fuse에서 db.password 시스템 속성에 대한 참조를 확인합니다. 각 참조에 대해 Fuse는 CS:db.password 별칭을 사용하여 인증 정보 저장소에서 관련 값을 가져옵니다. 다음 명령을 호출하여 확인할 수 있습니다.

karaf@root()> system:property db.password
sec4et

그러나 Cryostat를 사용하여 이를 확인하는 경우 인증 정보 저장소의 값이 숨겨집니다.

다음을 통해 확인할 때 숨겨진 값

2.5.3. 인증 정보 저장소 시스템 속성 및 환경 변수 설명

시스템 속성 또는 환경 변수를 사용하여 인증 정보 저장소 구성 매개변수를 저장할 수 있습니다. 인증 정보 저장소를 생성할 때 지정하는 옵션에 따라 결정됩니다.

  • 속성 또는 변수를 직접 설정해야 하는지 여부입니다.
  • 속성 또는 변수의 정확한 값은 속성 또는 변수여야 합니다.

속성/변수를 이해하면 인증 정보 저장소의 작동 방식을 이해하는 데 도움이 됩니다.

credential-store:create 명령을 호출하고 --persist 옵션만 지정하면 명령은 시스템 속성을 인증 정보 저장소 구성 매개변수로 설정합니다. 인증 정보 저장소 시스템 속성을 명시적으로 설정할 필요가 없습니다.

대신 인증 정보 저장소 환경 변수를 사용하거나 credential-store:create 명령의 기본 동작을 변경하려면 인증 정보 저장소를 생성할 때 지정할 수 있는 옵션에 대한 자세한 내용은 credential-store:create 명령 참조를 참조하십시오.

인증 정보 저장소를 생성하는 명령을 호출할 때 지정하는 옵션에 따라 인증 정보 저장소 속성 또는 변수의 설정이 결정됩니다. 속성 또는 변수를 직접 설정해야 하는 경우 credentials -store:create 명령의 출력에는 해당 작업에 대한 지침이 포함되어 있습니다. 즉, 인증 정보 저장소 시스템 속성 또는 환경 변수의 설정을 결정하는 것은 쉽지 않습니다. credential-store:create 명령을 실행하면 항상 설정이 결정됩니다.

다음 표에서는 인증 정보 저장소 속성 및 변수를 설명합니다. 특정 매개변수의 경우 환경 변수와 시스템 속성이 모두 설정된 경우 환경 변수 설정이 우선합니다.

이름설명

환경 변수: CREDENTIAL_STORE_PROTECION_ALGORITHM

시스템 속성: credentials.store.protection.algorithm

인증 정보 저장소 명령에서 암호화 키를 파생하는 데 사용하는 PBE(암호 기반 암호화) 알고리즘입니다.

환경 변수: CREDENTIAL_STORE_LOCATION

시스템 속성: credentials.store.location

인증 정보 저장소의 위치입니다.

환경 변수: CREDENTIAL_STORE_PROTECTION_PARAMS

시스템 속성: credentials.store.protection.params

인증 정보 저장소에서 암호화 키를 파생하는 데 사용하는 매개변수입니다. 매개 변수에는 반복 횟수, 초기 벡터 및 Salt가 포함됩니다.

환경 변수: CREDENTIAL_STORE_PROTECTION

시스템 속성: credentials.store.protection

인증 정보 저장소에서 암호 또는 기타 보안 데이터를 복구하기 위해 인증 정보 저장소에서 암호를 해독해야 하는 암호입니다. credential-store:create 명령을 호출하면 명령에서 암호를 지정하라는 메시지를 표시합니다. 해당 암호의 암호화는 이 환경 변수 또는 시스템 속성의 설정입니다.

2.5.4. credentials-store:create 명령 참조

인증 정보 저장소를 생성하고 구성하려면 다음 형식의 credentials -store:create 명령을 호출합니다.

credential-store:create [options]

옵션을 지정하지 않으면 명령에서 다음을 수행합니다.

  • 선택한 인증 정보 저장소 암호를 입력하라는 메시지를 표시합니다.
  • PKCS#12 인증 정보 저장소 생성
  • masked-SHA1-DES-EDE 알고리즘을 사용하여 인증 정보 저장소를 암호화
  • 알고리즘 200000 번 반복합니다.
  • ${karaf.etc}/credential.store.p12에서 인증 정보 저장소를 찾습니다.
  • 인증 정보 저장소 구성을 저장하지 않음

다음 표에서는 기본 동작을 변경하기 위해 지정할 수 있는 옵션을 설명합니다.

옵션설명

-w 또는 --password-property

환경 변수 또는 마스터 암호 값으로 설정된 시스템 속성을 사용하여 이 옵션을 따릅니다. 인증 정보 저장소는 알고리즘과 함께 이 값을 사용하여 암호화 또는 암호 해독 키를 파생합니다.

명령을 호출한 후 -w 또는 -W 옵션을 지정하지 않으면 마스터 암호를 입력하고 확인하라는 메시지를 표시합니다.

예: -w MASTER_PW

- w 또는 --password

선택한 마스터 암호의 일반 텍스트 값을 사용하여 이 옵션을 따르십시오. 마스터 암호의 일반 텍스트 값이 기록에 표시됩니다.

인증 정보 저장소는 알고리즘과 함께 이 값을 사용하여 암호화 또는 암호 해독 키를 파생합니다.

명령을 호출한 후 -w 또는 -W 옵션을 지정하지 않으면 마스터 암호를 입력하고 확인하라는 메시지를 표시합니다.

예: -W "M@s!erP#"

-f 또는 --force

인증 정보 저장소의 강제로 생성합니다. 인증 정보 저장소가 새 인증 정보 저장소의 의도된 위치에 있는 경우 이 옵션의 사양으로 인해 명령이 기존 인증 정보 저장소를 덮어씁니다. 기존 인증 정보 저장소의 모든 콘텐츠가 손실됩니다.

기본 동작은 의도한 위치에 이미 인증 정보 저장소가 있는 경우 명령에서 인증 정보 저장소를 생성하지 않는다는 것입니다.

-l 또는 --location

새 인증 정보 저장소의 위치를 지정합니다. 권장 사항은 기본 위치 ${karaf.etc}/credential.store.p12 를 사용하는 것입니다.

-IC 또는 --iteration-count

사용 중인 암호화 알고리즘을 반복적으로 적용하는 횟수를 나타내는 정수를 사용하여 이 옵션을 따릅니다. 각 반복은 이전 결과를 가져와서 알고리즘을 다시 적용합니다. 결과는 최종 마스크된 암호입니다. 기본값은 200000입니다.

-a 또는 --algorithm

masked 암호를 생성하는 데 사용할 credentials -store:create 명령의 식별자로 이 옵션을 따릅니다. 이 권장 사항은 masked-SHA1-DES-EDE 인 기본값을 사용하는 것입니다.

-p 또는 --persist

새 인증 정보 저장소의 구성을 ${karaf.etc}/system.properties 에 저장합니다. 이 옵션을 지정하지 않으면 credential-store:create 명령은 다음에 수행할 작업에 대한 지침을 사용하여 구성 정보를 콘솔에 보냅니다. 이 표 뒤에 있는 예제를 참조하십시오.

이 옵션을 생략하는 이유는 인증 정보 저장소 구성 매개변수 값을 확인해야 하기 때문입니다. 또는 etc/system.properties 파일을 사용하지 않고 인증 정보 저장소 구성 매개변수를 애플리케이션에 전달하려는 경우 이 옵션을 생략할 수 있습니다.

--help

명령 구문 및 옵션에 대한 정보를 표시합니다.

--persist를 지정하지 않고 인증 정보 저장소를 생성하는 예

다음 명령은 인증 정보 저장소를 생성하지만 ${karaf.etc}/system.properties 에 인증 정보 저장소 구성을 저장하지 않습니다. 이 명령은 기본값인 masked-SHA1-DES-EDE 알고리즘을 사용합니다.

karaf@root()> credential-store:create
Credential store password: *****
Credential store password (repeat): *****

Credential store was written to /data/servers/fuse-karaf-7.4.0.fuse-740060/etc/credential.store.p12

By default, only system properties are encrypted.
Encryption of configuration admin properties can be enabled by
setting felix.cm.pm=elytron in etc/config.properties.

Credential store configuration was not persisted and is not
effective. Please use one of the following configuration options and restart Fuse.
Option #1: Configure these system properties (e.g., in etc/system.properties):
 - credential.store.protection.algorithm=masked-SHA1-DES-EDE
 - credential.store.protection.params=MDkEKGdOSkpRWXpndjhkVVZYbHF4elVpbUszNW0wc3NXczhNS1A5cVlhZzcCAwMNQAQIDPzQ+BDGwX4=
 - credential.store.protection=0qudlx1XZFM=
 - credential.store.location=/data/servers/fuse-karaf-7.4.0.fuse-740060/etc/credential.store.p12
Option #2: Configure these environmental variables (e.g., in bin/setenv):
 - CREDENTIAL_STORE_PROTECTION_ALGORITHM=masked-SHA1-DES-EDE
 - CREDENTIAL_STORE_PROTECTION_PARAMS=MDkEKGdOSkpRWXpndjhkVVZYbHF4elVpbUszNW0wc3NXczhNS1A5cVlhZzcCAwMNQAQIDPzQ+BDGwX4=
 - CREDENTIAL_STORE_PROTECTION=0qudlx1XZFM=
 - CREDENTIAL_STORE_LOCATION=/data/servers/fuse-karaf-7.4.0.fuse-740060/etc/credential.store.p12

2.5.5. credential-store:store 명령 참조

암호화된 값을 인증 정보 저장소에 추가하려면 다음 형식의 credentials -store:store 명령을 호출합니다.

credential-store:store 별칭 [secret]

alias 를 고유한 키 값으로 바꿉니다. 인증 정보 저장소에 추가하는 암호화된 값을 검색하려면 툴에서 이 별칭을 사용합니다.

선택적으로 시크릿을 암호화하고 인증 정보 저장소에 추가할 값으로 교체합니다. 일반적으로 암호이지만 암호화하려는 모든 값이 될 수 있습니다.

명령줄에서 secret 을 지정하면 일반 텍스트 값이 기록에 표시됩니다. 명령줄에서 secret 을 지정하지 않으면 명령에서 입력 프롬프트를 표시하고 값은 기록에 표시되지 않습니다.

명령에 대한 정보를 보려면 다음을 입력합니다.

credentials-store:store --help.

다음 명령줄은 인증 정보 저장소에 항목을 추가하는 예입니다.

karaf@root()> credential-store:store db.password sec4et
Value stored in the credential store. To reference it use: CS:db.password

이제 인증 정보 저장소에 CS:db.password 를 지정하여 참조할 수 있는 항목이 있습니다.

2.5.6. credentials-store:list 명령 참조

인증 정보 저장소의 항목 별칭을 가져오려면 인증 정보 저장소에 모든 항목 목록을 표시하는 credentials-store: list 명령을 호출합니다. 예를 들면 다음과 같습니다.

karaf@root()> credential-store:list
Alias        │ Reference
─────────────┼───────────────
db.password  │ CS:db.password
db2.password | CS:db2.password

인증 정보 저장소에서 암호화된 보안 값의 암호 해독도 나열하려면 다음과 같이 명령을 호출합니다.

karaf@root()> credential-store:list --show-secrets
Alias        │ Reference       │ Secret value
─────────────┼─────────────────┼─────────────
db.password  │ CS:db.password  │ sec4et
db2.password | CS:db2.password | t0pSec4et

명령에 대한 정보를 보려면 다음을 수행합니다.

karaf@root()> credential-store:list --help

2.5.7. credential-store:remove 명령 참조

인증 정보 저장소에서 항목을 제거하려면 다음 형식의 credentials -store:remove 명령을 호출합니다.

credential-store:remove 별칭

별칭 을 인증 정보 저장소에 항목을 추가할 때 alias 인수에 대해 지정한 고유 키 값으로 바꿉니다. CS: 접두사를 지정하지 마십시오. credentials -store:list 명령을 호출하여 별칭을 가져올 수 있습니다.

credentials -store:remove 명령은 사용자가 지정한 별칭이 있는 항목의 인증 정보 저장소를 확인하고 해당 저장소를 제거합니다. 예를 들면 다음과 같습니다.

karaf@root()> credential-store:remove db.password

Alias        │ Reference       │ Secret value
─────────────┼─────────────────┼─────────────
db2.password | CS:db2.password | t0pSec4et

명령에 대한 정보를 보려면 다음을 수행합니다.

karaf@root()> credential-store:remove --help

2.5.8. 인증 정보 저장소 사용을 활성화하는 구성 관리자 속성의 예

개발 환경에서는 구성 관리자 서비스 속성을 사용하여 인증 정보 저장소를 사용할 수 있습니다. 구성 관리자 속성은 etc/*.cfg 파일에 정의됩니다.

중요

인증 정보 저장소를 사용할 수 있도록 구성 관리자 속성을 사용하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다. Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 https://access.redhat.com/support/offerings/techpreview/를 참조하십시오.

준비

  • credential-store:create 명령을 호출하여 인증 정보 저장소를 생성합니다. credential-store:create 명령 참조를 참조하십시오.
  • etc/config.properties 파일을 편집하여 구성 관리자 속성 사용을 활성화하여 fe#159.cm.pm = elytron : 행의 주석을 제거합니다.
# When uncommented, configuration properties handled by Configuration Admin service will be encrypted when storing
# in etc/ and in bundle data. Values of the properties will actually be aliases to credential store entries.
# Please consult the documentation for more details.
felix.cm.pm = elytron

Fuse가 시작되면 어떻게 됩니까

  1. fe#159.configadmin 번들:

    • fe#159.cm.pm 속성이 설정되어 있으므로 ConfigurationAdmin 서비스 등록 지연.
    • name=cm OSGi 서비스 등록 속성을 사용하여 org.apache.fe Cryostat.cm.PersistenceManagerOSGi 서비스의 가용성을 기다립니다.
  2. Fuse 인증 정보 저장소 번들:

    1. credentials.store에 설정된 값을 사용하여 인증 정보 저장소를 로드합니다.* 시스템 속성 또는 credentials _STORE_* 환경 변수를 사용합니다.
    2. org.apache.fe Cryostat.cm.PersistenceManagerOSGi 서비스를 구현하는 OSGi 서비스를 등록합니다.

    문제가 발생하면 인증 정보 저장소 번들에서 지속성Manager 서비스를 등록합니다. 이 서비스는 특별한 작업을 수행하지 않습니다. 문제가 발생하거나 인증 정보 저장소를 사용할 수 없는 경우 Fuse는 암호화되지 않은 구성 값을 읽을 수 있어야 합니다. CS: 접두사로 지정된 암호화된 값은 원래 값을 기억하거나 인증 정보 저장소와 해당 구성을 복구하지 않는 한 손실됩니다.

  3. con hi 192.0.2..configadmin 프로세스는 새 지속성 관리자 서비스를 사용하여 인증 정보 저장소 구성을 로드하고 저장합니다.

인증 정보 저장소에 두 개의 항목이 있다고 가정합니다.

karaf@root()> credential-store:list --show-secrets
Alias       │ Reference      │ Secret value
────────────┼────────────────┼─────────────
db.password │ CS:db.password │ sec4et
http.port   │ CS:http.port   │ 8182

구성 관리 서비스 구성에서 실제 값 대신 중요한 값에 대한 별칭을 사용하도록 선택합니다. 예를 들어 다음과 같이 웹 구성 속성을 변경합니다.

karaf@root()> config:property-list --pid org.ops4j.pax.web
   javax.servlet.context.tempdir = /data/servers/fuse-karaf-7.4.0.fuse-740060/data/pax-web-jsp
   org.ops4j.pax.web.config.file = /data/servers/fuse-karaf-7.4.0.fuse-740060/etc/undertow.xml
   org.ops4j.pax.web.session.cookie.httpOnly = true
   org.osgi.service.http.port = 8181

karaf@root()> config:property-set --pid org.ops4j.pax.web org.osgi.service.http.port CS:http.port

karaf@root()> config:property-list --pid org.ops4j.pax.web
   javax.servlet.context.tempdir = /data/servers/fuse-karaf-7.4.0.fuse-740060/data/pax-web-jsp
   org.ops4j.pax.web.config.file = /data/servers/fuse-karaf-7.4.0.fuse-740060/etc/undertow.xml
   org.ops4j.pax.web.session.cookie.httpOnly = true
   org.osgi.service.http.port = CS:http.port

로그에서 다음 줄의 끝에 볼 수 있듯이 실제 값인 8182 가 표시될 수 있습니다. 로그에서 실제 텍스트 값을 표시하는지 여부는 암호화된 값을 사용하는 구성 요소에 따라 결정됩니다.

2019-03-12 15:36:25,648 INFO  {paxweb-config-2-thread-1} (ServerControllerImpl.java:458) : Starting undertow http listener on 0.0.0.0:8182

이전 명령에서 두 번째 config:property-list --pid org.ops4j.pax.web 명령은 8182 대신 CS:http.port 를 표시합니다. pax-web-undertow 프로세스는 이 포트에서 시작됩니다. 이는 OSGi 후크가 config:property-list --pid org .ops4j.pax.web 명령의 출력을 보여주는 fe#159.fileinstall 프로세스를 방지하기 때문입니다. 또한 etc/org.ops4j.pax.web.cfg 파일이 해독된 값을 저장하지 않고 대신 다음과 같이 저장합니다.

org.osgi.service.http.port = CS:http.port

org.ops4j.pax.web.config.file = ${karaf.etc}/undertow.xml
org.ops4j.pax.web.session.cookie.httpOnly = true

javax.servlet.context.tempdir = ${karaf.data}/pax-web-jsp
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.