検索

3.3. Apache Karaf コンテナーで Undertow の SSL/TLS を有効化

download PDF

以下の手順では、キーストアパスワード StorePass およびキーパスワード KeyPass で、署名済みの X.509 証明書と秘密鍵のペアがキーストアファイル alice.ks で作成済みであることを前提とします。

Karaf コンテナーで Undertow の SSL/TLS を有効にするには、以下を実行します。

  1. Pax Web サーバーが、etc/undertow.xml ファイルから設定を取得するように設定されていることを確認します。etc/org.ops4j.pax.web.cfg ファイルの内容を確認すると、以下の設定があるはずです。

    org.ops4j.pax.web.config.file=${karaf.etc}/undertow.xml
  2. テキストエディターで 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 ファイルを保存して閉じます。

  3. テキストエディターで etc/undertow.xml ファイルを開きます。次の手順では、インストール時以降、変更されていないデフォルトの undertow.xml ファイルで作業することを前提としています。
  4. XML 要素 http-listener および https-listener を検索します。http-listener 要素をコメントアウトし (<!-- および --> で囲み)、https-listener 要素をアンコメントします (2 行使用)。編集された 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"
    />
  5. 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" />

    Undertow サーバーの証明書として alice 証明書をインストールするには、以下のように w:keystore 要素属性を変更します。

    • path を、ファイルシステムにおける alice.ks ファイルの場所 (絶対パス) に設定します。
    • providerJKS に設定します。
    • alias をキーストアの alice 証明書エイリアスに設定します。
    • keystore-password を、キーストアをアンロックするパスワードの値に設定します。
    • key-password を、alice 秘密鍵を暗号化するパスワードの値に設定します。
    • generate-self-signed-certificate-host 属性設定を削除します。
  6. たとえば、alice.ks キーストアをインストールした後に、変更された w:keystore 要素は以下のようになります。

    <w:keystore path="${karaf.etc}/certs/alice.ks" provider="JKS" alias="alice"
                keystore-password="StorePass" key-password="KeyPass" />
  7. セキュアな 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>
  8. <socket-binding name="https" タグを検索し、コメント解除します。このタグのコメントを解除すると、次のようになります。

    <socket-binding name="https" interface="secure" port="${org.osgi.service.http.port.secure}" />
  9. etc/undertow.xml ファイルを保存して閉じます。
  10. 設定の変更を有効にするために、Fuse コンテナーを再起動します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.