Chromeに煽られたので、あまり使ってないサイトもhttps対応する
一年半ぶりの更新になります...φ(・ω・`)
その間にも「チェンクロパーティーシミュレーター」(以下、ccpts)に
大量の技術的な更新を入れていたのですが、
ついつい仕事を優先してBlogを書いてませんでした
- ccptsの主な更新内容
その中のトピックスの一つが「(ccptsの)https対応」で、
昨年の冬くらいに対応し、暗号化方式でなんやかんや悩んだ記憶があるのですが、
とりあえず置いておいて・・・Σ(・ω・ノ)ノ
昨日、Chromeがアップデートされ、「httpは安全ではない」と表示されるようになりました
実質まともに動かしているのはccptsくらいなのですが、
念のためポータル的なサイトの方も対応しておくことに...φ(・ω・`) *1
とはいえ、現在は「Let's Encrypt」という素敵な仕組みが存在し、
やろうと思えば数分でhttps対応が終わってしまうご時世です
ccptsをhttps対応した頃は、まだツール(certbot)の精度がいまいちで、
(特にnginxだと)多少苦労があったり、自動更新がうまくいかなかったりしましたが、
クライアントが「certbot-auto」に移行してからは、さらに簡単になりましたヽ(`・ω・´)ノ
基本的にはここに書いてある通りで、nginxでもapacheでも余裕です
Let's Encrypt の使い方 - Let's Encrypt 総合ポータル
- certbot-autoをwgetしてchmod +x
- certbot-autoを初回起動して必要なライブラリを取得
- certbot-autoをドメイン名つき起動し、証明書発行してもらう
- (途中でメールアドレスを求められるので入力)
- ローカルに生成された証明書をconfに書く
- portをあける
- nginx or apacheを再起動
これだけです(`・ω・´) b
一度証明書を取得してしまえば、環境情報がサーバに保存されるため、
cronにセットしてしまえば、再取得も簡単にできます
$ sudo crontab -l # 週に一回 "certbot-auto renew" を実行する(念のため、実行ログも取る) 2 5 * * 0 /path/to/certbot-auto renew >>/hoge/piyo/certbot.log 2>>/hoge/piyo/certbot_err.log
証明書の期限は90日で、1ヶ月くらい前から更新が可能になりますが、
更新が不要な場合はメッセージだけ出して無視してくれます(`・ω・´)
最悪、cronでの更新がうまくいかなくても、証明書作成時に登録したメールアドレスに、
「もうすぐ期限が切れます」というメールが届くので、手動で更新すれば大丈夫です
(以前はそのような運用をしてました)
あとは・・・問題なければhttpからhttpsにリダイレクトしてあげるといいのですが、
ccptsではやっているものの、ポータルの方はほっといてます
server { listen 80; listen [::]:80; server_name ccpts.parrot-studio.com; return 301 https://$host$request_uri; # redirect to https } server { listen 443; listen [::]:443; server_name ccpts.parrot-studio.com; # 以下略 }
慣れれば本当に数分のレベルですので、業務でいきなり導入する前に、
ぜひ自分のサイトでお試しを(´・ω・)っ
<2018/8/28追記>
cronを使ってnginxの証明書を更新しようとした場合、
nginxのpathを見失って更新できないことがあります
その場合、crontabにPATHを明示する必要があります
$ sudo crontab -l # PATHを明示 PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin # その他必要なPATH # 以下同じ
cronあるあるですが、忘れやすいのでご注意を(´-ω-)