LINUX.ORG.RU

Wget и https на OpenWRT.

 , ,


0

1

Решил добавить автообновление DDNS с роутера под OpenWRT. Так как роутер напрямую в инет не смотрит, был написан свой скрипт:

#!/bin/ash
IP=`dig @208.67.220.220 myip.opendns.org | sed '/ *;/d; /^ *$/d' | cut -f 5`

if [[ -e ./lastip ]]
then
	LAST=`cat ./lastip`

case `echo "$LAST" | cut -d ' ' -f 1` in
good)
SUCCESS=1
;;
nochg)
SUCCESS=1
;;
911)
SUCCESS=1
;;
'')
SUCCESS=1
;;
esac

else
SUCCESS=1
fi

if [[ "$SUCCESS" == 1 ]]
then

	LAST=`echo "$LAST" | cut -d ' ' -f 2`
	if [[ ! "$IP" == "$LAST" ]]
	then
		wget -O ./lastip "https://login:password@dynupdate.no-ip.com/nic/update?hostname=domain.no-ip.biz&myip="$IP
	fi
fi

Возникла проблема. wget не признает сертификат сервера. Openssl установлен. Пробовал добавлять сертификаты и даже получать последовательность сертификатов через «openssl s_cliens -showcerts» и скармливать wget через "--ca-certificate". ЧЯДНТ?

Ответ на: комментарий от Black_Roland

Во первых, ddns-scripts получают внешний ip из настроек интерфейса, а мой маршрутизатор наружу не смотрит. В инет смотрит adsl-модем, полученый по акции от провайдера, у которого самопальная прошивка от производителя. Подумываю затребовать у провайдера исходники прошивки, чтоб попробовать портировать openwrt, :) .

DinoAsm
() автор топика

В опенврт бизибоксовый вгет, вполне возможно, что в дефолтных образах он собран без поддержки ссл.

pekmop1024 ★★★★★
()
Ответ на: комментарий от Black_Roland

Во вторых, с этими скриптами все равно нужны песни и пляски с бубном вокруг сертификатов. Слать логино-пароль в открытую как-то неправильно.

DinoAsm
() автор топика
Ответ на: комментарий от pekmop1024

Бизибоксовсеий wget выдавал ошибку и даже не пытался соединится по ssl. Собственно оригинальный wget именно не признает сертификатов.

DinoAsm
() автор топика
Ответ на: комментарий от dinn

Меня как-то не прельщает отправлять логино-пароль через незащищенный канал.

DinoAsm
() автор топика
# openssl s_client -connect no-ip.org:443 </dev/null

Из вывода беру сертификат, пишу в ./no-ip.

# openssl s_client -CAfile /etc/ssl/certs/no-ip.pem -connect no-ip.org:443 </dev/null
...
    Verify return code: 20 (unable to get local issuer certificate)
---
DONE
Openssl сломался :(

DinoAsm
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.