JBoss サーバーに SSL 証明書をインストールして、HTTPS 経由での Web サービスへのセキュアなアクセスを有効にします。このトピックでは、インストール手順について説明します。
このトピックでは、Linux と jboss-as-7.1.1.Final を例として使用します。デプロイメント手順は、ご利用のオペレーティングシステムと JBoss サーバーのバージョンによって異なる場合があります。
前提条件
操作手順
ステップ 1:SSL 証明書のダウンロード
SSL 証明書管理ページに移動し、デプロイする証明書を見つけて、次の情報を確認します。
証明書のステータス:ステータスは 発行済み である必要があります。ステータスが まもなく期限切れ または 期限切れ の場合は、SSL 証明書を更新する必要があります。
ドメイン名のバインド:この設定は、保護したいすべてのドメイン名と一致する必要があります。一致しない場合、HTTPS 経由でアクセスされたときにセキュリティ警告が表示されます。ドメイン名を追加または変更するには、「ドメイン名の追加と置換」をご参照ください。
ターゲット証明書の 操作 列で、[詳細] をクリックして証明書の詳細ページを開きます。ダウンロード タブで、サーバータイプ を [JKS] に設定し、証明書をダウンロードします。
解凍されたパッケージには、証明書ファイル (
.jks拡張子で完全な証明書チェーンを含む) と証明書パスワードファイル (jks-password.txt) が含まれています。説明JKS は Java 固有のキーストアフォーマットであり、Java 環境での使用に適しています。
ステップ 2:JBoss サーバーへの SSL 証明書のインストール
Linux サーバーにログインします。
Alibaba Cloud サーバー
以下の手順では、Alibaba Cloud Elastic Compute Service (ECS) を例として使用します。他のタイプのサーバーについては、対応する製品ドキュメントをご参照ください。
ECS コンソールにログインします。左上のコーナーで、ターゲット ECS インスタンスが配置されているリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。[インスタンス] ページで、ターゲット ECS インスタンスを見つけ、[操作] 列の [接続] をクリックします。
表示されるダイアログボックスで、ワークベンチ を選択し、今すぐサインイン をクリックします。
接続方法として [ターミナル] を選択し、必要な認証情報を入力し、画面の指示に従ってサーバーターミナルにログインします。詳細については、「ワークベンチを使用して ECS インスタンスにログイン」をご参照ください。
説明セキュリティグループルールを追加するように求める注意が表示された場合は、[今すぐ追加] をクリックします。
他のクラウドプロバイダーのサーバー
クラウドプロバイダーが提供するリモート接続機能を使用して、サーバーターミナルにログインします。
クラウド以外のサーバー (物理サーバーや IDC ホストサーバーなど)
ローカルコンピューターから SSH ツールを使用してサーバーターミナルにログインします。
以下のコマンドの一部は、オペレーティングシステムによって異なります。ご利用のサーバーのオペレーティングシステムに適用されるコマンドを選択してください。
RHEL/CentOS シリーズ:Alibaba Cloud Linux、Red Hat Enterprise Linux、CentOS、AlmaLinux、Rocky Linux、Anolis OS、およびそれらの派生 OS を含みます。
Debian/Ubuntu シリーズ:Debian、Ubuntu、およびそれらの派生 OS を含みます。
セキュリティグループとファイアウォールでポート 443 を開きます。
サーバーターミナルで次のコマンドを実行して、ポート 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 を開きます。セキュリティグループの設定でポート 443 を開きます。
重要サーバーがクラウドプラットフォームにデプロイされている場合は、そのセキュリティグループが TCP ポート 443 でのインバウンドトラフィックを許可していることを確認してください。そうでない場合、サービスにアクセスできなくなります。以下の手順では、Alibaba Cloud ECS を例として使用します。他のクラウドプラットフォームについては、公式ドキュメントをご参照ください。
Elastic Compute Service (ECS) インスタンスページに移動し、ターゲットインスタンス名をクリックしてインスタンス詳細ページに移動します。詳細については、「セキュリティグループルールの追加」をご参照ください。[セキュリティグループの詳細] セクションで、[アクション] を [許可]、[プロトコル] を [カスタム TCP]、[宛先 (現在のインスタンス)] を HTTPS (443)、[ソース] を [0.0.0.0/0 (任意)] に設定したルールを追加します。
ファイアウォールでポート 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の場合、これ以上の操作は必要ありません。そうでない場合は、出力 (firewalld、ufw、nftables、またはiptables) に基づいて、以下の対応するコマンドを実行してポート 443 を開きます。firewalld
sudo firewall-cmd --permanent --add-port=443/tcp && sudo firewall-cmd --reloadufw
sudo ufw allow 443/tcpnftables
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/nulliptables
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPTシステムの再起動後も iptables ルールが維持されるようにするには、次のコマンドを実行します。
RHEL/CentOS
sudo yum install -y iptables-services sudo service iptables saveDebian/Ubuntu
sudo apt-get install -y iptables-persistent sudo iptables-save | sudo tee /etc/iptables/rules.v4 >/dev/null
次のコマンドを実行して、JBoss の standalone/configuration ディレクトリに cert という名前のディレクトリを作成し、証明書ファイルを保存します。
mkdir cert # cert という名前の証明書ディレクトリを作成します。証明書ファイルを cert ディレクトリにアップロードします。
説明PuTTY、Xshell、WinSCP などのリモートログインツールのローカルファイルアップロード機能を使用してファイルをアップロードできます。
Alibaba Cloud Elastic Compute Service (ECS) インスタンスをご利用の場合、詳細については、「リモートデスクトップまたは Windows APP を使用して Windows インスタンスにファイルを転送する」または「Linux インスタンスにファイルをアップロードする」をご参照ください。
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>JBoss ディレクトリの bin ディレクトリに移動し、次のコマンドを実行して JBoss サーバーを再起動します。
sh standalone.sh
ステップ 3:インストールの検証
Web ブラウザーで
https://yourdomainのように HTTPS 経由でドメインにアクセスします。yourdomainを実際のドメインに置き換えてください。ブラウザーのアドレスバーにロックアイコンが表示されれば、証明書は正常にデプロイされています。アクセスエラーが発生した場合やロックアイコンが表示されない場合は、ブラウザーのキャッシュをクリアするか、シークレット (プライバシー) モードで再試行してください。

Chrome バージョン 117 以降、アドレスバーの
アイコンは新しい
アイコンに置き換えられました。このアイコンをクリックすると、ロック情報を表示できます。
問題が解決しない場合は、「よくある質問」でトラブルシューティングをご参照ください。
よくある質問
インストールまたは更新後、証明書が機能しない、または 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 サービスを再起動して、新しい証明書を有効にします。