暗号化されていない HTTP プロトコルを使用する Web サイトは、データ盗難に対して脆弱です。ブラウザはこれらのサイトを「保護されていない通信」としてマークするため、ユーザーの信頼を損ない、ビジネスのセキュリティを危険にさらす可能性があります。Windows で実行されている Tomcat サーバーに SSL 証明書をデプロイすることで、暗号化された HTTPS 通信を有効にできます。このトピックでは、Windows で実行されている Tomcat サーバーに SSL 証明書をデプロイする方法と、インストール後に HTTPS 接続を検証する方法について説明します。
使用上の注意
開始する前に、次の要件を満たしていることを確認してください:
証明書のステータス: 信頼できる認証局によって発行された SSL 証明書が必要です。証明書の有効期限が近づいているか、すでに有効期限が切れている場合は、まず SSL 証明書を更新する必要があります。
ドメイン名の一致: 証明書が、セキュリティで保護するすべてのドメイン名と一致していることを確認してください。ドメイン名を追加または変更するには、公式証明書の購入またはドメイン名の追加と置換ができます。
完全一致ドメイン名: 指定されたドメインにのみ適用されます。
example.comはexample.comのみを保護します。www.example.comはwww.example.comのみを保護します。
ワイルドカードドメイン名: 第 1 レベルのサブドメインにのみ適用されます。
*.example.comは、www.example.comやa.example.comなどの第 1 レベルのサブドメインに適用されます。*.example.comは、ルートドメインexample.comやa.b.example.comなどの複数レベルのサブドメインを保護しません。
説明複数レベルのサブドメインを照合するには、ドメイン名のバインド フィールドに、
a.b.example.comなどの完全なドメイン、または*.b.example.comなどの対応するワイルドカードドメインを含める必要があります。サーバー権限:
Administratorアカウントまたは管理者権限を持つアカウントを使用する必要があります。ドメイン名の名前解決: ドメインの DNS レコードが設定され、サーバーのパブリック IP アドレスに解決されます。
環境の依存関係: このトピックでは、Windows Server 2025 と Tomcat 9.0.105 を例として使用します。Tomcat のインストールパスの例は
C:\apache-tomcat-9.0.105です。説明デプロイメントの手順は、オペレーティングシステムまたは Web サーバーのバージョンによって異なる場合があります。
手順
ステップ 1: SSL 証明書の準備
SSL 証明書ページに移動します。対象の証明書の 操作 列で、[その他] をクリックして証明書の詳細ページを開きます。次に、ダウンロード タブで、サーバータイプ が [Tomcat] の証明書をダウンロードします。
ダウンロードした証明書パッケージを解凍します。パッケージには、証明書ファイル (.pfx または .jks) とパスワードファイル (.txt) が含まれています。
説明証明書をリクエストしたときに OpenSSL や Keytool などのツールを使用して証明書署名リクエスト (CSR) ファイルを生成した場合、秘密鍵ファイルはローカルマシンにのみ保存されます。ダウンロードした証明書パッケージには秘密鍵は含まれていません。秘密鍵を紛失した場合、証明書は使用できません。新しい証明書を購入して、新しい CSR と秘密鍵を生成する必要があります。
証明書と秘密鍵ファイルをサーバーにアップロードし、安全な外部ディレクトリに保存します。このトピックのパスの例は
D:\certです。説明以下の手順では、Alibaba Cloud ECS インスタンスを例として使用します。他の種類のサーバーについては、サーバーの公式ドキュメントをご参照ください。
ECS コンソール - インスタンスに移動します。上部のナビゲーションバーで、対象のリージョンとリソースグループを選択します。
インスタンスの詳細ページに移動します。[リモート接続] をクリックし、[Workbench 経由で接続] を選択します。プロンプトに従ってサーバーデスクトップにログインします。
サーバーの左下隅にある [スタート] メニューをクリックします。[この PC]、[コンピューター]、または [ファイル エクスプローラー] を見つけて開きます。
[リダイレクトされたドライブとフォルダー] で、[Workbench On ***] をダブルクリックします。ローカルマシンからこのディレクトリに証明書ファイルをドラッグし、フォルダー内を右クリックして [更新] を選択します。

オブジェクトファイルを
D:\certディレクトリにコピーします。重要インスタンスに再接続するか、インスタンスを終了すると、Workbench は容量を解放するために [リダイレクトされたドライブとフォルダー] ディレクトリからアップロードされたすべてのファイルを自動的に消去します。このディレクトリはファイル転送専用です。このディレクトリにファイルを保存しないでください。
ステップ 2: システムとネットワーク環境を設定する
セキュリティグループでポート 443 を開きます。
重要サーバーがクラウドプラットフォームにデプロイされている場合は、そのセキュリティグループが TCP ポート 443 でのインバウンドアクセスを許可していることを確認してください。そうしないと、インターネットからサービスにアクセスできません。以下の手順では Alibaba Cloud ECS を例として使用します。他のクラウドプラットフォームについては、公式ドキュメントをご参照ください。
ECS インスタンスページに移動し、対象の ECS インスタンスが配置されているリージョンを選択し、インスタンス名をクリックしてインスタンスの詳細ページに移動します。
をクリックし、[認証ポリシー] が [許可]、[プロトコルタイプ] が TCP、[宛先ポート範囲] が HTTPS (443)、[認証オブジェクト] が [任意 (0.0.0.0/0)] に設定されたルールが存在することを確認します。
上記のルールが存在しない場合は、「セキュリティグループルールを追加する」をご参照のうえ、対応するルールを対象のセキュリティグループに追加してください。
サーバーのファイアウォールでポート 443 を開きます。
Windows サーバーにログインし、左下隅の [スタート] メニューをクリックして、[コントロール パネル] を開きます。
をクリックします。
ファイアウォールが次の図に示すようにオフになっている場合、これ以上の操作は必要ありません。

ファイアウォールがオンの場合は、次の手順に従って HTTPS ルールを許可します。
左側のナビゲーションウィンドウで、 をクリックし、[プロトコル] が TCP、[ローカル ポート] が 443、[操作] が [ブロック] のインバウンドルールがあるかどうかを確認します。
そのようなルールが存在する場合は、右クリックして [プロパティ] を選択します。[全般] タブで、設定を [接続を許可する] に変更し、[適用] をクリックします。
ファイアウォールの構成の詳細については、「ファイアウォールルールを設定する」をご参照ください。
ステップ 3: Tomcat サーバーに証明書をデプロイする
Tomcat の設定ファイル
server.xmlを編集して、証明書関連の設定を変更します。パスの例はC:\apache-tomcat-9.0.105\conf\server.xmlです。PFX 形式の Tomcat 9.0 設定例
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" maxParameterCount="1000"> <SSLHostConfig> <!-- D:/cert/example.com.pfx を証明書の実際のパスに置き換えます。your_certificate_password を pfx-password.txt ファイルの内容に置き換えます。 --> <Certificate certificateKeystoreFile="D:/cert/example.com.pfx" certificateKeystorePassword="your_certificate_password" type="RSA"/> </SSLHostConfig> </Connector>JKS 形式の Tomcat 9.0 設定例
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" maxParameterCount="1000"> <SSLHostConfig> <!-- D:/cert/example.com.jks を証明書の実際のパスに置き換えます。your_certificate_password を jks-password.txt ファイルの内容に置き換えます。 --> <Certificate certificateKeystoreFile="D:/cert/example.com.jks" certificateKeystorePassword="your_certificate_password" type="RSA" /> </SSLHostConfig> </Connector>オプション: HTTP から HTTPS への自動リダイレクトを設定します。
Tomcat の設定ファイル
server.xmlを編集します。HTTP コネクタ (Tomcat はデフォルトでポート 8080 をリッスンします) を見つけ、`redirectPort` 属性を変更します。属性が存在しない場合は追加します。<!-- Tomcat はデフォルトでポート 8080 をリッスンします。これを、リッスンしている実際の HTTP ポートに変更します。 --> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" maxParameterCount="1000" />web.xmlファイルの末尾に次の設定を追加します。<security-constraint> <web-resource-collection> <web-resource-name>SSL</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>説明これらの設定を保存すると、サーバーは HTTP リクエストを HTTPS に自動的にリダイレクトします。
設定を保存した後、Tomcat のインストール先の
binディレクトリに移動し、サーバーを再起動して SSL 設定を適用します。Tomcat サーバーを停止します。
shutdown.batTomcat サーバーを起動します。
startup.bat
ステップ 4: デプロイメントを検証する
Web ブラウザで HTTPS 経由でドメインにアクセスします。例:
https://yourdomain。yourdomainを実際のドメインに置き換えます。ブラウザのアドレスバーにロックアイコンが表示された場合、証明書は正常にデプロイされています。アクセスエラーが発生した場合やロックアイコンが表示されない場合は、ブラウザのキャッシュをクリアするか、シークレット (プライバシー) モードで再試行してください。

バージョン 117 以降、Chrome のアドレスバーの
アイコンは新しい
アイコンに置き換えられました。このアイコンをクリックすると、ロック情報を表示できます。
問題が解決しない場合は、「よくある質問」セクションでトラブルシューティングをご参照ください。
本番稼働
本番環境にデプロイする際は、セキュリティ、安定性、保守性を向上させるために、以下のベストプラクティスに従ってください:
非管理者ユーザーとして実行:
アプリケーション専用の低権限のシステムユーザーを作成します。管理者権限を持つアカウントでアプリケーションを実行しないでください。
説明推奨されるアプローチは、ゲートウェイレイヤーで SSL を設定することです。これには、Server Load Balancer (SLB) や Nginx などのリバースプロキシに証明書をデプロイすることが含まれます。ゲートウェイは HTTPS トラフィックを終端させ、復号化された HTTP トラフィックをバックエンドアプリケーションに転送します。
認証情報管理の外部化:
パスワードやその他の機密情報をコードや設定ファイルにハードコーディングしないでください。環境変数、Vault、またはクラウドプロバイダーのキー管理サービスを使用して認証情報を注入します。
HTTP から HTTPS へのリダイレクトの強制:
中間者攻撃を防ぐために、すべての HTTP トラフィックを HTTPS にリダイレクトします。
最新の TLS プロトコルの設定:
サーバー設定で、古くて安全でないプロトコル (SSLv3、TLSv1.0、TLSv1.1 など) を無効にします。TLSv1.2 と TLSv1.3 のみを有効にします。
証明書の監視と更新の自動化:
証明書をデプロイした後、ドメイン監視を有効にします。Alibaba Cloud は証明書の有効期間を自動的にチェックし、有効期限が切れる前に更新リマインダーを送信して、タイムリーな更新とサービスの中断の回避を支援します。詳細な手順については、「パブリックドメイン名監視の購入と有効化」をご参照ください。
よくある質問
インストールまたは更新後、証明書が機能しない、または HTTPS にアクセスできないのはなぜですか?
一般的な原因は次のとおりです:
サーバーのセキュリティグループまたはファイアウォールでポート 443 が開いていません。詳細については、「システムとネットワーク環境を設定する」をご参照ください。
アクセスしているドメイン名が証明書の ドメイン名のバインド フィールドに含まれていません。詳細については、「ドメイン名の一致」をご参照ください。
設定ファイルの変更後に Tomcat サービスが再起動されていません。詳細については、「Tomcat サービスを停止して再起動する」をご参照ください。
証明書ファイルが正しく置き換えられていないか、Tomcat の設定で証明書パスが正しく指定されていません。Tomcat の設定ファイルと証明書ファイルが最新かつ有効なバージョンであるかどうかを確認してください。
他のサービスでの証明書の欠落: ドメインが Content Delivery Network (CDN)、Server Load Balancer (SLB)、Web Application Firewall (WAF) などのサービスを使用している場合、証明書はそれらのサービスにもインストールする必要があります。セットアップを完了するには、「複数の Alibaba Cloud サービスを通過するトラフィックの証明書デプロイメント場所」をご参照ください。
複数サーバーでの不完全なデプロイメント: ドメインの DNS が複数のサーバーに解決される場合、証明書はすべてのサーバーにインストールする必要があります。
さらなるトラブルシューティングについては、「ブラウザのエラーメッセージに基づく証明書デプロイメントの問題の解決」および「SSL 証明書デプロイメントのトラブルシューティングガイド」をご参照ください。
Tomcat にインストールされている SSL 証明書を更新または置換するにはどうすればよいですか?
まず、サーバー上の元の証明書ファイル (.pfx または .jks、および .txt ファイル) をバックアップします。次に、Certificate Management Service コンソールにログインし、新しい証明書ファイルをダウンロードして、対象のサーバーにアップロードして元のファイルを上書きします。パスとファイル名が同じであることを確認してください。最後に、Tomcat サービスを再起動して、新しい証明書を有効にします。
Tomcat を再起動すると、サービスの起動に失敗し、catalina.log ファイルに LifecycleException または Keystore was tampered with, or password was incorrect エラーが表示されます。
この問題は通常、次のいずれかの理由で発生します:
不正なパスワード:
server.xml内のcertificateKeystorePasswordが、実際の証明書のパスワードと一致しません。パスワードを注意深く確認してください。パスワードでは大文字と小文字が区別されます。不正な証明書パス:
certificateKeystoreFileで指定されたパスが正しくないため、Tomcat は証明書ファイルを見つけられません。パスが正しく記述されていることを確認してください。conf/からの相対パスを使用することをお勧めします。不正な証明書フォーマットタイプ:
certificateKeystoreTypeが実際の証明書ファイル形式と一致しません。 PFX ファイルにはPKCS12を、JKS ファイルにはJKSを使用してください。パスワードに特殊文字が含まれている:
パスワードに
&、<、または>などの XML 特殊文字が含まれていますが、server.xmlファイルではエスケープされていません。
HTTP リクエストを HTTPS に自動的にリダイレクトするにはどうすればよいですか?
詳細については、「HTTP から HTTPS への自動リダイレクトを設定する」セクションをご参照ください。設定ファイルを変更してから、サービスを再起動します。