質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

1503閲覧

AWS CLIの疎通ができない。「Could not connect to the endpoint URL: 」 のエラーが出る。

donut4

総合スコア170

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2023/08/03 04:55

編集2023/08/04 02:13

実現したいこと

AWS CLIでローカルからの疎通がうまくいきません。
Could not connect to the endpoint URL: "https://~"
のエラーが出ています。

なぜかWSL2にAWS CLIをインストールして行った時だけ上記のエラーが出てきます。
(Windows10上で同じことを行ったらうまくいきます。)

前提

・Windowsからエクスポートしたルート証明書を利用します。(エクスポート時の出力形式は、Base 64 encodeの方法です。)
・mfaを用います。

AWS CLIをインストールし、.aws/credentials.aws/configファイル内を以下のように設定しました。

・credentials

[default] aws_access_key_id = XXXXXXXXXXXXXXXDHL aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXFwCZD/V

・config

[default] region = ap-northeast-1 output = json ca_bundle = /home/user/.aws/XXXXX.cer //←Windows側でエクスポートした証明書のパス [profile aaa] role_arn = arn:aws:iam::XXXXXXXXXXXX:role/aaa source_profile = default mfa_serial = arn:aws:iam::XXXXXXXXXXXX:mfa/smartphone //←mfaに関する識別子 ca_bundle = /home/user/.aws/XXXXX.cer //←Windows側でエクスポートした証明書のパス

実行結果・エラーメッセージ

・実行コマンド
aws codecommit list-repositories --profile aaa --region ap-northeast-1
・エラー内容
Could not connect to the endpoint URL: "https://sts.ap-northeast-1.amazonaws.com/"

上記のエラーが何故かWSL2上で行った時にだけ出る。(Windows上で同じように行ったら成功する。)

進展・試行錯誤して状況が変わったこと

Could not connect to the endpoint URL: "https://~" のエラーは、ドメインの解決ができていないだけのようでした。
/etc/resolv.conf 内の nameserver を8.8.8.8に変えて再度試したら、上記エラーは消えました。
が、今度はSSL validation failed for https://sts.ap-northeast-1.amazonaws.com/ [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1002) のエラーが出てきました。

Windows上で使用できた証明書が、WSL側で使用できていないような気がします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2023/08/03 09:20

まず、もとのWindows環境ではca-bundleを使っていたのでしょうか? 通常あまり指定することがないオプションなのですが…。 特別な環境から接続しようとしているのでしょうか。 エラーを見るとそれ以前にまずstsのエンドポイントに接続出来ていないように思えます。
donut4

2023/08/03 09:37

ご回答ありがとうございます。 Windows環境でもca-bundleを使っています。 ※質問をわかりやすくするため大きく変更しました。
yu_1985

2023/08/03 09:45

ca-bundleを指定しないで実行するとどうなりますか
donut4

2023/08/03 09:55

yu_1985さん > ca-bundleを指定しないで実行するとどうなりますか aws2上では変わらず以下のエラーが出ます。 「Could not connect to the endpoint URL: "https://sts.ap-northeast-1.amazonaws.com/"」 Windows上では、以下のエラーが出ました。 「SSL validation failed for https://codecommit.ap-northeast-1.amazonaws.com/ [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1002)」
yu_1985

2023/08/03 10:10

ということは、Ubuntuでのエラーはca-bundleが問題で起きているのではなさそうですね。 WSL2の環境から何らかの原因でネットワーク的にAWSと接続できてない可能性があります。 この辺を参考に、どこか適当なドメイン宛に接続が可能か確かめてみてください。 https://qiita.com/ist-a-k/items/34b408336f4ec372b139
donut4

2023/08/04 02:12 編集

yu_1985さん curl https://www.google.com/ も失敗しました。 /etc/resolv.conf 内の nameserver を8.8.8.8に変えて再度試したら、今度はうまくいったのでドメインの解決ができていないようでした。 再度、aws codecommit list-repositories --profile aaa --region ap-northeast-1 を試したら失敗しましたが、今度はエラー内容が以下に変わりました。 「SSL validation failed for https://sts.ap-northeast-1.amazonaws.com/ [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1002)」 Windows上で使用できた証明書がWSL側で使用できていないような気がします。
yu_1985

2023/08/04 08:29

--debugのオプションを付けてみたらどうなりますか 一応--no-verify-sslというオプションもあるので多分それをつければとりあえず実行はできそうですが、それは根本解決ではないと思うので…
guest

回答2

0

  1. ファイルに適切なパーミッションが付与されているか

ca_bundle = /home/user/.aws/XXXXX.cer

こちらのファイルにWSL2で実行されるユーザーに適切なパーミッションは付与されていますか?

  1. PROXY配下の場合環境変数を指定しているか

証明書を噛ませてるのでPROXY配下なのでは思っております
.bashrcに以下のように環境変数を指定してください

bash

1export http_proxy=http(s)://<server>:<port> 2export https_proxy=http(s)://<server>:<port> 3# 以下のようにawsのconfigだけでなく環境変数で指定することもできます 4export AWS_CA_BUNDLE=/home/user/.aws/XXXXX.cer

投稿2023/08/28 23:20

tamanegine

総合スコア177

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

返信が遅くなってしまいすみません。
そちらの手順で成功しました。ありがとうございます。

投稿2024/02/08 09:23

donut4

総合スコア170

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問