Edited at

さくらのクラウド + legoでLet's encrypt(DNS-01)

More than 1 year has passed since last update.

>>> 2018/10/18 追記

ようやくさくらのクラウド対応が含まれる lego v1.1.0がリリースされました。

https://github.com/xenolf/lego/releases/tag/v1.1.0

この記事の以降の部分は不要となっています。

sacloud/legoを使わなくてもxenolf/legoを直接利用すればOKです。

<<< 2018/10/18 追記

>>> 2018/6/22 追記

本日legoのさくらのクラウド対応がマージされました。


この記事の内容はそのまま利用可能となっています。

また、マージされるまでの間にワイルドカード対応(ACME v2対応)なども行われています。

便利になりましたのでぜひお試しください。

<<< 2018/6/22 追記

さくらのクラウド ウェブアクセラレータでLet's Encryptを使う」という記事を読んで、

「そういえばさくらのクラウドでlego+DNS-01出来ないかな?」と思って調べたら、出来そうだったので対応してみました。


というわけでlegoにPR送った

lego#456: Add DNS Provider for SAKURA Cloud

これがマージされれば以下のような感じでさくらのクラウドDNSを利用してDNS-01で証明書発行が可能です。

# さくらのクラウドAPIキーを環境変数に指定

export SAKURACLOUD_ACCESS_TOKEN=<APIアクセストークン>
export SAKURACLOUD_ACCESS_TOKEN_SECRET=<APIアクセスシークレット>

# --dns=sakuracloudと指定してlego runを実行
lego --email="example@example.com" --domains="example.com" --dns="sakuracloud" run

なお、あらかじめさくらのクラウドDNSにゾーンを登録しておく必要があります。

参考:【さくらのクラウド】DNSアプライアンス導入ガイド

>>> 2018/6/22 追記

本日PRがマージされました。

今後は以下の暫定対応は不要となりました。

<<< 2018/6/22 追記


マージされるまでの暫定対応

legoは最近あまり開発に動きがないようですので、PRがマージされるまでの暫定版として以下2通りで配布しています。

GitHubからダウンロードする場合、各プラットフォームごとにバイナリを置いていますので自身のプラットフォームにあったものをダウンロードしてください。

Dockerの場合は以下のように利用します。

# さくらのクラウドAPIキーを環境変数に指定

export SAKURACLOUD_ACCESS_TOKEN=<APIアクセストークン>
export SAKURACLOUD_ACCESS_TOKEN_SECRET=<APIアクセスシークレット>

docker run -it --rm \
-e SAKURACLOUD_ACCESS_TOKEN \
-e SAKURACLOUD_ACCESS_TOKEN_SECRET \
-v $PWD:/lego \
sacloud/lego \
--path=/lego \
--email="example@example.com" \
--domains="example.com" \
--dns="sakuracloud" \
run

上記のように実行すると、カレントディレクトリにaccountscertificatesというディレクトリが作成されます。

証明書/秘密鍵はcertificatesに配置されています。


ということで

はやくlego本体にマージされるといいなー。

以上です。