Jetty サーバーに SSL 証明書をインストールして、サーバーにデプロイされている Web サービスへの HTTPS ベースのアクセスを有効にすることができます。このトピックでは、Jetty サーバーに SSL 証明書をインストールする方法について説明します。
このトピックでは、Linux オペレーティングシステムを実行し、jetty-distribution-9.4.51.v20230217 に基づいてデプロイされた Jetty サーバーを例として使用して、インストールについて説明します。インストール操作は、サーバーとオペレーティングシステムのバージョンによって異なります。ご質問がある場合は、アカウントマネージャーにお問い合わせください
前提条件
証明書は、SSL Certificates Service コンソールを使用して発行されます。詳細については、「SSL 証明書の購入」および「証明書を申請する」をご参照ください。
証明書にバインドされているドメイン名で、ドメイン ネーム システム (DNS) の解決が完了しています。ドメイン名は正しく IP アドレスに解決されます。DNS 検証ツールを使用して、ドメイン名の DNS レコードが有効になっているかどうかを確認できます。ツールを使用するには、SSL Certificates Service コンソールにログインし、左側のナビゲーションウィンドウで [共通証明書ツール] > [DNS 設定の確認] を選択します。詳細については、「ドメイン名の DNS レコードを確認する」をご参照ください。
Web サーバーでポート 443 が有効になっています。ポート 443 は、HTTPS 通信に使用される標準ポートです。
Alibaba Cloud Elastic Compute Service( ECS )インスタンスを使用する場合は、ポート 443 での TCP アクセスを許可するようにセキュリティグループのインバウンドルールが構成されていることを確認してください。詳細については、「セキュリティグループルールの追加」をご参照ください。
サードパーティのクラウドサーバーまたはオンプレミスサーバーを使用する場合は、 TCP アクセスを許可するために、ファイアウォールまたはセキュリティグループでポート 443 が有効になっていることを確認してください。
証明書がインストールされている Web サイトを中国本土にあるサーバーにデプロイする場合、工業情報化部( MIIT )の要件に従って、証明書にバインドされているドメイン名のインターネットコンテンツプロバイダー( ICP )登録を完了する必要があります。そうでない場合、Web サイトにアクセスできません。詳細については、「ICP 登録とは」をご参照ください。
手順 1:証明書をダウンロードする
SSL Certificates Service コンソール にログインします。
左側のナビゲーションウィンドウで、 を選択します。
SSL 証明書管理 ページで、管理する証明書を見つけ、詳細操作 列の ダウンロード をクリックします。表示されるページで、 タブをクリックします。
サーバータイプ 列で JKS を見つけ、ダウンロード を 操作 列でクリックします。
ダウンロードした証明書パッケージを解凍します。
次の表は、パッケージから抽出できるファイルについて説明しています。ファイルは、証明書の申請時に使用する証明書署名要求( CSR )の生成方法によって異なります。
[CSR 生成] パラメーターの値
証明書パッケージから抽出されたファイル
システム生成
JKS フォーマットの証明書ファイル: デフォルトでは、証明書ファイルの名前は 証明書 ID_証明書にバインドされているドメイン名 の形式になります。
TXT フォーマットのパスワードファイル: デフォルトでは、パスワードファイルの名前は 証明書フォーマット-パスワード フォーマットになります。
重要証明書をダウンロードするたびに、新しいパスワードファイルが生成されます。パスワードは、ダウンロードした証明書に対してのみ有効です。
手動で入力する
SSL Certificates Service コンソールで作成された CSR を指定した場合、ダウンロードした証明書パッケージから抽出された証明書ファイルは、[ CSR 生成] パラメーターを システム生成 に設定した場合に取得される証明書ファイルと同じです。
SSL Certificates Service コンソールで作成されていない CSR を指定した場合、ダウンロードした証明書パッケージから抽出できるのは PEM 証明書ファイルのみです。パスワードファイルまたは秘密鍵ファイルは抽出できません。証明書ツールキットを使用して、証明書ファイル、パスワードファイル、または秘密鍵ファイルを必要な形式に変換できます。証明書の形式を変換する方法の詳細については、「証明書の形式を変換する」をご参照ください。
手順 2:Jetty サーバーに証明書をインストールする
証明書を格納するために、Jetty のインストールディレクトリに cert ディレクトリを作成します。
次のコマンドを実行して、Jetty のインストールディレクトリに移動します。
cd /usr/local/jetty # Jetty の実際のインストールディレクトリに基づいて値を指定します。
次のコマンドを実行して、cert ディレクトリを作成します。
mkdir cert # cert という名前のディレクトリを作成します。
証明書ファイルを cert ディレクトリにアップロードします。
説明PuTTY 、Xshell 、WinSCP などのリモートログインツールのファイルアップロード機能を使用してファイルをアップロードできます。Alibaba Cloud Elastic Compute Service( ECS )インスタンスにファイルをアップロードする方法の詳細については、「リモートデスクトップ接続または Windows アプリを使用して Windows インスタンスにファイルを転送する」または「Linux インスタンスにファイルをアップロードする」をご参照ください。
Jetty の jetty-ssl.xml および jetty-ssl-context.xml 構成ファイルを開いて、証明書関連の設定を変更します。
次のコマンドを実行して、jetty-ssl-context.xml 構成ファイルを開きます。
vim /usr/local/jetty/etc/jetty-ssl-context.xml
jetty-ssl-context.xml 構成ファイルで、次のパラメーターを見つけて、コメントに基づいて設定を変更します。
説明Jetty の以前のバージョンでは、証明書関連のパラメーターが jetty-ssl.xml 構成ファイルに格納されている場合があります。
<!-- 証明書ファイルの構成。cert/domain_name.jks を証明書ファイルの実際のパスに置き換えます。 --> <Set name="KeyStorePath"> <Property name="jetty.sslContext.keyStoreAbsolutePath"> <Default> <Property name="jetty.base" default="." />/<Property name="jetty.sslContext.keyStorePath" deprecated="jetty.keystore" default="cert/domain_name.jks"/> </Default> </Property> </Set> <!-- 証明書パスワードの構成。デフォルトパラメーターを jks-password.txt ファイルに含まれているパスワードに設定します。 --> <Set name="KeyStorePassword"><Property name="jetty.sslContext.keyStorePassword" deprecated="jetty.keystore.password" default="zf****c4"/></Set> <!-- 証明書キーストアタイプの構成。デフォルトパラメーターを使用している証明書キーストアのタイプに設定します。証明書が JKS 形式の場合は、デフォルトパラメーターを JKS に設定します。 --> <Set name="KeyStoreType"><Property name="jetty.sslContext.keyStoreType" default="JKS"/></Set> <Set name="KeyStoreProvider"><Property name="jetty.sslContext.keyStoreProvider"/></Set> <!-- デフォルトパラメーターを jks-password.txt ファイルに含まれているパスワードに設定します。 --> <Set name="KeyManagerPassword"><Property name="jetty.sslContext.keyManagerPassword" deprecated="jetty.keymanager.password" default="zf****c4"/></Set> <!-- cert/domain_name.jks を証明書ファイルの実際のパスに置き換えます。 --> <Set name="TrustStorePath"> <Property name="jetty.sslContext.trustStoreAbsolutePath"> <Default> <Property name="jetty.base" default="." />/<Property name="jetty.sslContext.trustStorePath" deprecated="jetty.truststore" default="cert/domain_name.jks"/> </Default> </Property> </Set> <!-- オプション。トランスポート層セキュリティ( TLS )プロトコルでサポートされている暗号スイートを指定します。ビジネス要件に基づいて、暗号スイートを指定するかどうかを決定できます。 --> <Set name="ExcludeCipherSuites"> <Array type="String"> <Item>SSL_RSA_WITH_DES_CBC_SHA</Item> <Item>SSL_DHE_RSA_WITH_DES_CBC_SHA</Item> <Item>SSL_DHE_DSS_WITH_DES_CBC_SHA</Item> <Item>SSL_RSA_EXPORT_WITH_RC4_40_MD5</Item> <Item>SSL_RSA_EXPORT_WITH_DES40_CBC_SHA</Item> <Item>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</Item> <Item>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</Item> </Array> </Set>
jetty-ssl.xml 構成ファイルで次のパラメーターを見つけて、HTTPS サービスで使用されるポートを 443 に変更します。
説明Jetty の以前のバージョンでは、HTTPS サービスポートの設定が jetty-https.xml ファイルに格納されている場合があります。
<Set name="port"><Property name="jetty.ssl.port" deprecated="ssl.port" default="443" /></Set>
Jetty のインストールディレクトリにある start.ini ファイルを開き、次のコンテンツをファイルに追加します。
etc/jetty-ssl.xml etc/jetty-ssl-context.xml etc/jetty-https.xml
Jetty のインストールディレクトリで、次のコマンドを実行して Jetty サービスを再起動します。
./bin/jetty.sh restart
手順 3:証明書がインストールされていることを確認する
証明書をインストールした後、証明書にバインドされているドメイン名にアクセスして、証明書がインストールされていることを確認できます。
https://yourdomain # yourdomain を証明書にバインドされているドメイン名に置き換えます。
アドレスバーに南京錠アイコンが表示されている場合、証明書はインストールされています。
Error 404 が報告された場合、Jetty サーバーに Web アプリケーションがデプロイされていません。このエラーは、Jetty サーバーが起動されていないことを示すものではありません。