3.3. Apache Karaf 컨테이너에서 Cryostat에 대해 SSL/TLS 활성화
다음 절차에서는 키 저장소 파일에 서명된 X.509 인증서 및 개인 키 쌍을 이미 생성했다고 가정합니다. alice.ks
는 키 저장소 암호, StorePass
, 키 암호, KeyPass
입니다.
Karaf 컨테이너에서 Cryostat에 대해 SSL/TLS를 활성화하려면 다음을 수행합니다.
Pax 웹 서버가
etc/undertow.xml
파일에서 구성을 가져오도록 구성되었는지 확인합니다.etc/org.ops4j.pax.web.cfg
파일의 내용을 보면 다음 설정이 표시됩니다.org.ops4j.pax.web.config.file=${karaf.etc}/undertow.xml
텍스트 편집기에서
etc/org.ops4j.pax.web.cfg
파일을 열고 다음 행을 추가합니다.org.osgi.service.http.port.secure=8443 org.osgi.service.http.secure.enabled=true
파일을 저장하고 닫습니다.
etc/org.ops4j.pax.web.cfg
.-
텍스트 편집기에서
etc/undertow.xml
파일을 엽니다. 다음 단계에서는 설치 시간 이후 변경되지 않은 기본undertow.xml
파일로 작업한다고 가정합니다. XML 요소
http-listener
및https-listener
를 검색합니다.http-listener
요소를 주석 처리하고(<!--과
> )--
https-listener
요소의 주석을 제거하고(두 행을 통해 수신 대기)합니다. 편집된 XML 조각은 다음과 같아야 합니다.<!-- HTTP(S) Listener references Socket Binding (and indirectly - Interfaces) --> <!-- http-listener name="http" socket-binding="http" /> --> verify-client: org.xnio.SslClientAuthMode.NOT_REQUESTED, org.xnio.SslClientAuthMode.REQUESTED, org.xnio.SslClientAuthMode.REQUIRED <!--<https-listener name="https" socket-binding="https" security-realm="https" verify-client="NOT_REQUESTED" enabled="true" /> --> <https-listener name="https" socket-binding="https" worker="default" buffer-pool="default" enabled="true" receive-buffer="65536" send-buffer="65536" tcp-backlog="128" tcp-keep-alive="false" read-timeout="-1" write-timeout="-1" max-connections="1000000" resolve-peer-address="false" disallowed-methods="TRACE OPTIONS" secure="true" max-post-size="10485760" buffer-pipelined-data="false" max-header-size="1048576" max-parameters="1000" max-headers="200" max-cookies="200" allow-encoded-slash="false" decode-url="true" url-charset="UTF-8" always-set-keep-alive="true" max-buffered-request-size="16384" record-request-start-time="true" allow-equals-in-cookie-value="false" no-request-timeout="60000" request-parse-timeout="60000" rfc6265-cookie-validation="false" allow-unescaped-characters-in-url="false" certificate-forwarding="false" proxy-address-forwarding="false" enable-http2="false" http2-enable-push="false" http2-header-table-size="4096" http2-initial-window-size="65535" http2-max-concurrent-streams="-1" http2-max-frame-size="16384" http2-max-header-list-size="-1" require-host-http11="false" proxy-protocol="false" security-realm="https" verify-client="NOT_REQUESTED" enabled-cipher-suites="TLS_AES_256_GCM_SHA384" enabled-protocols="TLSv1.3" ssl-session-cache-size="0" ssl-session-timeout="0" />
w:keystore
요소를 검색합니다. 기본적으로w:keystore
요소는 다음과 같이 구성됩니다.<w:keystore path="${karaf.etc}/certs/server.keystore" provider="JKS" alias="server" keystore-password="secret" key-password="secret" generate-self-signed-certificate-host="localhost" />
alice
인증서를 Cryostat 서버의 인증서로 설치하려면 다음과 같이w:keystore
요소 속성을 수정합니다.-
파일 시스템에서
alice.ks
파일의 절대 위치에 대한경로를
설정합니다. -
provider
를JKS
로 설정합니다. -
키 저장소의
alice
인증서 별칭에alias
를 설정합니다. -
keystore-password
를 키 저장소를 잠금 해제하는 암호 값으로 설정합니다. -
alice
개인 키를 암호화하는 암호 값으로key-password
를 설정합니다. -
generate-self-signed-certificate-host
속성 설정을 삭제합니다.
-
파일 시스템에서
예를 들어
alice.ks
키 저장소를 설치한 후 수정된w:keystore
요소는 다음과 같습니다.<w:keystore path="${karaf.etc}/certs/alice.ks" provider="JKS" alias="alice" keystore-password="StorePass" key-password="KeyPass" />
보안 HTTPS 포트가 바인딩되는 IP 주소를 지정하는 데 사용되는 <
interface name="secure"
> 태그를 검색합니다. 기본적으로 이 요소는 다음과 같이 주석 처리됩니다.<!--<interface name="secure">--> <!--<w:inet-address value="127.0.0.1" />--> <!--</interface>-->
요소의 주석을 제거하고
value
속성을 사용자 지정하여 HTTPS 포트가 바인딩되는 IP 주소를 지정합니다. 예를 들어 와일드카드 값인0.0.0.0
은 사용 가능한 모든 IP 주소에 바인딩하도록 HTTPS를 구성합니다.<interface name="secure"> <w:inet-address value="0.0.0.0" /> </interface>
<
socket-binding name="https"
태그를 검색하고 주석 처리를 해제합니다. 이 태그의 주석 처리를 해제하면 다음과 같이 표시됩니다.<socket-binding name="https" interface="secure" port="${org.osgi.service.http.port.secure}" />
-
파일을 저장하고 닫습니다.
etc/undertow.xml
. - 구성 변경 사항을 적용하려면 Fuse 컨테이너를 다시 시작합니다.