ByProduct - 副産物

IT FukuSanButsu Blog

社内インフラエンジニアの自宅からはじまるIT
自宅のPCに向き合いながら気づいたことや個人的な知見をまとめています


プロフィール
しらせ(HN)
とあるIT企業のインフラエンジニア。プライベートでは開発もちょっとやります。
※本ブログの内容はすべて個人の見解であり、所属する企業とは関連ありません。
2023/09/30 暫く更新停止中m
プロフィールを読む
カテゴリ別
内部リンク
相互リンク
Twitter
来訪
1087306 [合計]
454 [今日]
621 [昨日]
Powered by
Powered by AWS Cloud Computing

【ブログ】今さらブログをLet'sEncryptでTLS化してみた

2020/02/03
2021/06/01

ブログ


お疲れ様です。
しらせです。

定期開催のAtCoderABCを待っていたら今日は開催ありませんでした。
いきなり人生の100分が未定になったので、放置していたこのブログのSSL(TLS)化でもやろうかなぁと思った次第です。

お金を掛けたくないので「フリーな SSL/TLS 証明書 - Let's Encrypt」さんの力を借りることにしました。

もくじ

サーバ側の設定

何はともあれ、まずは設定を入れようとしますわな。

公式からリンクをたどると「certbot」というページに飛びました。
今使っているシステムを選ぶと丁寧にもコマンドを教えてくれます。
専用のACMEクライアントというツールでシェルを叩くだけで良いらしい。簡単

でも、やっぱり英語だけだと心配なので以下の2つのサイトも見ました。

Let'sEncryptの取得&自動更新設定してみた(CentOS7.1&Apache2.4.6) - Qiita ※超親切
cronでcertbot renewの--force-renewalを使用してはいけない

<手順で詰まった所と意識した所>

1.証明書取得(certonly)
  詰まった所:VirtualServerを設定していなかった

2.httpd.confへの反映
  詰まった所:証明書の設定はconf/httpd.confではなくconf.d/ssl.confを弄らないとダメだった
  意識した所:SSLProtocolでTLS1.1とTLS1.2に制限した(デフォでSSLv3の除外だけだった気がする)

  SSLProtocol All -SSLv2 -SSLv3 -TLSv1

3.3か月ごとに切れる証明書の自動更新
  意識した所:cronに「--force-renew」は入れない方がいいということ

--dry-runを活用しながらcronが動いていることもちゃんと確認しました。
基本的に上の手順を見れば簡単にインストールができました。

AWSの設定とテスト

AWS側の設定は簡単。

マネジメントコンソールを開いて、
「ネットワーク & セキュリティ」→「セキュリティグループ」からVPCに紐づくルールに追加してあげればよいだけ。
もちろん、サーバ側のファイアウォールもちゃんと開いてないとダメです。


HTTPS, TCP, 443, 0.0.0.0/0 → IPv4
HTTPS, TCP, 443, ::0/0 → IPv6

そして、いざブラウザからアクセスしてみると、、、、
証明書は有効なのに、警告が、、、
 

これは、SSL/TLSのセッション外で保護されていないHTTPのセッションが張られてしまうと出るやつですね。
静的・動的ページすべてのソースを見直してhttpsに直しました。

感想

1時間足らずで終わりました。
なんならこの記事書いてる方が時間掛かる。

もっと早くやっておけばよかった。

以上
お疲れさまでした。



View:1345 この記事をツイート!