ieServerにcurlでアクセスするとエラーになる

無料のDDNSサービスieServerの更新作業をcurlで自動化している人もそれなりにいると思います。

先日Raspberry Pi 4を入手したのでRaspberry Pi OS busterを入れて、ieServerに対してcurlコマンドを使用したところ、

curl: (35) error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure

とエラー。どうやらサーバー側のSSLが脆弱性のある古いものの場合、最近のクライアントは接続拒否するLink らしい。SSLライブラリで拒否しているみたいなのでwgetでもエラー。

サーバー側が対応してくれるのが一番いいのですが、とりあえずクライアントで対処してみます。古いcurlにダウングレードするのも手ですが、問題があるから接続拒否するようになったわけで、他サーバーへのアクセスまで巻き込みたくない。というわけで古いcurlを入れたDockerコンテナを作り、ieServerだけこいつでアクセスすることにします。

まずDockerfile。Alpineを使いたいところですがARMがサポートされだした3.6でもcurlがエラーを出したのでDebian Jessieにしてます。x86ならAlpineでも行けるかと。
FROM debian:8.11-slim
RUN apt-get update && apt-get install -y curl
CMD curl -X POST -F "username=$USERNAME" -F "password=$PASSWORD" -F "domain=$DOMAIN" -F 'updatehost=1' https://ieserver.net/cgi-bin/dip.cgiLink 
ビルド&ラン。sudo省略 & 全角は各自の環境に置き換えてください。
docker build -t イメージタグ .
docker run -e USERNAME=ユーザー名 -e PASSWORD=パスワード -e DOMAIN=ドメイン --name コンテナ名 イメージタグ
ieServerのIP更新ページLink にアクセスして、アドレス更新時刻がdocker runが終わった時くらいになっていれば成功。次回からはcronなどで
docker container start コンテナ名
で回せば良いかと。

[参考]

— posted by mu at 05:40 pm   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0206 sec.
prev
2020.10
next
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31