let’s encrypt更新話

23
2016/5/28 Let’s Encrypt更新話 (1) file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 1/23 Let’s Encrypt更新話 Kenichiro MATOHARA <[email protected]>

Upload: kenichiro-matohara

Post on 15-Apr-2017

266 views

Category:

Technology


2 download

TRANSCRIPT

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 1/23

Let’s Encrypt更新話

Kenichiro MATOHARA <[email protected]>

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 2/23

matoken?Kenichiro MATOHARA ( @matoken )

http://matoken.org

興味

PC­UNIX/OSS

OpenStreetMap

電子工作

自転車 :

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 3/23

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 4/23

Let’s Encrypt更新話

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 5/23

Let’s Encrypt?無料&簡単にDV証明書が作れるサービス

全てのWWWをTLS接続とすることを目指している

運営はInternet Security Research Group(ISRG)という非営利の組織

プラチナスポンサー Current Sponsors ­ Let’s Encrypt ­ Free SSL/TLS Certificates

基本的にLet’s Encrypt謹製のToolを利用

コマンドを叩くだけで証明書発行してhttpdの設定書き換え迄してくれる

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 6/23

kagolug.orgに利用

Closed Betaから利用

鹿児島らぐ :: https対応(20151105)

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 7/23

[KagoLUG:344 kagolug HTTPSエラー]

kagolugウェブサイトのSSL証明書が有効期限切れしているようです。 Let's Encryptを更新するか、HTTPSを弾いたほうが良さそうです。

orz

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 8/23

[KagoLUG:345 Re: kagolug HTTPSエラー]

更新忘れでしたorz カレンダーに入れていたのですが見てませんでした…….

とりあえず復旧したけどダメダメorz

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 9/23

復旧手順

let’s encrypt 手動更新

$ ./letsencrypt­auto renew

証明書再読み込みのためhttpd reload

$ sudo service apache2 reload

更新されているのを確認

$ echo ''|openssl s_client ­connect kagolug.org:443 2>/dev/null | openssl x509 ­text | grep 'Not\ ' Not Before: May 4 13:42:00 2016 GMT Not After : Aug 2 13:42:00 2016 GMT

とっても簡単&速い

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 10/23

期限切れの確認をして期限が近づくとmailやtweetをするようにするscript

$ cat /home/mk/bin/CertificateExpiration.sh #!/bin/bash

# 期限切れのEpochを求める CRT_EXPIRE=date +%s ­­date="\echo ''| openssl s_client ­connect kagolug.org:443 2>/dev/null | openssl x509 ­text | grep 'Not After : ' | cut ­f2­ ­d:\ "

# 残り10日以下 if [ date +%s ­­date='10 days' ­gt $CRT_EXPIRE ] ; then

# MLと[email protected]にメールする echo ­e "Certificate Expiration : kagolug.org\n\nNot After : date +%c ­­date=@$CRT_EXPIRE" | mail ­s "Certificate Expiration : kagolug.org" ­c [email protected] [email protected]

# Tweetする ttytter ­keyf=$HOME/.ttytterkey­kagolug ­status="Certificate Expiration : kagolug.orgCertificate Expiration : kagolug.org"

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 11/23

# 残り1月以下 elif [ date +%s ­­date='1 months' ­gt $CRT_EXPIRE ] ; then # [email protected]にメールする echo ­e "Certificate Expiration : kagolug.org\n\tNot After : date +%c ­­date=@$CRT_EXPIRE" | mail ­s "Certificate Expiration : kagolug.org" [email protected] fi

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 12/23

期限切れの確認をして期限が近づくとmailやtweetをするようにcronで週1回実行

7 5 * * 1 /home/mk/bin/CertificateExpiration.sh

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 13/23

そんなことしなくても公式からメール来るじゃないか

今回来なかったぽい検索してもない(gmailなのでSPAM BOXに入って消えてるとかかもだけど)

ちなみに更新したのにメール届いたり,unsubscribedは出来るけどその後subscribeする仕組みはまだ無かったりもするらしい

Expiration Emails (Too Many, Unnecessary, etc.) ­ Documentation ­ Let’sEncrypt Community Support

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 14/23

Debian jessie のbackportにも来ている

clientの変更

Debian Backports

Debian — jessie­backports の letsencrypt パッケージに関する詳細

pkg管理のほうが楽なので差し替える

ちなみにLet’s Encriptの互換clientはいっぱいいっぱい出来てる → Links ·certbot/certbot Wiki

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 15/23

デイリーバックアップ&etckeeperが動いているけど念の為

差し替えの前に念の為backup

/etc/letsencrypt

/etc/ssl

/etc/apache2

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 16/23

backports関連資料

Instructions

第 6 章 メンテナンスと更新、APT ツール (6.1.2.4. 安定版バックポート)

第2章 Debian パッケージ管理 (2.7.3. 候補バージョンの調整 / 2.7.4. Updates とBackports)

Backports ­ Debian Wiki GUIでも書き換えできる

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 17/23

/etc/apt/source.listを書き換えてbackportsを有効に

書き換えには apt edit­sources がおすすめ.syntax checkをしてくれる

diff ­­git a/apt/sources.list b/apt/sources.list index 69db0bc..69dbd49 100644 ­­­ a/apt/sources.list +++ b/apt/sources.list @@ ­8,3 +8,6 @@ deb­src http://security.debian.org/ jessie/updates main contrib non­free # wheezy­updates, previously known as 'volatile' deb http://ftp.jp.debian.org/debian jessie­updates main contrib non­free deb­src http://ftp.jp.debian.org/debian jessie­updates main contrib non­free + +deb http://ftp.jp.debian.org/debian jessie­backports main +deb­src http://ftp.jp.debian.org/debian jessie­backports main

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 18/23

パッケージ情報の更新とpkgの導入

$ sudo apt update && sudo apt upgrade $ sudo apt ­t jessie­backports install letsencrypt python­letsencrypt­apache

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 19/23

dry runで動作確認

$ sudo letsencrypt renew ­­dry­run

Processing /etc/letsencrypt/renewal/kagolug.org.conf

** DRY RUN: simulating 'letsencrypt renew' close to cert expiry ** (The test certificates below have not been saved.)

Congratulations, all renewals succeeded. The following certs have been renewed: /etc/letsencrypt/live/kagolug.org/fullchain.pem (success) ** DRY RUN: simulating 'letsencrypt renew' close to cert expiry ** (The test certificates above have not been saved.)

IMPORTANT NOTES: ­ Your account credentials have been saved in your Let's Encrypt configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Let's Encrypt so making regular backups of this folder is ideal.

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 20/23

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 21/23

そういえばもうベータ取れて正式リリースされているし自動更新してもいいんじゃ?

2016­04­12 Leaving Beta, New Sponsors ­ Let’s Encrypt ­ Free SSL/TLS Certificates

Let’s Encrypt is leaving beta today.

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 22/23

自動更新に使えそうなrenew optionUser Guide — Certbot 0.7.0.dev0 documentation

This will attempt to renew any previously­obtained certificates that expire in less than 30 days. The same plugin and options that were used at the time the certificate was originally issued will be used for the renewal attempt, unless you specify other plugins or options.

renew オプションを付けてを実行すると利用期限を確認して30日を切っていたら更新してくれる

2016/5/28 Let’s Encrypt更新話 (1)

file:///home/mk/ownCloud/Linux/kagolug/2016/2016-05-21/Let's%20Encrypt%E6%9B%B4%E6%96%B0%E8%A9%B1_slide.html#(1) 23/23

正常系だけ考えるとこんな感じで行けそう

$ sudo ­u root crontab ­l | grep letsencrypt 7 7 * * * /usr/bin/letsencrypt­auto renew && /usr/sbin/service apache2 reload

異常系も含めたscriptを書いて仕込みたい

監視ツールも動いてないので仕込みたい(こっちが先か)

サーバ減らしたのでちょっとあれ