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

Certificate Management Service:Apache サーバー (Windows) に SSL 証明書をインストールする

最終更新日:Nov 05, 2025

Web サイトが暗号化されていない HTTP プロトコルを使用している場合、ユーザーデータは傍受されやすくなります。ブラウザには [保護されていない通信] という警告も表示され、ユーザーの信頼とビジネスのセキュリティを損なう可能性があります。Windows 上の Apache サーバーに SSL 証明書をデプロイすると、暗号化された HTTPS 通信が可能になります。この Topic では、Windows 上の Apache サーバーに SSL 証明書をインストールし、HTTPS 設定を検証する方法について説明します。

重要

ご不明な点がある場合は、アカウントマネージャーにお問い合わせください

使用上の注意

開始する前に、次の要件を満たしていることを確認してください:

  • 証明書のステータス: 信頼できる認証局によって発行された SSL 証明書が必要です。証明書の有効期限が近づいているか、すでに有効期限が切れている場合は、まず SSL 証明書を更新する必要があります。

  • ドメイン名の一致: 証明書が保護したいすべてのドメイン名と一致していることを確認してください。ドメイン名を追加または変更するには、公式証明書を購入するか、ドメイン名を追加および置換することができます。

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

      • example.comexample.com のみを保護します。

      • www.example.comwww.example.com のみを保護します。

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

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

      • *.example.com は、ルートドメイン example.coma.b.example.com などの複数レベルのサブドメインを保護しません。

    説明

    複数レベルのサブドメインを一致させるには、ドメイン名のバインド フィールドに a.b.example.com などの完全なドメイン名、または *.b.example.com などの対応するワイルドカードドメイン名を含める必要があります。

  • サーバー権限: Administrator アカウントまたは管理者権限を持つアカウントを使用する必要があります。

  • ドメイン名の名前解決: ドメインの DNS レコードが設定され、サーバーのパブリック IP アドレスに解決されます。

  • 環境の依存関係: この Topic では、Windows Server 2025 と Apache 2.x を例として使用します。Apache のインストールディレクトリの例は C:\Apache24 です。

    説明

    デプロイメント手順は、オペレーティングシステムまたは Web サーバーのバージョンによって異なる場合があります。

手順

ステップ 1: SSL 証明書の準備

  1. SSL 証明書管理ページに移動します。対象の証明書の 操作 列で、[ダウンロード] をクリックします。ダウンロード タブで、[Apache] サーバータイプ の証明書をダウンロードします。

  2. ダウンロードした証明書パッケージを解凍します:

    • パッケージに証明書ファイル (<YOUR_DOMAIN_NAME>_public.crt)、中間証明書ファイル (<YOUR_DOMAIN_NAME>_chain.crt)、および秘密鍵ファイル (<YOUR_DOMAIN_NAME>.key) が含まれている場合は、これらのファイルを安全に保管してください。デプロイメントに必要になります。

    • パッケージに証明書ファイル (<YOUR_DOMAIN_NAME>_public.crt) と中間証明書ファイル (<YOUR_DOMAIN_NAME>_chain.crt) のみが含まれ、秘密鍵ファイル (<YOUR_DOMAIN_NAME>.key) が含まれていない場合は、ローカルに保存した秘密鍵ファイルを使用して証明書をデプロイする必要があります。

      説明

      証明書をリクエストする際に OpenSSL や Keytool などのツールを使用して CSR ファイルを生成した場合、秘密鍵ファイルはローカルに保存され、ダウンロードした証明書パッケージには含まれません。秘密鍵を紛失した場合、証明書は使用できません。公式証明書を購入し、新しい CSR と秘密鍵を生成する必要があります。

  3. 証明書ファイル、中間証明書ファイル、秘密鍵ファイルをサーバーにアップロードし、安全な外部ディレクトリに保存します。この Topic では、D:\cert を例として使用します。

    説明

    以下の手順では、Alibaba Cloud ECS インスタンスを例として使用します。他の種類のサーバーについては、公式ドキュメントをご参照ください。

    1. ECS コンソール - インスタンス に移動します。上部のナビゲーションバーで、対象のリージョンとリソースグループを選択します。

    2. 対象のインスタンスを見つけます。[接続] をクリックし、[今すぐサインイン] を選択します。プロンプトに従ってサーバーのデスクトップにログオンします。

    3. サーバーの左下隅にある [スタート] メニューをクリックします。[この PC] を見つけて開きます。

    4. [リダイレクトされたドライブとフォルダー] で、[workbench On ***] をダブルクリックします。ローカルマシンからこのディレクトリに証明書ファイルをドラッグし、フォルダーを右クリックして [更新] を選択します。

      image

    5. 証明書ファイルを D:\cert ディレクトリにコピーします。

      重要

      インスタンスに再接続するか、インスタンスを終了すると、workbench は容量を節約するために [リダイレクトされたドライブとフォルダー] ディレクトリからアップロードされたすべてのファイルを自動的にクリアします。このディレクトリはファイル転送専用です。ここにファイルを保存しないでください。

ステップ 2: システムとネットワーク環境を設定する

  1. セキュリティグループでポート 443 を開く。

    重要

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

    1. ECS インスタンスページに移動し、対象の ECS インスタンスがあるリージョンを選択し、インスタンス名をクリックしてインスタンス詳細ページに移動します。

    2. [セキュリティグループ] > [すべてのイントラネットインバウンドルール] をクリックし、次の設定のルールが存在することを確認します: [認証ポリシー][許可] に設定され、[プロトコルタイプ] が TCP、[宛先ポート範囲] が HTTPS (443)、[認証オブジェクト][Anywhere (0.0.0.0/0)] に設定されていること。

    3. 上記のルールが存在しない場合は、「セキュリティグループルールを追加する」をご参照ください。

  2. サーバーファイアウォールでポート 443 を開く。

    1. Windows サーバーにログオンし、左下隅の [スタート] メニューをクリックして、[コントロールパネル] を開きます。

    2. [システムとセキュリティ] > [Windows ファイアウォール] > [ファイアウォールの状態の確認] をクリックします。

    3. ファイアウォールが次の図のようにオフになっている場合、これ以上の操作は必要ありません。image

    4. ファイアウォールがオンになっている場合は、次の手順に従って HTTPS ルールを許可します。

      1. 左側のナビゲーションウィンドウで、[詳細設定] > [受信の規則] をクリックし、[プロトコル] が TCP、[ローカルポート] が 443、[操作][ブロック] である受信の規則があるかどうかを確認します。

      2. そのようなルールが存在する場合は、右クリックして [プロパティ] を選択します。[全般] タブで、設定を [接続を許可する] に変更し、[適用] をクリックします。

      3. ファイアウォールの設定の詳細については、「ファイアウォールルールを設定する」をご参照ください。

ステップ 3: Apache サーバーに証明書をデプロイする

コマンドプロンプト (cmd.exe) を管理者として実行し、次の操作を実行します:

  1. Apache のインストールディレクトリに移動し、次のコマンドを実行して Apache のバージョンを確認します。

    # コマンドラインで、Apache のインストールディレクトリに移動し、相対パスを使用してコマンドを実行します。
    .\httpd.exe -v
  2. Apache のバージョンに基づいて設定ファイルを変更します。

    Apache 2.4.8 以降

    1. 証明書ファイルを結合します。

      中間証明書が存在する場合、サーバー証明書ファイル (domain_name_public.crt) と中間証明書ファイル (domain_name_chain.crt) を追加して、完全な証明書チェーンファイル (domain_name_fullchain.pem) を作成する必要があります。

      # 中間証明書ファイルの内容をサーバー証明書ファイルに追記して、完全な証明書チェーンファイルを作成します。
      copy /b domain_name_public.crt + domain_name_chain.crt domain_name_fullchain.pem

      結合後、必要なファイルは domain_name_fullchain.pemdomain_name.key の 2 つだけです。

    2. 設定ファイルを変更します。

      対象の設定ファイル (例: httpd-ssl.conf) を開き、次の設定を追加します:

      <VirtualHost *:443>
          
          # example.com を証明書にバインドされているドメイン名に置き換えます。
          ServerName example.com
          
          # SSL エンジンを有効にします。
          SSLEngine on
          
          # 証明書ファイル。実際の結合された証明書ファイル (domain_name_fullchain.pem) へのパスを使用します。
          # 中間証明書ファイルが存在しない場合は、サーバー証明書ファイル (domain_name_public.crt) のパスを使用します。
          SSLCertificateFile D:\cert\domain_name_fullchain.pem
          
          # 秘密鍵ファイル。これを実際の秘密鍵ファイルのパスに置き換えます。
          SSLCertificateKeyFile D:\cert\domain_name.key
          
          # その他の設定。
          # ...
          
      </VirtualHost>

    Apache 2.4.7 以前

    対象の設定ファイル (例: httpd-ssl.conf) を開き、次の設定を追加します:

    <VirtualHost *:443>
        
        # example.com を証明書にバインドされているドメイン名に置き換えます。
        ServerName example.com
        
        # SSL エンジンを有効にします。
        SSLEngine on
        
        # 証明書ファイル。これを実際の証明書ファイルのパスに置き換えます。
        SSLCertificateFile D:\cert\domain_name_public.crt
        
        # 証明書チェーンファイル (別途指定)。これを実際の中間証明書ファイルのパスに置き換えます。
        # 中間証明書がない場合は、このディレクティブを設定する必要はありません。
        SSLCertificateChainFile D:\cert\domain_name_chain.crt
        
        # 秘密鍵ファイル。これを実際の秘密鍵ファイルのパスに置き換えます。
        SSLCertificateKeyFile D:\cert\domain_name.key
        
        # その他の設定。
        # ...
        
    </VirtualHost>
  3. オプション: HTTP から HTTPS への自動リダイレクトを設定します。

    対象の設定ファイルで、ドメインの <VirtualHost> を変更し、Rewrite ディレクティブを追加します:

    <VirtualHost *:80>
        ServerName example.com
        RewriteEngine On
        RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    </VirtualHost>
  4. 設定の変更を完了して保存した後、Apache のインストールの bin ディレクトリに移動し、次のコマンドを実行して構文エラーを確認します。

    .\httpd.exe -t

    Syntax OK が返された場合、設定は正しいです。エラーが報告された場合は、エラーメッセージに基づいて設定ファイルを確認してください。

  5. Apache サービスを再起動します。

    構文が正しい場合は、次のコマンドを実行してサービスを再起動し、SSL 設定を適用します。

    .\httpd.exe -k restart
    説明

    Windows サービス管理 (services.msc) で Apache サービスを見つけて再起動することもできます。

ステップ 4: デプロイメントの検証

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

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

    image

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

説明

問題が解決しない場合は、「よくある質問」をご参照ください。

本番環境への移行

本番環境にデプロイする際は、セキュリティ、安定性、保守性を向上させるために、以下のベストプラクティスに従ってください:

  • 非管理者ユーザーとして実行:

    アプリケーション専用の低権限のシステムユーザーを作成します。管理者権限を持つアカウントでアプリケーションを実行しないでください。

    説明

    推奨されるアプローチは、ゲートウェイレイヤーで SSL を設定することです。これには、Server Load Balancer (SLB) に証明書をデプロイすることが含まれます。ゲートウェイは HTTPS トラフィックを終端し、復号化された HTTP トラフィックをバックエンドアプリケーションに転送します。

  • 認証情報管理の外部化:

    パスワードやその他の機密情報をコードや設定ファイルにハードコーディングしないでください。環境変数、Vault、またはクラウドプロバイダーのキー管理サービスを使用して認証情報を注入します。

  • HTTP から HTTPS へのリダイレクトの強制:

    すべての中間者攻撃を防ぐために、すべての HTTP トラフィックを HTTPS にリダイレクトします。

  • 最新の TLS プロトコルの設定:

    サーバー設定で古い安全でないプロトコル (SSLv3、TLSv1.0、TLSv1.1 など) を無効にします。TLSv1.2 と TLSv1.3 のみを有効にします。

  • 証明書の監視と更新の自動化:

    証明書をデプロイした後、ドメイン監視を有効にします。Alibaba Cloud は自動的に証明書の有効期間をチェックし、有効期限が切れる前に更新リマインダーを送信して、タイムリーな更新とサービス中断の回避を支援します。詳細な手順については、「パブリックドメイン名監視の購入と有効化」をご参照ください。

よくある質問

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

この問題は、多くの場合、次のいずれかの設定上の問題が原因です。順番に確認してください:

  • ポート 443 がブロックされている: サーバーのセキュリティグループまたはファイアウォールでポート 443 が開いていません。システムとネットワーク環境を設定する」をご参照ください。

  • ドメインの不一致: アクセスしているドメインが証明書の ドメイン名のバインド にリストされていません。ドメイン名の一致」をご参照ください。

  • Apache サービスが再起動されていない: Apache 設定ファイルの変更後に Apache サービスが再起動されていません。「Apache サービスを再起動します。」をご参照ください。

  • 証明書の設定が正しくない: 証明書ファイルが正しく置き換えられていないか、Apache の設定で証明書のパスが正しく指定されていません。Apache 設定ファイルと使用されている証明書ファイルが有効で最新であるかどうかを確認できます。

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

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

説明

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

Apache サーバーで SSL 証明書を更新する正しい方法は何ですか?

Apache 上の既存の SSL 証明書を更新するには、古い証明書ファイルを新しいものに置き換え、サービスを再起動する必要があります。

次の手順に従ってください:

  1. 既存のファイルのバックアップ: 変更を加える前に、サーバーから元の証明書ファイル (.crt または .pem) と秘密鍵ファイル (.key) をバックアップします。

  2. 新しい証明書のダウンロードとアップロード: SSL 証明書サービスコンソールから新しい証明書ファイルを取得します。それらをサーバーにアップロードし、古いファイルを上書きします。

    新しいファイルが古いファイルとまったく同じ名前で、同じディレクトリに配置されていることを確認してください。これにより、Apache 設定ファイルを変更する必要がなくなります。

  3. Apache サービスの再起動: 新しい証明書を適用するには、Apache サービスを再起動します。これを行うには、Apache のインストールの bin ディレクトリから .\httpd.exe -k restart を実行します。