Upload
kenichiro-matohara
View
266
Download
2
Embed Size (px)
Citation preview
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
興味
PCUNIX/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 手動更新
$ ./letsencryptauto 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/.ttytterkeykagolug 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 — jessiebackports の 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 editsources がおすすめ.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 @@ debsrc http://security.debian.org/ jessie/updates main contrib nonfree # wheezyupdates, previously known as 'volatile' deb http://ftp.jp.debian.org/debian jessieupdates main contrib nonfree debsrc http://ftp.jp.debian.org/debian jessieupdates main contrib nonfree + +deb http://ftp.jp.debian.org/debian jessiebackports main +debsrc http://ftp.jp.debian.org/debian jessiebackports 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 jessiebackports install letsencrypt pythonletsencryptapache
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 dryrun
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
そういえばもうベータ取れて正式リリースされているし自動更新してもいいんじゃ?
20160412 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 previouslyobtained 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/letsencryptauto renew && /usr/sbin/service apache2 reload
異常系も含めたscriptを書いて仕込みたい
監視ツールも動いてないので仕込みたい(こっちが先か)
サーバ減らしたのでちょっとあれ