彼女からは、おいちゃんと呼ばれています

ウェブ技術や日々考えたことなどを綴っていきます

自分のブログ(独自ドメインのはてなブログ)を常時 SSL 化(HTTPS 化)した

Chrome 68 から HTTP 配信だと警告が出るということなので、先週末、慌ててこのブログを常時 SSL 化した。

神記事

前職でカラーミーショップの常時 SSL プロジェクトを主導していたので、やることは分かっていたけど、Mixed Content 対応めんどくさいなーと思っていたところ、神記事をみつけた。必要なやつ全部書いてくれている、わかりやすく。

だいぶ時間を省けた。id:JunichiIto さんに大感謝。

しかも、前職で同じチームで仕事していた後輩のリポジトリが出てきたりして(kymmt90/hatenablog: A Ruby gem for Hatena Blog AtomPub API)、とても誇らしい気持ちになった。がんばってんなー。

補足

もう上の記事が素晴らし過ぎるので何も言うことはないのだけれど、少しだけ補足。

過去記事に対して無変更で「更新」だけを実行するスクリプトを作った

のところで、更新する対象の URL リストをつくる必要があるのだけれど、それを result.txt(Mixed Content のバリデーションエラーが列挙されている)から作れると便利だなと思った。

result.txt はこんな感じのフォーマットで、同じ URL が複数並んでいる場合もあるのがミソ。

https://blog.inouetakuya.info/entry/2018/06/30/204134    10257846132596542760    49インチ 4K ディスプレイの感想  img src http://s3.feedly.com/img/follows/feedly-follow-rectangle-flat-medium_2x.png
https://blog.inouetakuya.info/entry/2018/06/30/204134   10257846132596542760    49インチ 4K ディスプレイの感想  script  src http://b.hatena.ne.jp/js/widget.js
https://blog.inouetakuya.info/entry/2018/06/30/204134   10257846132596542760    49インチ 4K ディスプレイの感想  script  src http://b.hatena.ne.jp/js/widget.js
https://blog.inouetakuya.info/entry/2018/05/31/070600   17391345971652637038    トリップトラップという子ども椅子を買った    img src http://s3.feedly.com/img/follows/feedly-follow-rectangle-flat-medium_2x.png
https://blog.inouetakuya.info/entry/2018/05/31/070600   17391345971652637038    トリップトラップという子ども椅子を買った    script  src http://b.hatena.ne.jp/js/widget.js
https://blog.inouetakuya.info/entry/2018/05/31/070600   17391345971652637038    トリップトラップという子ども椅子を買った    script  src http://b.hatena.ne.jp/js/widget.js
...

自分の場合は、下記のようにして、一意の URL のリストを作った。

irb(main):001:0> require 'csv'
=> true
irb(main):002:0> CSV.read('./result.txt', col_sep: "\t", liberal_parsing: true, headers: false).map { |row| row[0] }.uniq.each { |url| puts url }

Ruby CSVliberal_parsing オプション

ちなみに liberal_parsing: true オプションを付けているのは、一部のブログタイトルにダブルクォーテーションが含まれていて CSV::MalformedCSVError: Illegal quoting というエラーが発生したため。詳細については下記参照。

以上です。伊藤淳一さん、ありがとうございました!