はじめに
「Failed SSL Validationと表示されてWebサイトを開けないけれど、何が原因なの?」
「SSL証明書を設定したはずなのに、どこを確認すればエラーを解消できるの?」と困っていませんか。
SSL証明書を設定したWebサイトやサーバーでこのエラーが表示されると、証明書の期限切れなのか、設定方法に問題があるのか判断しにくく、確認する場所も分からず迷ってしまいますよね。
この記事では、Failed SSL Validationが発生する原因から、SSL証明書やサーバーの設定を確認する方法、エラーを解消するための対処方法まで順を追って説明していきます。
Failed SSL Validationとは?

Failed SSL Validationが表示されたときは、SSL証明書の検証に失敗している可能性があります。
ここでは、Failed SSL Validationの意味と、最初に確認したいエラーメッセージについて説明します。
SSL証明書の検証に失敗すると発生するエラー
Failed SSL Validationは、接続先のSSL証明書を正常に検証できない場合に表示されるエラーです。
証明書の有効性や証明書チェーンなどに問題があると、安全なSSL接続を確立できずエラーが発生します。
まず実際に表示されているエラーメッセージを確認する
Failed SSL Validationが表示されたら、まず画面やコマンドに出ているエラーメッセージを確認しましょう。
検証に失敗した原因を判断する手がかりが含まれているため、表示内容を確認してから原因を切り分けていくとスムーズです。
エラーメッセージからFailed SSL Validationの原因を切り分ける
Failed SSL Validationは、表示されるエラーメッセージによって確認すべき箇所が異なります。
ここでは、代表的なエラーメッセージごとに、何が原因になっているのかを確認します。
CERTIFICATE_VERIFY_FAILEDと表示される場合
CERTIFICATE_VERIFY_FAILEDは、接続先のSSL証明書を正しく検証できない場合に表示されます。
証明書の署名や証明書チェーンなどに問題があり、信頼できる証明書と確認できないことが主な原因です。
unable to get local issuer certificateと表示される場合
unable to get local issuer certificateは、証明書の検証に必要な認証局(CA)の証明書を参照できない場合に表示されます。
CA証明書の不足や参照先の設定に問題がないか確認しましょう。
self-signed certificate in certificate chainと表示される場合
self-signed certificate in certificate chainは、証明書チェーンに自己署名証明書が含まれ、信頼できる証明書として検証できない場合に表示されます。
クライアント側でその証明書が信頼されているか確認が必要です。
certificate has expiredと表示される場合
certificate has expiredは、接続先のSSL証明書の有効期限が切れている場合に表示されます。
証明書の有効期限を確認し、期限が切れている場合は更新や再発行を行いましょう。
Failed SSL Validationが発生する主な原因
Failed SSL Validationが発生する原因は、SSL証明書そのものだけでなく、証明書チェーンや接続先の設定、通信環境にもあります。
ここでは、Failed SSL Validationにつながる主な原因を、証明書や接続環境ごとに説明します。
CA・ルート証明書を正しく認識できていない
CA・ルート証明書を正しく認識できないと、接続先のSSL証明書を信頼できるものとして検証できません。
必要なCA証明書がインストールされているか、参照先が正しく設定されているか確認しましょう。
証明書チェーンが正しく設定されていない
必要な中間証明書が不足していたり、証明書チェーンの設定に問題があったりすると、ルート証明書まで信頼関係を確認できません。
その結果、SSL証明書を正しく検証できず、エラーが発生します。
SSL証明書の有効期限が切れている
SSL証明書の有効期限が切れていると、有効な証明書として検証できません。
証明書に設定されている有効期限を確認し、期限切れの場合は更新や再発行が必要です。
接続先のホスト名と証明書が一致していない
アクセス先のホスト名と、SSL証明書に登録されたドメイン名やSANが一致していない場合も、証明書の検証に失敗します。
接続先のホスト名が証明書の対象に含まれているか確認しましょう。
プロキシや社内CAの証明書が影響している
社内プロキシなどでSSL通信を検査している場合、社内CAが発行した証明書へ置き換えられることがあります。
クライアント側でそのCAを信頼していないと検証に失敗するため、社内CAの設定も確認してみましょう。
Failed SSL Validationを原因別に解消する方法
Failed SSL Validationを解消するには、エラーの原因に合わせて確認する証明書や設定を変更する必要があります。
ここでは、原因ごとに確認する項目と具体的な対処方法を順に説明します。
CA・ルート証明書を確認して更新する
CA・ルート証明書を正しく認識できていない場合は、クライアント側で参照しているCA証明書を確認します。
必要な証明書が不足していれば追加し、参照先に誤りがある場合は正しい設定へ修正しましょう。
証明書チェーンを確認して修正する
中間証明書が不足している場合は、接続先のサーバーに必要な証明書を設定します。
証明書チェーンの構成や順序にも問題がないか確認し、信頼された認証局まで正しく検証できる状態に整えましょう。
証明書チェーンを修正してもエラーが続く場合は、SSL証明書が正しく設定されているか確認してみましょう。
▶SSL証明書の確認方法とは?有効期限や設定をチェックする手順
証明書の有効期限とホスト名を確認する
SSL証明書の有効期限を確認し、期限が切れている場合は有効な証明書へ更新します。
あわせて、接続先のホスト名が証明書のSANに含まれているか確認し、一致しない場合は正しい証明書へ変更しましょう。
証明書を更新したばかりの場合は、設定が反映されるまでの時間も確認しておくと安心です。
▶ SSLの反映時間はどれくらい?反映されない原因と確認方法
プロキシや社内CAを利用している場合は証明書を追加する
プロキシや社内CAを利用している場合は、通信時に使用されるCA証明書を確認します。
クライアント側で信頼されていなければ、社内の運用ルールに従って適切な信頼ストアやCA証明書の設定へ追加しましょう。
AWS CLIでSSL Validation Failedが発生した場合の対処方法
AWS CLIでSSL Validation Failedが発生した場合は、CA証明書を正しく指定することでSSL証明書の検証に必要な証明書を認識させます。
ここでは、それぞれの設定方法と、一時的な利用と継続的な利用での選び方を順に説明します。
–ca-bundleでCA証明書を指定する
AWS CLIでは、--ca-bundleオプションで使用するCA証明書ファイルを指定できます。
1回のコマンドだけ別のCA証明書を使いたい場合に利用しやすい方法です。
configファイルのca_bundleに証明書を設定する
configファイルのca_bundleにCA証明書のパスを設定すると、対象のプロファイルで継続して使用できます。
毎回--ca-bundleを指定する必要がないため、同じCA証明書を使い続ける場合に便利です。
AWS_CA_BUNDLEの環境変数を設定する
AWS_CA_BUNDLE環境変数にCA証明書のパスを設定すると、その環境で実行するAWS CLIに適用できます。
コマンドごとに--ca-bundleを指定せずに利用したい場合に使えます。
一時的な設定と継続利用する設定を使い分ける
1回だけ指定するなら--ca-bundle、プロファイルごとに継続するならca_bundleを使うと分かりやすいでしょう。
現在の環境にまとめて適用したい場合は、AWS_CA_BUNDLEを使うなど、利用範囲に合わせて選んでください。
対処後にSSLエラーが解消したか確認する
SSLエラーの対処を行ったあとは、設定変更だけで判断せず、実際に同じ接続やコマンドを再実行してエラーが解消したか確認する必要があります。
ここでは、対処後の確認方法と、エラーが解消しない場合に再確認する項目を説明します。
同じ接続やコマンドを再実行して確認する
SSL証明書の設定を変更したら、エラーが発生したときと同じ接続やAWS CLIコマンドを再実行します。
SSL Validation Failedが表示されず正常に完了すれば、変更した設定が正しく反映されたと判断できます。
解消しない場合は証明書の参照先とエラー内容を再確認する
SSLエラーが続く場合は、指定したCA証明書のパスや参照先が正しいか確認しましょう。
あわせて最新のエラーメッセージを確認すると、別の原因で証明書の検証に失敗していないか切り分けやすくなります。
まとめ
Failed SSL Validationが発生したら、まずエラーメッセージを確認し、CA証明書や証明書チェーンなどを見直しましょう。
AWS CLIでは、必要に応じてCA証明書を指定できます。
設定後に同じコマンドを再実行し、解消しない場合は証明書の参照先やエラー内容を改めて確認してみてください。











