AWS CLIの「//s3.ap-northeast-1.amazonaws.com/ failed for https ssl validation」エラーの原因と対処法

目次

はじめに

「AWS CLIでS3へアクセスしたら『//s3.ap-northeast-1.amazonaws.com/ failed for https ssl validation』と表示されたけれど、何が原因なの?」
「認証情報やS3の設定を見直しても直らない」と困っていませんか。

aws s3 lsやaws s3 cpを実行した直後にSSL validationのエラーで処理が止まると、AWS側の障害なのか、自分のPCやネットワーク環境に問題があるのか判断しにくいですよね。

この記事では、CA証明書やプロキシ、AWS CLIの設定など原因を切り分ける方法と、確認するコマンドや対処法を解説します。

//s3.ap-northeast-1.amazonaws.com/ failed for https ssl validationの原因

AWS CLIで「//s3.ap-northeast-1.amazonaws.com/ failed for https ssl validation」と表示される場合は、Amazon S3へのHTTPS接続時にSSL証明書を正常に検証できていない可能性があります。

ここでは、AWS CLIでSSL証明書の検証に失敗する理由と、プロキシやZscalerを経由する環境で発生するケースを順番に説明します。

AWS CLIでSSL証明書の検証に失敗する理由

AWS CLIはAmazon S3へHTTPSで接続するとき、SSL証明書が信頼できるCAによって発行されているかを確認します。

必要なCA証明書が端末にない、証明書が古い、参照するパスが正しくない場合は検証に失敗します。

その結果、HTTPS接続を確立できず、「failed for https ssl validation」などのエラーが表示されます。

プロキシやZscalerなどの環境で発生するケース

社内プロキシやZscalerを経由する環境では、プロキシ側で発行した証明書がAWS CLIへ提示される場合があります。

その証明書を発行したCAをAWS CLIが信頼していないと、証明書を正しく検証できません。

そのため、ブラウザではAmazon S3へ接続できても、AWS CLIではSSL検証エラーが発生することがあります。

プロキシがHTTPS通信の証明書を置き換える仕組みが分かりにくい場合は、SSLインスペクションの流れを確認しておくと原因を理解しやすくなります。
▶SSLインスペクションとは?仕組みとHTTPS通信を検査する流れを解説

//s3.ap-northeast-1.amazonaws.com/ failed for https ssl validationの対処法

SSL証明書の検証エラーを解消するには、AWS CLIが接続先の証明書を検証できるよう、利用環境に合ったCA証明書を指定します。

ここでは、一時的なCA証明書の指定から継続的な設定方法、解消しない場合の確認ポイント、–no-verify-sslを使用するときの注意点まで順番に説明します。

一時的にCA証明書を指定して実行する

1回のコマンドだけCA証明書を指定する場合は、--ca-bundleオプションを使います。

たとえば、aws s3 ls --ca-bundle C:\certs\company-ca.pemのように実行すると、指定したCA証明書を使ってSSL証明書を検証できます。

まず接続できるか確認したい場合にも使いやすい方法です。

AWS_CA_BUNDLEでCA証明書を設定する

複数のAWS CLIコマンドで同じCA証明書を使う場合は、環境変数AWS_CA_BUNDLEにファイルのパスを設定します。

Windowsのコマンドプロンプトなら、set AWS_CA_BUNDLE=C:\certs\company-ca.pemのように指定できます。

設定後は、コマンドごとに--ca-bundleを付ける必要がありません。

AWS CLIの設定ファイルでca_bundleを設定する

CA証明書を継続して使用する場合は、AWS CLIの設定ファイルでca_bundleを指定する方法もあります。

~/.aws/configの対象プロファイルにca_bundle = C:\certs\company-ca.pemのように設定すると、そのCA証明書を使ってSSL証明書を検証できます。

設定後はS3へ接続し、エラーが解消したか確認してみましょう。

設定しても解消しない場合の確認ポイント

CA証明書を指定してもエラーが続く場合は、ファイルのパスや読み取り権限、必要な証明書チェーンが含まれているかを確認します。

プロキシを利用している場合は、実際に提示される証明書を検証できるCA証明書を指定しているかも確認しましょう。

CA証明書を設定してもエラーが続く場合は、SSL証明書そのものの検証に失敗する原因も確認しておくと切り分けやすくなります。
▶Failed SSL Validationが発生する原因とは?SSL証明書の検証エラーの対処法を解説

–no-verify-sslを使う場合の注意点

--no-verify-sslを使うとSSL証明書の検証を無効にできるため、原因を切り分ける一時的な確認には利用できます。

ただし、接続先の正当性を証明書で確認できなくなるため、通常の運用での使用は避けましょう。

基本的には、正しいCA証明書を設定してエラーを解消する方法がおすすめです。

まとめ

AWS CLIで「failed for https ssl validation」と表示された場合は、まずCA証明書を正しく検証できているか確認しましょう。

特に社内プロキシやZscalerを利用している環境では、AWS CLIが証明書の発行元を信頼できず、エラーになることがあります。

まずは--ca-bundleでCA証明書を指定して接続を確認し、問題が解消する場合はAWS_CA_BUNDLEやca_bundleで継続的に利用できるよう設定するとスムーズです。

--no-verify-sslで検証を無効にするのではなく、正しいCA証明書を設定して安全に接続できる環境を整えておきましょう。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次