プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

wget https エラーへの対応

先日書いた

blog.mori-soft.com

の作業を行っている際に、ルータを再起動しました。ま、固定IPではないので、当然割り当てられているグローバルIPアドレスが変わってしまいます。 いまの環境では、AWS上においてある開発作業用のサーバーは自宅からしかアクセスしないので、IPアドレスで制限をかけています。設定時の記事は下記になります。

blog.mori-soft.com

このサーバーにアクセスしようとしたら、なぜかできません。よくあるタイムラグかな?と思い、調べてみると自宅のIPアドレスをddnsで更新しているのが失敗しているようです。

blog.mori-soft.com

(上記記事を書いたときは、ReadyNas Duo で動作させてましたが、 今は Readynas Ultra2 で動かしています)

原因

なんでだろうと思い、調べてみると、どうも中間証明書がないことが原因のようです。 ブラウザ(Windows10, Firefox)で更新用のページにアクセスすると、問題なく表示できます。この状態で証明書を表示すると、中間証明書を使っていることが分かりました。

f:id:junichim:20170110132238p:plain

以前の状態はわからないのですが、どうもこれが怪しそうです。ちょっとネットを調べてみると、wgetの場合、中間証明書は自分で指定しないといけないようです。

ということで、 RapidSSL の中間証明書をダウンロードして、設定してみます。調べてみると、こちらから入手できるようです。

www.geotrust.co.jp

このSHA-2(SHA-256)の証明書の部分をファイル(下記では、RapidSSL_SHA256.pem というファイル)に保存して、wgetで指定してみます。

ultra2:~/ddns/# wget --ca-certificate=RapidSSL_SHA256.pem -O - 'https://ieserver.net/cgi-bin/dip.cgi'
--2017-01-10 13:16:50--  https://ieserver.net/cgi-bin/dip.cgi
Resolving ieserver.net... 61.197.187.238
Connecting to ieserver.net|61.197.187.238|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `STDOUT'

(以下、略)

お、できました。やっぱり、中間証明書がないことが原因だったようです。 あとは、自動更新スクリプトでこのファイルを使うように指定して、問題解決となりました。

めでたし、めでたし。