wgetコマンドでステータスコードが403エラー(forbidden)になる時の対策方法

目次

スポンサードリンク

wgetコマンドの基本構文

wgetコマンドはインターネットから、htmlファイルや画像などのコンテンツをダウンロードする際に使用するコマンドです。

基本構文は以下です。コマンドの後にオプション、ダウンロード対象のURLと続けます。

wget [オプション] [URL]

403エラーになる原因

403エラーとはWebサーバー側が何らかの理由でクライアントからのアクセスを拒否している時に発生するエラーです。

wgetコマンドによるアクセスが403エラーになる理由は以下が考えられます。

  • wgetコマンドのUser-Agentを拒否している
  • 古いTLS(SSL)プロトコルでの接続を拒否している

User-Agent指定による対策方法

wgetコマンドのUser-Agentはデフォルトでは「Wget/1.19.5 (linux-gnu)」のように、wgetコマンドからのアクセスだと分かるようになっています。wgetコマンドのバージョンや環境により細部は異なりますが通常のウェブブラウザとは異なるUser-Agentです。Webサーバー側では通常のウェブブラウザ以外からのアクセスを拒否している事があり、そのようなケースでは403エラーになることがあります。

wgetコマンドでは、–headerオプションでリクエストヘッダーを指定することができるので、以下のように実在するウェブブラウザのUser-Agentを指定する事で403エラーを回避できる事があります。

[root@hostname tmp]# wget --header="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" https://uchy.me/blog/

最新のTLSプロトコル指定による対策方法

Webサーバー側で古いTLS(SSL)プロトコルでの接続を拒否していることがあります。wgetコマンドでは、–secure-protocolオプションで接続時に使用するプロトコルの指定ができるので、最新のプロトコルを指定することでエラーが解消することがあります。以下のコマンドはTLSv1.2を指定しています。

[root@hostname tmp]# wget --secure-protocol=TLSv1_2 https://uchy.me/blog/



Linuxコマンドについて学べるおすすめ書籍
Linuxコマンドの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。

Linux教科書 図解でパッとわかる LPIC/LinuC
はじめてLPICを受ける方向け、手を動かしながらLinuxについて学びたい方におすすめ。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。

Linuxコマンドについて徹底的に学べるUdemy講座
もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】 icon