暗号化されていない HTTP を使用する Web サイトは、送信中にユーザーデータが傍受されるリスクにさらされ、ブラウザには「保護されていない通信」という警告が表示されるため、ユーザーの信頼とビジネスのセキュリティが損なわれます。Windows Apache サーバーに SSL 証明書をデプロイして、HTTPS 暗号化通信を有効にします。このトピックでは、Windows で実行されている Apache サーバーに SSL 証明書をデプロイする方法と、デプロイメントを検証する方法について説明します。
前提条件
開始する前に、以下の要件が満たされていることを確認してください:
証明書ステータス: 信頼できる認証局 (CA) によって発行された 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 と Apache 2.x を例に説明します。Apache のインストールディレクトリの例は
C:\Apache24です。説明お使いの OS または Apache のバージョンによって手順が異なる場合があります。
操作手順
ステップ 1: 証明書の準備
SSL 証明書サービスページに移動します。 証明書の 操作 列で、もっと をクリックして証明書詳細ページを開きます。 ダウンロード タブで、Apache サーバータイプ の証明書をダウンロードします。
ダウンロードした証明書パッケージを解凍します。
パッケージに証明書ファイル (
<your_domain_name>_public.crt)、証明書チェーンファイル (<your_domain_name>_chain.crt)、および秘密鍵ファイル (<your_domain_name>.key) が含まれている場合は、デプロイメント用に 3 つのファイルをすべて安全に保管してください。パッケージに証明書ファイル (
<your_domain_name>_public.crt) と証明書チェーンファイル (<your_domain_name>_chain.crt) のみが含まれ、秘密鍵ファイル (<your_domain_name>.key) が含まれていない場合は、ローカルに保存した秘密鍵ファイルを使用してください。説明OpenSSL または Keytool で CSR を生成した場合、秘密鍵はローカルマシンにのみ存在します。紛失した場合、証明書は使用できなくなり、新しい CSR と秘密鍵で新しい公式証明書を購入する必要があります。
証明書、チェーン、および秘密鍵ファイルをウェブルート外のディレクトリにアップロードします。このガイドでは
D:\certを使用します。説明以下の手順では、Alibaba Cloud Elastic Compute Service (ECS) インスタンスを例として使用します。他の種類のサーバーについては、ご利用のサーバーのドキュメントをご参照ください。
ECS コンソール - インスタンスに移動します。左上のコーナーで、ターゲットリソースのリージョンとリソースグループを選択します。
インスタンス詳細ページで、接続 をクリックし、ワークベンチ を選択します。サーバーデスクトップにログオンします。
[スタート] メニューをクリックし、[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: 証明書のデプロイ
管理者としてコマンドプロンプト (cmd.exe) を開きます:
Apache のインストールディレクトリに移動し、バージョンを確認します。
# コマンドラインで、Apache のインストールディレクトリに移動し、相対パスを使用してコマンドを実行します。 .\httpd.exe -vApache のバージョンに基づいて設定ファイルを変更します。
Apache 2.4.8 以降
証明書ファイルを結合します。
中間証明書がある場合は、サーバー証明書 (
your_domain_name_public.crt) とチェーンファイル (your_domain_name_chain.crt) を結合し、結合ファイル (your_domain_name_fullchain.pem) を作成します。# 中間証明書ファイルの内容をサーバー証明書ファイルに追加して、完全な証明書チェーンを形成します。 copy /b your_domain_name_public.crt + your_domain_name_chain.crt your_domain_name_fullchain.pem結合後、必要なファイルは
your_domain_name_fullchain.pemとyour_domain_name.keyの 2 つだけです。設定ファイルを編集します。
SSL 設定ファイル (例:
httpd-ssl.conf) を開き、以下を追加します。<VirtualHost *:443> # example.com を証明書にバインドされているドメイン名に置き換えます。 ServerName example.com # SSL エンジンを有効にします。 SSLEngine on # 証明書ファイル。実際の結合された証明書ファイル (your_domain_name_fullchain.pem) へのパスを使用します。 # 中間証明書ファイルがない場合は、サーバー証明書ファイル (your_domain_name_public.crt) へのパスを使用します。 SSLCertificateFile D:\cert\your_domain_name_fullchain.pem # 秘密鍵ファイル。これを実際の秘密鍵ファイルへのパスに置き換えます。 SSLCertificateKeyFile D:\cert\your_domain_name.key # その他の設定 # ... </VirtualHost>
Apache 2.4.7 以前
SSL 設定ファイル (例:
httpd-ssl.conf) を開き、以下を追加します。<VirtualHost *:443> # example.com を証明書にバインドされているドメイン名に置き換えます。 ServerName example.com # SSL エンジンを有効にします。 SSLEngine on # 証明書ファイル。これを実際の証明書ファイルへのパスに置き換えます。 SSLCertificateFile D:\cert\your_domain_name_public.crt # 証明書チェーンファイル (別途指定)。これを実際の中間証明書ファイルへのパスに置き換えます。 # 中間証明書がない場合は、このディレクティブを設定する必要はありません。 SSLCertificateChainFile D:\cert\your_domain_name_chain.crt # 秘密鍵ファイル。これを実際の秘密鍵ファイルへのパスに置き換えます。 SSLCertificateKeyFile D:\cert\your_domain_name.key # その他の設定 # ... </VirtualHost>オプション:HTTP から HTTPS への自動転送を設定します。
ドメインの
<VirtualHost>ブロックにRewriteディレクティブを追加します:<VirtualHost *:80> ServerName example.com RewriteEngine On RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </VirtualHost>構成を保存し、Apache の
binディレクトリに移動して、構文エラーを確認します。.\httpd.exe -tSyntax OKは、構成が正しいことを示します。エラーが返された場合は、エラーメッセージに基づいて修正してください。Apache サービスを再起動します。
構文チェックに合格したら、次のコマンドを実行して Apache を再起動し、設定を適用します。
.\httpd.exe -k restart説明別の方法として、Windows サービス (
services.msc) で Apache サービスを見つけて再起動できます。
ステップ 4: デプロイメントの検証
HTTPS 経由でドメイン名にアクセスします。 例:
https://example.com。example.comを実際のドメイン名に置き換えます。ブラウザのアドレスバーに鍵アイコンが表示されれば、証明書は正常にデプロイされています。アクセスエラーが発生した場合や鍵アイコンが表示されない場合は、ブラウザのキャッシュをクリアするか、シークレットモードまたはプライベートモードで再試行してください。

Chrome 117 以降、アドレスバーの
アイコンは新しい
アイコンに置き換えられました。このアイコンをクリックすると、セキュリティロック情報が表示されます。
問題が解決しない場合は、「よくある質問」セクションでトラブルシューティングをご参照ください。
本番環境へのデプロイ
本番環境でアプリケーションをデプロイする際は、セキュリティ、安定性、保守性を向上させるために、以下のベストプラクティスに従ってください:
非管理者ユーザーとしてアプリケーションを実行する:
アプリケーション専用の低権限のシステムユーザーを作成します。管理者権限を持つアカウントを使用してアプリケーションを実行しないでください。
説明ゲートウェイレベルの SSL 設定を使用することを推奨します。これには、SLB や Nginx インスタンスなどのリバースプロキシに証明書をデプロイすることが含まれます。
認証情報管理の外部化:
パスワードなどの機密情報をコードや設定ファイルにハードコーディングしないでください。環境変数、vault、またはクラウドプロバイダーが提供する Key Management Service を使用して認証情報を注入します。
HTTP から HTTPS への自動転送を強制する:
HTTP 経由で Web サイトにアクセスするすべてのトラフィックが自動的に HTTPS に転送されるようにしてください。これにより、中間者 (MITM) 攻撃を防ぐことができます。
最新の TLS プロトコルを設定する:
サーバー設定で、SSLv3、TLS 1.0、TLS 1.1 などの廃止された安全でないプロトコルを無効にします。TLS 1.2 と TLS 1.3 のみを有効にしてください。
証明書の監視と更新の自動化:
証明書がデプロイされた後、ドメイン名監視を有効にすることを推奨します。Alibaba Cloud は証明書の有効期間を自動的にチェックし、証明書の有効期限が切れる前にリマインダーを送信します。これにより、証明書をタイムリーに更新してサービスの中断を防ぐことができます。詳細については、「パブリックドメイン名監視の購入と有効化」をご参照ください。
よくある質問
証明書が機能しない、または HTTPS にアクセスできない
一般的な原因:
サーバーのセキュリティグループまたはファイアウォールでポート 443 が開いていません。詳細については、「ステップ 2: システムとネットワークの設定」をご参照ください。
ドメイン名が、証明書のドメイン名のバインド内のドメインと一致しません。ドメイン名の照合を確認してください。
設定変更後に Apache サービスが再起動されていません。「ステップ 3: 証明書のデプロイ」の説明に従って再起動してください。
証明書ファイルが正しく置き換えられていないか、設定が間違ったパスを指しています。証明書ファイルと Apache の設定が最新で有効であることを確認してください。
ドメイン名が CDN、SLB、WAF などのクラウドサービスと統合されていますが、証明書が対応するサービスにインストールされていません。詳細については、「トラフィックが複数のクラウドサービスを通過する場合の証明書のデプロイ場所」をご参照ください。
ドメイン名が複数のサーバーに解決されますが、証明書はその一部にしかインストールされていません。各サーバーに証明書をインストールする必要があります。
さらなるトラブルシューティングについては、「ブラウザのエラーに基づく証明書デプロイの問題のトラブルシューティング」および「SSL 証明書デプロイのトラブルシューティングガイド」をご参照ください。
Apache にインストールされた SSL 証明書を更新または置換する方法
既存の証明書ファイル (.crt および .key) をバックアップします。SSL 証明書サービスコンソールから新しい証明書をダウンロードし、サーバー上の同じパスとファイル名にファイルをアップロードして、Apache を再起動します。