Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
社内の全環境をhttpsにした話 2017.10.28 Rakuten Technology Conference @morix1500
Slide 2
Slide 2 text
じこしょうかい ・大森翔太(@morix1500) ・株式会社モブキャスト ・インフラエンジニア ・技術ブログやってます! https://blog.haramishio.xyz/
Slide 3
Slide 3 text
あじぇんだ ・Let's Encryptについて ・社内の全環境をhttpsにしたはなし
Slide 4
Slide 4 text
みなさん、 https対応してますか?
Slide 5
Slide 5 text
高まるhttps対応の波 引用元: https://transparencyreport.google.com/https/overview?hl=ja
Slide 6
Slide 6 text
httpsじゃないとサービス提供できない時代に ・AppleのATS(App Transport Security) ⇒ そもそも通信ができなくなる ・Chrome62からhttpページで警告が出るように ⇒ サイトの信頼性が下がる
Slide 7
Slide 7 text
でも… ・証明書って金かかるじゃん? ・なんか発行とかだるそう ・うーんどうしよう
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
Let's Encryptとは ・無料で発行できるSSL証明書 ・httpsの普及を目的として作られた ・名だたるスポンサーたち ⇒ Mozilla/Akamai/Cisco/Chrome etc...
Slide 10
Slide 10 text
Let's Encryptの特徴 ・無料 ・発行/更新が自動で行える ・証明書の有効期限は3ヶ月
Slide 11
Slide 11 text
証明書の発行の仕方(例) # 発行 $ certbot certonly --webroot -w /var/www/html -d example.jp # 更新 $ certbot renew
Slide 12
Slide 12 text
全開発環境の https対応と運用の 自動化を行った!
Slide 13
Slide 13 text
要件 ・開発環境なのでWebサーバーは外部からアクセス不可 ・1プロジェクトにつき20個くらいドメインある ・そのプロジェクトは何個もある ・プロジェクトごとにネットワーク(アカウント)が分かれている
Slide 14
Slide 14 text
採用した方法(アーキテクチャ) Jenkins S3 Route53 EC2 1.証明書リクエスト 2.ワンタイムトークン登録 3.ワンタイムトークン確認 4.証明書発行 5.証明書配置 6.証明書ダウンロード
Slide 15
Slide 15 text
実装 ・LEクライアント lego(https://github.com/xenolf/lego) ・LE認証方式 DNS-01: 対象ドメインのサブドメインに指定の文字列をTXTレコードに登録しそれ で認証を行うこと
Slide 16
Slide 16 text
LEの制限 ・同一ドメインの証明書発行は1週間に20個まで! ・下記はすべて同一ドメイン example.com sand.example.com api1.sand.example.com api2.sand.example.com
Slide 17
Slide 17 text
サブドメインがたくさんある場合は ・SANs(Subject Alternative Names)を使用する 1つの証明書で複数のドメインが対応できる example.com.crt -> example.com -> sand.example.com -> api1.sand.example.com -> api2.sand.example.com 1つの証明書が いろんなドメインで使 いまわせる!
Slide 18
Slide 18 text
この仕組みの限界ドメイン数 ・SANsの上限は100ドメインまで ・週に20個まで証明書発行が可能 ・証明書の期限が3ヶ月 ・100 * 20 * 12(week) = 24,000ドメインまで行ける!
Slide 19
Slide 19 text
この仕組みのいいところ ・DNS認証なのでサーバーのIP制限を気にしなくていい ・発行と更新が同じ仕組みなので、 クライアントは証明書をダウンロードするだけでいい ・Jenkinsに発行/更新を集約しているので 更新スケジュールをコントロールしやすい
Slide 20
Slide 20 text
まとめ ・証明書はLet’s Encryptでさくっと作れる ・証明書の発行/更新は自動化できる ・大量のサブドメインがある場合はSANsで対応
Slide 21
Slide 21 text
ワイルドカード来るってよ
Slide 22
Slide 22 text
Let’s Start https!!