すべてのプロダクト
Search
ドキュメントセンター

Certificate Management Service:JBoss サーバー (Linux) への SSL 証明書のインストール

最終更新日:Dec 03, 2025

JBoss サーバーに SSL 証明書をインストールして、HTTPS 経由での Web サービスへのセキュアなアクセスを有効にします。このトピックでは、インストール手順について説明します。

重要

このトピックでは、Linux と jboss-as-7.1.1.Final を例として使用します。デプロイメント手順は、ご利用のオペレーティングシステムと JBoss サーバーのバージョンによって異なる場合があります。

前提条件

  • Certificate Management Service から証明書を購入してリクエストし、その ステータス発行済み であること。詳細については、「公式証明書の購入」および「証明書のリクエスト」をご参照ください。

  • ドメイン名がサーバーに正しく解決されていること。

  • root アカウントや sudo 権限を持つアカウントなど、サーバーの管理者権限を持っていること。

操作手順

ステップ 1:SSL 証明書のダウンロード

  1. SSL 証明書管理ページに移動し、デプロイする証明書を見つけて、次の情報を確認します。

    1. 証明書のステータス:ステータスは 発行済み である必要があります。ステータスが まもなく期限切れ または 期限切れ の場合は、SSL 証明書を更新する必要があります。

    2. ドメイン名のバインド:この設定は、保護したいすべてのドメイン名と一致する必要があります。一致しない場合、HTTPS 経由でアクセスされたときにセキュリティ警告が表示されます。ドメイン名を追加または変更するには、「ドメイン名の追加と置換」をご参照ください。

      証明書がターゲットドメイン名と一致するかどうかの確認

      証明書の ドメイン名のバインド には、複数の完全一致ドメイン名とワイルドカードドメイン名を含めることができます。各タイプのドメイン名の照合ルールは次のとおりです。

      • 完全一致ドメイン名:指定されたドメイン名にのみ適用されます。

        • example.comexample.com にのみ適用されます。

        • www.example.comwww.example.com にのみ適用されます。

      • ワイルドカードドメイン名:その第 1 レベルのサブドメインにのみ適用されます。

        • *.example.com は、www.example.coma.example.com などの第 1 レベルのサブドメインに適用されます。

        • *.example.com は、ルートドメイン example.com や、a.b.example.com などの複数レベルのサブドメインには適用されません。

      説明

      複数レベルのサブドメインを照合するには、ドメイン名のバインド フィールドに、a.b.example.com のような正確なドメイン名、または *.b.example.com のような対応するワイルドカードドメイン名が含まれている必要があります。

  2. ターゲット証明書の 操作 列で、[詳細] をクリックして証明書の詳細ページを開きます。ダウンロード タブで、サーバータイプ[JKS] に設定し、証明書をダウンロードします。

  3. 解凍されたパッケージには、証明書ファイル (.jks 拡張子で完全な証明書チェーンを含む) と証明書パスワードファイル (jks-password.txt) が含まれています。

    説明

    JKS は Java 固有のキーストアフォーマットであり、Java 環境での使用に適しています。

ステップ 2:JBoss サーバーへの SSL 証明書のインストール

  1. Linux サーバーにログインします。

    Alibaba Cloud サーバー

    以下の手順では、Alibaba Cloud Elastic Compute Service (ECS) を例として使用します。他のタイプのサーバーについては、対応する製品ドキュメントをご参照ください。

    1. ECS コンソールにログインします。左上のコーナーで、ターゲット ECS インスタンスが配置されているリージョンを選択します。

    2. 左側のナビゲーションウィンドウで、インスタンスとイメージ > インスタンス を選択します。[インスタンス] ページで、ターゲット ECS インスタンスを見つけ、[操作] 列の [接続] をクリックします。

    3. 表示されるダイアログボックスで、ワークベンチ を選択し、今すぐサインイン をクリックします。

    4. 接続方法として [ターミナル] を選択し、必要な認証情報を入力し、画面の指示に従ってサーバーターミナルにログインします。詳細については、「ワークベンチを使用して ECS インスタンスにログイン」をご参照ください。

      説明

      セキュリティグループルールを追加するように求める注意が表示された場合は、[今すぐ追加] をクリックします。

    他のクラウドプロバイダーのサーバー

    クラウドプロバイダーが提供するリモート接続機能を使用して、サーバーターミナルにログインします。

    クラウド以外のサーバー (物理サーバーや IDC ホストサーバーなど)

    ローカルコンピューターから SSH ツールを使用してサーバーターミナルにログインします。

    • Windows:コマンドプロンプト (cmd) または PowerShell で、ssh username@serverIP を実行します。ssh コマンドがサポートされていない場合は、PuTTYWinSCP などのサードパーティソフトウェアを使用して接続できます。

    • macOS/Linux:内蔵のターミナルで、ssh username@serverIP を実行します。

    以下のコマンドの一部は、オペレーティングシステムによって異なります。ご利用のサーバーのオペレーティングシステムに適用されるコマンドを選択してください。

    • RHEL/CentOS シリーズ:Alibaba Cloud Linux、Red Hat Enterprise Linux、CentOS、AlmaLinux、Rocky Linux、Anolis OS、およびそれらの派生 OS を含みます。

    • Debian/Ubuntu シリーズ:Debian、Ubuntu、およびそれらの派生 OS を含みます。

    オペレーティングシステムシリーズの識別方法

    サーバーターミナルで cat /etc/os-release を実行し、出力の ID_LIKEID の値を確認します。

    • ID_LIKE または ID に rhel または centos が含まれている場合、オペレーティングシステムは RHEL/CentOS シリーズに属します。

    • ID_LIKE または ID に debian または ubuntu が含まれている場合、オペレーティングシステムは Debian/Ubuntu シリーズに属します。

  2. セキュリティグループとファイアウォールでポート 443 を開きます。

    1. サーバーターミナルで次のコマンドを実行して、ポート 443 が開いているかどうかを確認します。

      RHEL/CentOS

      command -v nc > /dev/null 2>&1 || sudo yum install -y nc
      # <your_server_public_ip> をサーバーのパブリック IP アドレスに置き換えます。
      sudo ss -tlnp | grep -q ':443 ' || sudo nc -l 443 & sleep 1; nc -w 3 -vz <your_server_public_ip> 443

      出力が Ncat: Connected to <your_server_public_ip>:443 の場合、ポート 443 は開いています。そうでない場合は、セキュリティグループとファイアウォールでポート 443 を開きます。

      Debian/Ubuntu

      command -v nc > /dev/null 2>&1 || sudo apt-get install -y netcat
      # <your_server_public_ip> をサーバーのパブリック IP アドレスに置き換えます。
      sudo ss -tlnp | grep -q ':443 ' || sudo nc -l -p 443 & sleep 1; nc -w 3 -vz <your_server_public_ip> 443

      出力が Connection to <your_server_public_ip> port [tcp/https] succeeded! または [<your_server_public_ip>] 443 (https) open の場合、ポート 443 は開いています。そうでない場合は、セキュリティグループとファイアウォールでポート 443 を開きます。

    2. セキュリティグループの設定でポート 443 を開きます。

      重要

      サーバーがクラウドプラットフォームにデプロイされている場合は、そのセキュリティグループが TCP ポート 443 でのインバウンドトラフィックを許可していることを確認してください。そうでない場合、サービスにアクセスできなくなります。以下の手順では、Alibaba Cloud ECS を例として使用します。他のクラウドプラットフォームについては、公式ドキュメントをご参照ください。

      Elastic Compute Service (ECS) インスタンスページに移動し、ターゲットインスタンス名をクリックしてインスタンス詳細ページに移動します。詳細については、「セキュリティグループルールの追加」をご参照ください。[セキュリティグループの詳細] セクションで、[アクション][許可][プロトコル][カスタム TCP][宛先 (現在のインスタンス)] を HTTPS (443)、[ソース][0.0.0.0/0 (任意)] に設定したルールを追加します。

    3. ファイアウォールでポート 443 を開きます。

      次のコマンドを実行して、システムでアクティブなファイアウォールサービスを特定します。

      if command -v systemctl >/dev/null 2>&1 && systemctl is-active --quiet firewalld; then
          echo "firewalld"
      elif command -v ufw >/dev/null 2>&1 && sudo ufw status | grep -qw active; then
          echo "ufw"
      elif command -v nft >/dev/null 2>&1 && sudo nft list ruleset 2>/dev/null | grep -q 'table'; then
          echo "nftables"
      elif command -v systemctl >/dev/null 2>&1 && systemctl is-active --quiet iptables; then
          echo "iptables"
      elif command -v iptables >/dev/null 2>&1 && sudo iptables -L 2>/dev/null | grep -qE 'REJECT|DROP|ACCEPT'; then
          echo "iptables"
      else
          echo "none"
      fi

      出力が none の場合、これ以上の操作は必要ありません。そうでない場合は、出力 (firewalldufwnftables、または iptables) に基づいて、以下の対応するコマンドを実行してポート 443 を開きます。

      firewalld

      sudo firewall-cmd --permanent --add-port=443/tcp && sudo firewall-cmd --reload

      ufw

      sudo ufw allow 443/tcp

      nftables

      sudo nft add table inet filter 2>/dev/null
      sudo nft add chain inet filter input '{ type filter hook input priority 0; }' 2>/dev/null
      sudo nft add rule inet filter input tcp dport 443 counter accept 2>/dev/null

      iptables

      sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

      システムの再起動後も iptables ルールが維持されるようにするには、次のコマンドを実行します。

      RHEL/CentOS
      sudo yum install -y iptables-services
      sudo service iptables save
      Debian/Ubuntu
      sudo apt-get install -y iptables-persistent
      sudo iptables-save | sudo tee /etc/iptables/rules.v4 >/dev/null
  3. 次のコマンドを実行して、JBoss の standalone/configuration ディレクトリに cert という名前のディレクトリを作成し、証明書ファイルを保存します。

    mkdir cert # cert という名前の証明書ディレクトリを作成します。  
  4. 証明書ファイルを cert ディレクトリにアップロードします。

    説明

    PuTTY、Xshell、WinSCP などのリモートログインツールのローカルファイルアップロード機能を使用してファイルをアップロードできます。

    Alibaba Cloud Elastic Compute Service (ECS) インスタンスをご利用の場合、詳細については、「リモートデスクトップまたは Windows APP を使用して Windows インスタンスにファイルを転送する」または「Linux インスタンスにファイルをアップロードする」をご参照ください。

  5. JBoss の設定ファイル standalone.xml を開き、次のパラメーターを見つけて、コメントに従って証明書関連の設定を変更します。

    <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
        <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
        <!--
            証明書のパスワードとパスを設定します。
            password を jks-password.txt の証明書パスワードに設定します。
            certificate-key-file を証明書が保存されている実際のパスに設定します。
        -->
        <connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
            <ssl name="https" password="******" certificate-key-file="../standalone/configuration/cert/domain_name.jks"/>
        </connector>
    </subsystem>
    
    <!--JBoss へのリモートアクセスと HTTPS ポートを設定します-->
    <interfaces>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:127.0.0.1}"></inet>
        </interface>
        <!--リモートアクセスを有効にします-->
        <interface name="public">
            <inet-address value="${jboss.bind.address:0.0.0.0}"></inet>
        </interface>
        <interface name="unsecure">
            <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"></inet>
        </interface>
    </interfaces>
    <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
        <socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"></socket>
        <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"></socket>
        <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"></socket>
        <socket-binding name="ajp" port="8009"></socket>
        <!--HTTP ポートを 80 に変更します-->
        <socket-binding name="http" port="80"></socket>
        <!--HTTPS ポートを 443 に変更します-->
        <socket-binding name="https" port="443"></socket>
        <socket-binding name="osgi-http" interface="management" port="8090"></socket>
        <socket-binding name="remoting" port="4447"></socket>
        <socket-binding name="txn-recovery-environment" port="4712"></socket>
        <socket-binding name="txn-status-manager" port="4713"></socket>
        <outbound-socket-binding name="mail-smtp">
            <remote-destination host="localhost" port="25"></remote>
        </outbound-socket-binding>
    </socket-binding-group>
  6. JBoss ディレクトリの bin ディレクトリに移動し、次のコマンドを実行して JBoss サーバーを再起動します。

    sh standalone.sh

ステップ 3:インストールの検証

  1. Web ブラウザーで https://yourdomain のように HTTPS 経由でドメインにアクセスします。yourdomain を実際のドメインに置き換えてください。

  2. ブラウザーのアドレスバーにロックアイコンが表示されれば、証明書は正常にデプロイされています。アクセスエラーが発生した場合やロックアイコンが表示されない場合は、ブラウザーのキャッシュをクリアするか、シークレット (プライバシー) モードで再試行してください。

    image

    Chrome バージョン 117 以降、アドレスバーの image アイコンは新しい image アイコンに置き換えられました。このアイコンをクリックすると、ロック情報を表示できます。

説明

問題が解決しない場合は、「よくある質問」でトラブルシューティングをご参照ください。

よくある質問

インストールまたは更新後、証明書が機能しない、または HTTPS にアクセスできないのはなぜですか?

一般的な原因は次のとおりです。

  • サーバーのセキュリティグループまたはファイアウォールでポート 443 が開かれていない。詳細については、「セキュリティグループとファイアウォールでポート 443 を開く」をご参照ください。

  • 証明書の ドメイン名のバインド に、アクセスされているドメイン名が含まれていない。詳細については、「証明書がターゲットドメイン名と一致するかどうかの確認」をご参照ください。

  • JBoss 設定ファイルを変更した後に JBoss サービスが再起動されていない。詳細については、「JBoss サーバーの再起動」をご参照ください。

  • 証明書ファイルが正しく置換されていない、または JBoss 設定で証明書パスが誤って指定されている。使用している JBoss 設定ファイルと証明書ファイルが最新かつ有効なバージョンであることを確認してください。

  • 他のサービスでの証明書の欠落ドメインが Content Delivery Network (CDN)、Server Load Balancer (SLB)、Web Application Firewall (WAF) などのサービスを使用している場合、それらのサービスにも証明書をインストールする必要があります。「複数の Alibaba Cloud サービスを通過するトラフィックがある場合の証明書のデプロイ場所」を参照して設定を完了してください。

  • 複数サーバーでの不完全なデプロイドメインの DNS が複数のサーバーに解決される場合、証明書はすべてのサーバーにインストールする必要があります。

説明

さらなるトラブルシューティングについては、「ブラウザーのエラーメッセージに基づく証明書デプロイの問題解決」および「SSL 証明書デプロイのトラブルシューティングガイド」をご参照ください。

JBoss にインストールされた SSL 証明書を更新 (置換) するにはどうすればよいですか?

まず、サーバー上の元の証明書ファイル (.jks および .txt) をバックアップします。次に、デジタル証明書管理サービスコンソールにログインし、新しい証明書ファイルをダウンロードして、ターゲットサーバーにアップロードして元のファイルを上書きします。パスとファイル名が同じであることを確認してください。最後に、JBoss サービスを再起動して、新しい証明書を有効にします。