以下に接続できます https://registry.terraform.io/.well-known/terraform.json ブラウザを使用する
コマンドラインから接続しようとすると
curl: (7) registry.terraform.io ポート 443 への接続に失敗しました: タイムアウトしました
解決方法について何かアイデアがあれば教えてください
答え1
問題は、コマンド ウィンドウのプロキシ設定が正しくないことです。HTTPS_PROXY = ブラウザからのプロキシ設定
答え2
要約
手順 7 で以下にリストされているコマンドを試してくださいcurl
。それでも問題が解決しない場合は、curl
コマンド以外の問題 (ファイアウォールやプロキシなど) が発生している可能性があります。
cURL でブラウザ リクエストをコピーする
ブラウザで接続できる場合、curl
コマンドに関する潜在的な問題を排除する 1 つの方法は、ブラウザから目的のトランザクションを「コピー」することです。Chrome、Firefox、Opera にはすべて、これを可能にする開発者コンソールがあります。
新しい空白のタブを開きます。
Chrome と Firefox では、 を押してF12開発者コンソールを開きます。Opera では、Ctrl+ Shift+を押しますI。
オプションを探し
Network
て選択します。希望するURLに移動します。例:https://registry.terraform.io/.well-known/terraform.json。
最終的には次のようなものが表示されるはずです。
例: ネットワークトランザクション
目的の取引を選択し、右クリックしてオプションを選択します
Copy as cURL
(Chrome の場合は を使用しますCopy as cURL (cmd)
)。例: cURLとしてコピー
クリップボードの内容を貼り付けると、次のリクエストの正確なコピーが作成されます
curl
:curl "https://registry.terraform.io/.well-known/terraform.json" -H "authority: registry.terraform.io" -H "upgrade-insecure-requests: 1" -H "user-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" -H "sec-fetch-mode: navigate" -H "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3" -H "sec-fetch-site: none" -H "accept-encoding: gzip, deflate, br" -H "accept-language: en-US,en;q=0.9" --compressed
このcurl
コマンドは、ブラウザによって行われたリクエストを正確に複製する必要があります。
その他の問題
これで問題が解決しない場合は、ファイアウォール/プロキシの問題や証明書の問題など、このリクエストが失敗する他の理由を調べる必要があります。
-k
またはオプションを使用して--insecure
、curl で自己署名証明書または無効な証明書を無視します。トラブルシューティングを支援するために、フラグの使用
--verbose
と、 を使用した HTTP ヘッダーのダンプを検討してください。-D -
curl
特定のブラウザをエミュレートする
(一般的な) cURL リクエストがまだ失敗しているという追加コメントに基づくと、正常に接続できる特定のブラウザをエミュレートする必要がある可能性があります。
ブラウザは、ユーザーエージェントブラウザの特定のバージョンに関連付けられた文字列。URL に接続できるブラウザをエミュレートする場合は、次のいずれかを行う必要があります。
以下の手順に従ってくださいcURL でブラウザ リクエストをコピーするブラウザで正常に接続できます。
user-agent
ステップ7の値を、次のようなサイトから返された値に置き換えてみてください。私のブラウザとは(リンクに問題なくアクセスできるブラウザでこのリンクにアクセスしてください)。
例(オプション2)
「汎用」ユーザーエージェント(上記)
-H "user-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
特定のユーザーエージェント(例:What Is My Browser から)
-H "user-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0"
user-agent
最初の方法 (リクエストのコピー)は、リクエストの承認に使用される以外のヘッダーをキャッチする可能性があるため、おそらく最も信頼性が高いことに注意することが重要です。