Tsukiji Systems
RSS1.0


googleで
サイト内検索
このブログ
を検索!
  help

巻き戻し中。

2018年
6月
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


2018-06-05(火) 証明書の更新 [長年日記]

_ PC 自動更新

Let'sEncryptのDNS-01のワイルドカード証明書を自動更新するのに必要なプラグイン(ローカルのbind用)でけた。

-----------------------こんなのから呼び出す----------------------

#!/bin/sh

/usr/local/bin/certbot certonly -n \

-d \*.[ドメイン] \

-m [ワシのメアド] \

--agree-tos \

--manual-public-ip-logging-ok \

--manual \

--preferred-challenges dns-01 \

--server https://acme-v02.api.letsencrypt.org/directory \

--manual-auth-hook [呼ばれるプラグインを指定] \

--manual-cleanup-hook [事後処理スクリプトを指定]

-------------------auth-hookで呼ばれる方----------------------

#!/bin/sh

NAMEDFILE=/etc/namedb/[ドメイン名のファイルだよね]

RESTART=[named再起動のコマンド、DNSSECとかやってるとサインし直し要注意]

ACME_RECORD="ゾーンファイル内で「_acme-challenge.[なんとか]」になっていたレコードのホスト名部分"

KEYLENGTH=44

CAT=/bin/cat

AWK=/usr/bin/awk

SED=/usr/bin/sed

GREP=/usr/bin/grep

DIFF=/usr/bin/diff

WC=/usr/bin/wc

KEY=`echo $CERTBOT_VALIDATION`

DOMAIN=`echo $CERTBOT_DOMAIN`

echo "VALIDATION KEY is "$KEY

if [ ! -f $NAMEDFILE ];then

echo "file "$NAMEDFILE" not found"

exit 3

fi

#################################################

# incriment the serial

#################################################

SERIAL=`$AWK 'NR == 3 {print $1}' $NAMEDFILE`

NEW_SERIAL=`expr $SERIAL + 1`

#################################################

# replace the key

#################################################

OLDKEY=`$GREP $ACME_RECORD $NAMEDFILE|$AWK '{print $4}'`

#################################################

# Do it

#################################################

$CAT $NAMEDFILE |$SED -e s/$SERIAL/$NEW_SERIAL/g|$SED -e s/$OLDKEY/\"$KEY\"/g \

> $NAMEDFILE.new

$DIFF -p $NAMEDFILE $NAMEDFILE.new > $NAMEDFILE.DNS-01.diff

$CAT $NAMEDFILE.DNS-01.diff

cp -p $NAMEDFILE $NAMEDFILE.prev

cp $NAMEDFILE.new $NAMEDFILE

#################################################

# Restart named

#################################################

$RESTART

STATUS=`echo $?`

if [ "$STATUS" != "0" ];then

echo "the named restart with "$RESTART" failed."

exit 4

fi

echo "Key set and restart done!"

echo "sleeping 90sec"

sleep 90

echo "done!"

exit 0

出来合いだとISPやクラウドDNSのプラグインは沢山あるけど案外ベタにbindかつファイルでやるのが見つからない。

認証用のキーもプラグインには引数で渡されるのかと思いきや、環境変数で渡されたり、結構面白い。



過去の写真!
良い感じに付いた(・∀・) 削るぜ! オリジナル(すり減ってる) バンジョーはあるんだがw
アクセスカウンター!
累計:
本日:
昨日:
最近のツッコミ

(´・ω・`)ショボーン