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

Certificate Management Service:SSL 証明書のデプロイメントエラーのトラブルシューティング

最終更新日:Feb 26, 2025

このガイドは、SSL 証明書が有効でない場合、または Web サイトが手動デプロイ後に安全でないと表示される場合のトラブルシューティングを支援するために設計されています。ステップバイステップの手動デプロイプロセスに従って、デプロイメントエラーを特定し、解決します。

トラブルシューティング手順

  1. サーバーのポート 443 が開いていることを確認します。

    • Alibaba Cloud ECS サーバーユーザーの場合は、ECS コンソールセキュリティグループ ページにアクセスして、ポート 443 が開いているかどうかを確認します。セキュリティグループの構成に関するガイダンスについては、「セキュリティグループの管理」をご参照ください。

      image

    • Web Application Firewall(WAF)と統合している場合は、サーバーのファイアウォール設定によってポート 443 への外部アクセスがブロックされていないことを確認します。次の方法を使用してこれを確認できます。

      1. WAF 3.0 コンソール にログオンします。上部のナビゲーションバーで、WAF インスタンスのリソースグループとリージョンを選択します。中国本土 または 中国本土以外 を選択できます。

      2. 左側のナビゲーションウィンドウで、アクセス管理 をクリックします。

      3. CNAME アクセス タブで、ポート 443 への外部アクセスが許可されているかどうかを確認します。

        image

  2. Web サーバー構成ファイルを確認します。

    • 構成ファイルの証明書ファイル名とファイルパスが正しいことを確認します。構成ファイルの証明書の保存パスとファイル名は、サーバー上の実際の証明書パスとファイル名と一致する必要があります。以下は、Nginx の構成例です。

      server {
          # ポート 443 は HTTPS のデフォルトポートです
          listen 443 ssl;
          server_name example.com;
      
          # 次のパスを独自の SSL 証明書と秘密鍵ファイルパスに置き換えてください
          ssl_certificate /etc/nginx/ssl/example.com.crt;
          ssl_certificate_key /etc/nginx/ssl/example.com.key;
      
          # その他の構成...
      }
    • 変更後、構成ファイルが正常に保存されていることを確認します。

    • NGINX や Apache などの Web サーバーは、変更された構成ファイルの変更を適用するために再起動が必要です。

      • NGINX サービスを再起動します。

        sudo nginx -s reload
      • Apache サービスを再起動します。

        sudo systemctl restart httpd
  3. 証明書の有効性を確認します。

    • 証明書が有効期間内であることを確認します。次の手順に従います。

      1. SSL Certificates Service コンソールにログオンします。.

      2. 左側のナビゲーション ウィンドウで、[証明書管理] > [SSL 証明書管理] を選択します。

      3. SSL 証明書管理 ページで、デプロイされた証明書を見つけて、期限切れを確認します。

        証明書が期限切れになっている場合は、速やかに更新してください。たとえば、正式な証明書を更新するには、「SSL 正式証明書の更新」をご参照ください。

        image

    • 証明書の [ステータス][発行済み] であること、および [バインドされたドメイン名] が正しいことを確認します。

      image

    • 証明書ファイルが正しいディレクトリに配置されていること、および Web サーバーの構成ファイルが証明書をアクティブにするように構成されていることを含め、証明書が正しくインストールされていることを確認します。

    • 自己署名証明書の場合は、現在のブラウザが証明書を信頼していることを確認します。

      次の例では、Chrome を使用して、証明書に対するブラウザの信頼を確認する方法を示します。

      1. ブラウザで自己署名証明書を使用して Web サイトを開きます。

      2. アドレスバーの image アイコンをクリックします。信頼できる証明書には警告記号がありません。信頼されていない場合は、赤い image 警告アイコンが表示されます。

        image

      3. 証明書の詳細を表示します。証明書情報ウィンドウで、ブラウザが証明書を信頼していないことを示す警告メッセージがないか確認します。

    • 自己署名以外の証明書の場合は、信頼できる認証局(CA)によって発行されていることを確認します。ブラウザは、証明書を信頼していない場合、接続をブロックすることがあります。

      次の例では、Chrome を使用して、自己署名以外の証明書が信頼できる CA によって発行されているかどうかを確認する方法を示します。

      • 証明書情報を表示します。

        1. アドレスバーの左側にある image アイコンをクリックします。

        2. [接続は安全です] をクリックして、接続の詳細を表示します。

        3. [証明書(有効)]」または同様のオプションをクリックします。証明書が信頼できる CA によって発行されている場合、ブラウザは警告情報なしで証明書を有効として表示します。

          image

      • 発行者情報を表示します。証明書情報ウィンドウで、「発行者」フィールドで共通名(CN)、組織名(O)、およびその他の関連詳細を確認して、既知の CA 名が含まれているかどうかを確認します。

        image

  4. ドメイン名が正しく解決されていることを確認します。

    • 特に最近ホストまたは IP アドレスを変更した場合は、DNS レコードが正しい IP アドレスを指していることを確認します。

      1. Alibaba Cloud DNS コンソール にログオンします。

      2. [権威 DNS 解決] ページの [権威ドメイン名] タブで、ターゲットドメイン名をクリックして [解決設定] ページに移動します。

        image

      3. [解決設定] ページで、[レコードを追加] ボタンをクリックします。[レコード値] が IP アドレスと一致することを確認します。一致しない場合は、[変更] ボタンをクリックして更新します。

        image

    • 最近ドメイン名解決設定を更新した場合は、変更が有効になるまでに遅延が発生する可能性があります。ローカル DNS キャッシュをクリアして再試行するか、解決が伝播するまで待機することを検討してください。

      以下は、さまざまなオペレーティングシステムでローカル DNS キャッシュをクリアするための手順です。

      Windows

      1. コマンドプロンプトを開きます。Win + R キーを押し、cmd と入力して、Enter キーを押します。

      2. コマンドプロンプトに次のコマンドを入力して、Enter キーを押します。

        ipconfig /flushdns
      3. 「DNS リゾルバーキャッシュを正常にフラッシュしました。」というメッセージは、ローカル DNS キャッシュがクリアされたことを示します。

      macOS

      1. ターミナルを開きます。

        Command + Space を押して Spotlight 検索を使用し、「ターミナル」と入力して開きます。

      2. ターミナルに次のコマンドを入力して macOS の DNS キャッシュをクリアし、Enter キーを押します。

        # dscacheutil は、システムのキャッシュサービスと対話するためのコマンドラインユーティリティです。
        sudo dscacheutil -flushcache
      3. 次に、ターミナルに次のコマンドを入力して HUP 信号を送信することで mDNSResponder プロセスを再起動し、Enter キーを押します。

        # mDNSResponder は、DNS サービスを担当するバックグラウンドプロセスです。再起動すると、キャッシュが完全にリフレッシュされます。
        sudo killall -HUP mDNSResponder
      4. エラーメッセージが表示されない場合は、コマンドが正常に実行されています。

      説明

      管理者パスワードの入力を求められる場合があります。パスワードを入力した後、Enter キーを押します。

      Linux

      Linux システムでローカル DNS キャッシュをクリアする方法は、使用される DNS キャッシュサービスによって異なります。一般的なサービスとキャッシュクリア方法は次のとおりです。

      1. systemd-resolved

        systemd-resolved でキャッシュをクリアするには、次のコマンドを使用します。

        sudo systemd-resolve --flush-caches
      2. nscd (名前サービスキャッシュデーモン)

        Linux システムが nscd で DNS キャッシュを管理している場合は、nscd サービスを再起動することでキャッシュをクリアできます。

        sudo service nscd restart

        または:

        sudo systemctl restart nscd
      3. dnsmasq

        Linux システムが DNS キャッシュ管理に dnsmasq を使用している場合は、dnsmasq サービスを再起動することでキャッシュをクリアできます。

        sudo service dnsmasq restart

        または:

        sudo systemctl restart dnsmasq
      4. BIND

        DNS キャッシュの管理に BIND を使用しているシステムの場合は、次のコマンドでクリアします。

        sudo rndc flush
      5. NetworkManager

        特定の Linux ディストリビューションは、DNS キャッシュを含むネットワーク設定を NetworkManager で管理します。キャッシュをクリアするには、NetworkManager サービスを再起動します。

        sudo service network-manager restart

        または:

        sudo systemctl restart NetworkManager
      説明

      システムで使用している DNS キャッシュサービスに基づいて適切なコマンドを選択します。これらのコマンドは通常、管理者権限を必要とするため、コマンドの前に sudo を付けます。DNS キャッシュをクリアすると、システムは DNS サーバーから最新のドメイン名解決情報を取得できるようになり、ネットワークアクセスに関する問題の解決に役立ちます。

  5. ブラウザキャッシュをクリアします。

    • ブラウザは、古い SSL 証明書情報を保持している可能性があります。ブラウザキャッシュをクリアしてから、Web サイトにアクセスし直してください。

    • シークレットモードまたはプライバシーモードで Web サイトにアクセスしてみてください。Chrome の場合は、[新しいシークレットウィンドウ] をクリックします。Edge の場合は、[新しい InPrivate ウィンドウ] を選択します。

      image

  6. 証明書チェーンが完全であることを確認します。

    中間証明書とルート証明書を含め、証明書チェーン全体が完全であることを確認します。ブラウザは通常、ルート証明書からサーバー証明書までの完全な証明書チェーンを確認する必要があります。チェーンが不完全だと、ブラウザが証明書を信頼しない可能性があります。

    説明
    • ルート証明書 は信頼チェーンの開始点であり、CA によって発行されたすべての下位証明書の信頼性を検証します。信頼できる CA のルート証明書は、主流のブラウザとオペレーティングシステムにプリインストールされています。ルート証明書がプリインストールされていないクライアントの場合は、SSL 証明書のタイプに一致するルート証明書を手動でダウンロードしてインストールします。手順については、「ルート証明書のダウンロード」をご参照ください。

    • 中間証明書 は、ルート証明書とユーザー証明書(例: SSL 証明書)の間にあり、上位 CA によって下位 CA に発行されます。Alibaba Cloud 証明書管理サービスでは、ダウンロードされた PEM ファイルには、サーバー証明書と中間証明書が含まれています。秘密鍵(KEY ファイル)は、安全な HTTPS 通信のためにサーバー証明書とペアになっています。中間証明書を使用すると、ルート証明書から直接発行することに伴うリスクが軽減されます。中間証明書のダウンロード手順については、「SSL 証明書のダウンロード」をご参照ください。

    証明書チェーンがないことは、SSL 証明書の検証エラーの一般的な原因です。PC ブラウザは Authority Info Access(AIA)URL リンクを介して中間証明書を取得できますが、一部の Android システムブラウザはこれをサポートしていない可能性があり、証明書が信頼されない、またはアクセスできない可能性があります。このような場合は、SSL 証明書チェーン構造に従って証明書チェーンファイルを 1 つのファイルにマージし、サーバーに再デプロイする必要があります。これにより、ブラウザはユーザー証明書と中間証明書をダウンロードできるようになり、信頼できるものとして認識されます。SSL 証明書チェーン構造は次のとおりです。

    -----BEGIN CERTIFICATE-----
    Web サイト証明書
    -----END CERTIFICATE-----
    
    -----BEGIN CERTIFICATE-----
    CA 中間認証局
    -----END CERTIFICATE-----
    
    -----BEGIN CERTIFICATE-----
    CA ルート認証局
    -----END CERTIFICATE-----
    説明

    SSL 証明書チェーンは通常、[Web サイト証明書] > [CA 中間認証局] > [CA ルート認証局] で構成されます。中間証明書は多層関係を持つ場合もあります。

    • SSL 証明書チェーンを表示する方法は?

      この例では、Chrome を例として使用します。

      1. ブラウザのアドレスバーの image アイコンをクリックし、ポップアップ情報カードの [接続は安全です] をクリックします。

      2. ポップアップ [接続は安全です] 情報ウィンドウで、[証明書は有効です] をクリックします。

      3. [詳細] をクリックして [証明書階層] を表示し、SSL 証明書チェーンを確認します。以下に示すように:

        image

    • SSL 証明書チェーンを完成させる方法は?

      • Alibaba Cloud を介して証明書を取得した場合は、完全な証明書チェーンを含む証明書ファイルを再ダウンロードできます。

      • Windows で証明書を手動で開き、中間証明書を見つけて、Base64 形式でエクスポートします。次に、エクスポートされたコンテンツを元の証明書に追加します。

  7. 秘密鍵が正しいことを確認します。

    • Web サーバーにアップロードされた証明書と秘密鍵が一致するペアであり、正しい形式であることを確認します。

      秘密鍵は CSR の生成時に作成され、対応する証明書と一緒に使用する必要があります。Linux システムで秘密鍵が証明書と一致するかどうかを確認する方法は次のとおりです。

      1. サーバーバックエンドにログオンし、次のコマンドを使用して証明書のインストールディレクトリに移動します。

        # / はルートディレクトリ、ssl パスは単なる例です。特定の場所は、実際の証明書のインストールディレクトリに応じて決定する必要があります。
        cd / ssl
      2. 証明書の公開鍵情報を表示し、次のコマンドで MD5 ハッシュを取得します。

        # your_certificate.pem をクラウドサーバー証明書ディレクトリの PEM ファイルに置き換えます
        sudo openssl x509 -in your_certificate.pem -noout -pubkey | openssl md5
      3. 秘密鍵ファイルの公開鍵情報を表示し、次のコマンドで MD5 ハッシュを取得します。

        # your_private_key.key をクラウドサーバー証明書ディレクトリの秘密鍵ファイルに置き換えます
        sudo openssl rsa -in your_private_key.key -pubout | openssl md5
      4. 両方のコマンドの MD5 ハッシュ値が一致する場合は、秘密鍵が証明書に対応しています。

        image

    • 秘密鍵が紛失または破損している場合は、新しい秘密鍵を生成して新しい証明書をリクエストする必要がある場合があります。

  8. ブラウザの互換性を確認します。

    • 証明書の形式と暗号スイートが主流のブラウザと互換性があることを確認します。

      主流のブラウザとの互換性を確保するには、次の手順に従います。

      • 信頼できる認証局(CA)を使用する

        • 信頼できる CA を選択して SSL/TLS 証明書を発行します。ブラウザは、これらの認証局からの証明書を自動的に信頼します。

      • 正しい証明書形式を使用する

        • 証明書が X.509 形式(SSL/TLS 証明書の標準)であることを確認します。

          証明書が X.509 形式であることを確認するには、以下の方法を使用して証明書ファイルの内容と形式を確認できます。

          openssl コマンドラインツールを使用して、証明書の内容を表示できます。

          # /ssl/cert.pem を証明書ファイルの実際のインストールパスに置き換えてください
          sudo openssl x509 -in /ssl/cert.pem -text -noout

          コマンドが証明書に関する詳細情報を出力する場合、それは X.509 形式です。

          出力例:

          Certificate:
              Data:
                  Version: 3 (0x2)
                  Serial Number:
                       01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef
                  Signature Algorithm: sha256WithRSAEncryption
                  Issuer: C = US, O = DigiCert Inc
                  Validity
                      Not Before: Jan 17 00:00:00 2025 GMT
                      Not After : Jan 17 23:59:59 2026 GMT
                  Subject: CN = example.com
                  Subject Public Key Info:
                      Public Key Algorithm: rsaEncryption
                          RSA Public-Key: (2048 bit)
                          ......

          正常に出力されると、証明書が正しい形式であることが示されます。

        • 証明書と中間証明書チェーンを PEM 形式(通常は .crt または .pem ファイル)で保存します。

      • 最新の暗号スイートを使用する

        • セキュリティと互換性を向上させるために、サーバーが TLS 1.2 または TLS 1.3 などの最新の暗号スイートを使用するように構成します。

        • SSL 2.0、SSL 3.0、TLS 1.0、TLS 1.1、RC4、3DES などの安全でないプロトコルと暗号化アルゴリズムを無効にします。

    • さまざまなブラウザとデバイスで接続をテストして、互換性を確認します。

  9. 証明書ファイルが配置されているディレクトリに正しい読み取り権限があることを確認します。

    証明書ファイルを含むディレクトリには、Web サーバーがこれらのファイルにアクセスできるように適切な読み取り権限が必要です。

    Linux サーバー上の証明書ファイルを含むディレクトリの読み取り権限を確認および調整するには、次の手順に従います。

    1. ls -ld コマンドを使用して、ディレクトリの権限を確認します。

      # 例のパス /ssl を証明書ファイルの実際のインストールパスに置き換えてください。
      sudo ls -ld /ssl

      出力は次のようになります。

      image

      説明

      権限フィールド(例: drwxr-xr-x)は以下を示します。

      • 最初の文字 d はディレクトリを示します。

      • 次の 3 文字 rwx は所有者の権限を表します。読み取り(r)、書き込み(w)、実行(x)。

      • 中央の 3 文字 r-x はグループの権限です。読み取り(r)と実行(x)。

      • 最後の 3 文字 r-x は他のユーザーの権限です。読み取り(r)と実行(x)。

    2. 権限が適切かどうかを確認します。

      • 読み取り権限:関連するユーザーまたはサービスにディレクトリの読み取り(r)権限があることを確認します。

      • 実行権限:ディレクトリの場合、実行(x)権限により、ユーザーはディレクトリに移動して cd コマンドを使用できます。

    3. (オプション)権限を変更します。

      必要に応じて、chmod コマンドを使用して権限を変更します。

      # 例のパス /ssl を証明書ファイルの実際のインストールパスに置き換えてください。
      sudo chmod 750 /ssl
      説明

      750 権限は以下を意味します。

      • 所有者は読み取り、書き込み、および実行の権限を持っています。

      • グループユーザーは読み取りと実行の権限を持っています。

      • 他のユーザーには権限がありません。

    これらの手順は、Linux サーバー上の証明書ファイルを含むディレクトリに必要な読み取り権限があることを確認するのに役立ち、セキュリティと機能の両方を維持します。

説明

さまざまな Web サイトのコード実装ロジックは異なる場合があります。問題に関する具体的な手がかりを得るために、Web サーバーとアプリケーションのログファイルをよく確認し、SSL 関連のエラーメッセージを探してください。まだご不明な点がある場合は、アカウントマネージャーに連絡.