Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
社内の全環境をhttpsにした話
Morix
October 28, 2017
Technology
0
980
社内の全環境をhttpsにした話
Created by Shota Omori(@morix1500)
2017-10-28 Rakuten Technology Conference LT
Morix
October 28, 2017
Tweet
Share
More Decks by Morix
See All by Morix
FirebaseとNetlifyを使ってサーバーレスでサービスを作った話
morix1500
2
2.2k
オーバーロードで学んだチームマネジメント / Team management learned through overlord
morix1500
1
1.5k
転職をする前にやっておきたいこと / What you want to do before you change your career
morix1500
0
3k
自分を強くするためにやってきたこと
morix1500
6
1.8k
個人事業主になりたい!どうやって?調べてみよう!
morix1500
2
320
負荷試験入門
morix1500
0
640
PWAを使ったら嫁に怒られなくなった話
morix1500
1
1.2k
Goで英語ツイートを音声化するツイッターボットを作った
morix1500
0
820
Other Decks in Technology
See All in Technology
合同IT企業説明会から学ぶエンジニア向けの広報戦略
nagutabby
1
230
VS Code Meetup #21 - もう一度知りたい基礎編 - ファイル操作、コーディングの基本編
74th
0
190
Sysdig Secure/Falcoの活用術! ~Kubernetes基盤の脅威モデリングとランタイムセキュリティの強化~
owlinux1000
0
240
psql, my favorite tool!
nuko_yokohama
1
180
IBM Cloud Festa Online 2022 Summer
1ftseabass
PRO
0
200
プロダクトマネージャーの役割と育成、評価
middleokada
16
11k
AWS CLI でやってみる ~ AWS Hands-on for Beginners ECS ハンズオン ~
kentosuzuki
1
480
Red Hat Enterprise Linux 9のリリースノートを読む前に知りたい最近のキーワードをまとめて復習
moriwaka
0
360
テクニカルライティングの検定を受けてみた話 / "My Story About Taking the Technical Writing Exam
line_developers
PRO
1
210
疎ベクトル検索と密ベクトル検索: 第68回 Machine Learning 15minutes! Broadcast
keyakkie
1
250
#awsbasics [LT] サーバレスECにおける Step Functions の使い方
miu_crescent
0
840
Micro frontends and micro services
kashif98
0
140
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
219
17k
WebSockets: Embracing the real-time Web
robhawkes
57
5.6k
Practical Orchestrator
shlominoach
178
8.7k
Designing the Hi-DPI Web
ddemaree
272
32k
Build The Right Thing And Hit Your Dates
maggiecrowley
19
1.2k
Faster Mobile Websites
deanohume
294
28k
Fashionably flexible responsive web design (full day workshop)
malarkey
396
62k
Product Roadmaps are Hard
iamctodd
35
6.8k
How to name files
jennybc
40
63k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
107
16k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
498
130k
Principles of Awesome APIs and How to Build Them.
keavy
113
15k
Transcript
社内の全環境をhttpsにした話 2017.10.28 Rakuten Technology Conference @morix1500
じこしょうかい ・大森翔太(@morix1500) ・株式会社モブキャスト ・インフラエンジニア ・技術ブログやってます! https://blog.haramishio.xyz/
あじぇんだ ・Let's Encryptについて ・社内の全環境をhttpsにしたはなし
みなさん、 https対応してますか?
高まるhttps対応の波 引用元: https://transparencyreport.google.com/https/overview?hl=ja
httpsじゃないとサービス提供できない時代に ・AppleのATS(App Transport Security) ⇒ そもそも通信ができなくなる ・Chrome62からhttpページで警告が出るように ⇒ サイトの信頼性が下がる
でも… ・証明書って金かかるじゃん? ・なんか発行とかだるそう ・うーんどうしよう
None
Let's Encryptとは ・無料で発行できるSSL証明書 ・httpsの普及を目的として作られた ・名だたるスポンサーたち ⇒ Mozilla/Akamai/Cisco/Chrome etc...
Let's Encryptの特徴 ・無料 ・発行/更新が自動で行える ・証明書の有効期限は3ヶ月
証明書の発行の仕方(例) # 発行 $ certbot certonly --webroot -w /var/www/html -d
example.jp # 更新 $ certbot renew
全開発環境の https対応と運用の 自動化を行った!
要件 ・開発環境なのでWebサーバーは外部からアクセス不可 ・1プロジェクトにつき20個くらいドメインある ・そのプロジェクトは何個もある ・プロジェクトごとにネットワーク(アカウント)が分かれている
採用した方法(アーキテクチャ) Jenkins S3 Route53 EC2 1.証明書リクエスト 2.ワンタイムトークン登録 3.ワンタイムトークン確認 4.証明書発行 5.証明書配置
6.証明書ダウンロード
実装 ・LEクライアント lego(https://github.com/xenolf/lego) ・LE認証方式 DNS-01: 対象ドメインのサブドメインに指定の文字列をTXTレコードに登録しそれ で認証を行うこと
LEの制限 ・同一ドメインの証明書発行は1週間に20個まで! ・下記はすべて同一ドメイン example.com sand.example.com api1.sand.example.com api2.sand.example.com
サブドメインがたくさんある場合は ・SANs(Subject Alternative Names)を使用する 1つの証明書で複数のドメインが対応できる example.com.crt -> example.com -> sand.example.com
-> api1.sand.example.com -> api2.sand.example.com 1つの証明書が いろんなドメインで使 いまわせる!
この仕組みの限界ドメイン数 ・SANsの上限は100ドメインまで ・週に20個まで証明書発行が可能 ・証明書の期限が3ヶ月 ・100 * 20 * 12(week) =
24,000ドメインまで行ける!
この仕組みのいいところ ・DNS認証なのでサーバーのIP制限を気にしなくていい ・発行と更新が同じ仕組みなので、 クライアントは証明書をダウンロードするだけでいい ・Jenkinsに発行/更新を集約しているので 更新スケジュールをコントロールしやすい
まとめ ・証明書はLet’s Encryptでさくっと作れる ・証明書の発行/更新は自動化できる ・大量のサブドメインがある場合はSANsで対応
ワイルドカード来るってよ
Let’s Start https!!