福冨諭の福冨論

RSSリーダーではこちらをどうぞ→https://feeds.feedburner.com/fuktommy

Marriott Bonvoy アメックスの還元率を考えてみる

SPGアメックスがリニューアルしてMarriott Bonvoy アメリカン・エキスプレス・カード(プレミアムと区別する場合はベースと呼ぶらしい)とMarriott Bonvoy アメリカン・エキスプレス・プレミアム・カードになるわけだが、どちらがお得なのか、他のカードと比べるとどうなのかを考えてみたい。

無料宿泊特典が発生するように年間150万円(そのうち還元率が半分になる公共料金が40万円)使う前提とする。400万円使う人や数十泊するような人にとってはプレミアムカードの方が有利だろうし、逆に100万円行かない人にとってはコスパ度外視で5万円払ってゴールド会員になるという選択もあるだろうから、還元率がどうこうと言っても意味がなさそうだ。(いくら使えばどれだけお得になるかという考察は「AMEX SPGの乱(2022) | The Gekkan Boston」に詳しい)

150万円使うと何ポイントになるかというのは計算すれば出るのだが、問題はポイント単価(1ポイントが何円として使えるか)だ。マイルへの交換ではなく宿泊に使う前提で考える。休みが取れたら予約ページと睨めっこして交換率のよい宿を探すイメージになるだろう。今回は普通のポイントも無料宿泊特典も区別せず足して計算するが、実際には無料宿泊特典は2泊以上に分割することはできないし上乗せも1.5万ポイントまでに制限されている。仮に計算上で合計10万ポイントとなったとしても10万ポイントの部屋に1泊できるわけではないし3万ポイントの部屋に3泊できるとは限らない。また10万ポイントの部屋に1泊するのと3万ポイントの部屋に3泊するのとどっちに価値があるかは人にもよるし状況にもよる。繁忙期の方が単価がよくて閑散期の方が必要ポイントが少ないときにどっちがお得なのかも個人の価値観や状況によって変わるだろう。(ポイント単価の例は「Marriott vs Hilton ポイントの価値は?|マイラーズラボ」に詳しい)

これらの要素を取り除いて単純化して考えると、例えば 1ポイント=0.7円 と仮定したときベースカードの還元率は

((110*2% + 40*1% + 3.5) * 0.7 - 2.31) / 150 = 1.3%

となる。この考え方をもとに 関数グラフ - GeoGebraでグラフにすると

f:id:fuktommy:20220220135027p:plain
ポイント単価とカード還元率

となる(横軸がポイントの価値(円/ポイント)、縦軸がカードの還元率(%))。残念ながらSPGアメックスのコスパのよさが明らかになってしまった。

SPGアメックスとプレミアムカードが平行になっているのは年会費が上がってポイント還元面では変わってないことを表している。SPGアメックスとベースカードがx軸付近で交わっているのは年会費が2/3になってポイント還元も同じく2/3になったので年会費の元を取る条件は同じであるがポイント単価が上がるほどに差が開くことを意味している。

ベースカードとプレミアムカードが交わるのが 1ポイント=0.94円 のところで、ポイント単価がこれよりも高ければプレミアムカードの方がお得になるのだが、実際にはあまり期待できないのではないだろうか。(ちなみに400万円使うのであれば 1ポイント>0.5円 でプレミアムカードの方がお得)

他のカードに目を向けると

  • 0.5%還元 (還元率が悪いカードでも大半のカードがクリアしている水準)
  • 1.0%還元 (手間をかけない前提で還元率のよいカードがこのくらい)
  • 1.5%還元 (リボ払いボーナスや年間100万円利用ボーナスを加味するとこの水準になることも)
  • 2.0%還元 (リボ払いボーナスと年間100万円利用ボーナスを併用するとこの水準になることも)

あたりが対抗馬として出てくる。1%還元程度であればクリアできそうな気はするが、1.5%以上を目指すとすると結構難しいのではないだろうか。

杉並区の旧町名について調べてみた

杉並区の旧町名について調べたり考えたりした。

1963年頃の住居表示

住居表示前後の変更点については区役所の資料があるのですぐわかるのだが、全体を眺めるのであれば杉並の町名の変遷が便利。杉並区に限らず東京都や全国的なルールがあったのかもしれないが、

  • 中央線と青梅街道で町域を区切るようにした
  • 「(地名)町」と「(地名)(数字)丁目」が混在していたのを「(地名)(数字)丁目」に統一した
  • 「(地名)(数字)丁目」の区域でも丁目に関わらず地番(○番地)が振られていたのを丁目の中で街区符号(○番)を振り直した

のような再編成が行われた。

江戸時代には中央線はなかったのだから当時の村の分け方には中央線が関係ないのは当然として、青梅街道が境界になってないところもいくつかある。現在でも井の頭線は境界になってないし、五日市街道や井の頭通りも境界になってないのだから、昔の考え方が特別に変だということはない。むしろこのタイミングで中央線と青梅街道だけ境界にした理由が気になる。またよくみると松庵だけ中央線の北側に飛び出している。

住居表示以前は「(地名)町」と「(地名)(数字)丁目」の使い分けが徹底していて「○○町○丁目」のような住所はない。西田町や東田町が例外のように見えるがこれはそれぞれが一語であって「(地名)町」ではない。これを「(地名)(数字)丁目」に統一したのだが丁目 - Wikipediaによれば

  • 「丁目」を付けるべしという東京都のルール
  • 「丁目」をつけるときは「町」をつけるべからずという自治省のルール

があったらしく、それに従った形といえる。おそらく住居表示以前にも同様のルールがあったものと思われる。

1932年の杉並区成立

杉並区成立に合わせての町名改称については東京市新區町名地番表という資料がある。これも東京都や全国的なルールがあったのかもしれないが、

  • 字を廃止し、原則として大字を町名に採用する
  • 「(地名)町」と「(地名)(数字)丁目」のどちらかに命名する
  • 地番の振り直しはおそらく行われていない

のようになっている。

大字は原則的にはそのまま町名になっているが例外として

  • 田端は西田町と東田町になっている。素直に考えれば西田端・東田端になりそうなものだが
  • 和田が方南町と和田本町に分割されている。方南は字に由来する。和田「本」町の「本」の由来はわからない
  • 永福寺は永福町と命名
  • 読めない字の大字があって上井草町に編入されている
  • 大字の沓掛や四宮とは別に下井草の字として沓掛や四ノ宮があり、これを含めて下井草は元下井草町と命名されている。翌年に矢頭町に改称した

のようなものがある。

1932年以前の東多摩郡豊多摩郡時代

この時代については古すぎてよくわからないが、このときの大字の区分と名前がほぼそのまま1963年までの町名として残っていた。この時代の資料としては東京府15区8郡時代の町村区分図がある。見やすいのは昭和初期の杉並町(現 杉並区)にあった地名で、これは杉並町の部分だけだが、

  • 大字の中に字がある
  • 字の中に連番で地番が振られている
  • 同じ大字の中では字に関わらず地番が振られている

という性質が見て取れる。例えば「大字阿佐ヶ谷 字小山 1番地」は「大字阿佐ヶ谷 1番地」で特定できるように見えるのだが、そうなるとなぜ中間に字を設定しているのかがわからない。この方式は日本の多くの地域で採用されたらしい(住所検索開発者が教える、知っておきたい日本の住所の話(第2回)地番の振り方マップ(一村通し or 字別付番))。この性質があるため杉並区成立に伴う改称でも地番の振り直しは発生しておらず、現代でも大字(町名)の部分が変わっただけで地番の数字部分はそのまま使えているように思える。

上記の資料によれば江戸時代から明治初期の村の名前が大字になり、村内の地域の名前が字になったという。例えば杉並町内であれば阿佐ヶ谷村や高円寺村が阿佐ヶ谷や高円寺といった大字になっており、高井戸町や和田堀町でも同様だ。しかし井荻町では事情が異なり江戸時代以前の字(例えば沓掛)が大字になる場合が多い。この理由は気になるところだ。

杉並区の小学校の命名規則

杉並区の小学校の命名規則についてちょっと調べて考えたのだった。

杉並町の「杉並第○小学校」

旧杉並町は「杉並第○小学校」で統一している。 杉並第一小学校から杉並第十小学校まで(現在は欠番がある)。 学校所在地から考えても「杉並区」の杉並ではなく「杉並町」の杉並であろう。 「第○小」と省略する人もいるが 後述のように区内には別の「第○小」系統も存在するため、 地元民は「杉○小」や「杉○」と呼ぶ。

設立時には

  • 杉一: 桃地学校 (桃園学校第一番分校)。桃は桃園学校に由来するが、地はわからない
  • 杉二: 成田(せいでん)尋常小学校。地名の成宗と田端に由来。地名の成田は「なりた」と読む
  • 杉三: 高円尋常小学校。おそらく地名の高円寺に由来
  • 杉四: 高円寺原尋常小学校

という名前だった (桃園学校は中野区の旧桃園小学校)。 「桃地」と書いてなんと読むのかわからないのだが 「成田=せいでん」や後述の「桃井=とうせい」から考えると 「とうち」なのかもしれない。 杉一~杉三は桃地、成田、高円という割と統一感のあるネーミングであった。

「高円寺原尋常小学校」は大正に入ってからの設立で、 高円寺(馬橋?)の字「原」にあるからという理由らしく、 時代の違いもあるが杉一~杉三とはちょっと傾向が異なる。

その後杉並町の発足が起因になって「杉並第○小学校」に改称したと思われる。

井荻町の「桃井第○小学校」

旧井荻町は「桃井(ももい)第○小学校」で統一しており、 杉並町とは異なり「井荻第○小学校」の命名規則ではない。 桃一から桃五まである。

杉一が桃地学校(桃園学校第一番分校)として産まれたように 桃一は桃井(とうせい)学校(桃園学校第二番分校)として設立され、 おそらく桃二の設立に起因して番号つきの桃一に改称したと思われる。

高井戸町の「高井戸(第○)小学校」

旧高井戸町もおおよそ「高井戸第○小学校」で統一されているのだが、 「高井戸第一小学校」はなく「高井戸小学校」となっている。 高二から高四まである。

高井戸小学はもともと高泉学校、郊西学校、高明学校という 3つの小学校(この命名規則も桃地学校・桃井学校・後述の大宮学校と共通している) があったものが時間差で合併したもので、 時期的には高井戸村が発足した後なので、 大雑把な地名としての高井戸か行政としての高井戸村かどちらかに由来するのだろう。

高二~高四は高井戸村・高井戸町の小学校ということでの命名か、 高井戸小学校からの枝分かれということでの命名かだろう。

和田堀町の地名由来の小学校

旧和田堀之内村・旧和田堀町の小学校は前述のものとは全く異なり、 大宮小学校(設立時は大宮学校)、堀之内小学校、和田小学校と、 全て地名(町名)に由来している。

ただし大宮学校は地名としての大宮ではなく、 大宮八幡宮や大宮寺(という寺院があったらしい)に直接由来しているかもしれない。

杉並区成立後の町名由来の小学校

戦前の方南小学校から21世紀の天沼小学校に至るまで町名由来の小学校が十数校あり、これが標準の命名規則のように見える。

例外

  • 新泉小学校: 「東京府立和泉小学校」が既に存在したため名前かぶりを避けての命名。戦後は杉並区立の小学校となったため「杉並区立和泉小学校」を作ることができた
  • 若杉小学校: 「杉並の若人」的な意味だと思うのだが他に例を見ないネーミング。戦後の復興期の命名かと思うが意外にも1942年設立
  • 西田(にした)小学校: 町名の西田町(にしたまち)に由来するが、なぜか西田町小ではない。旧村名の田端ともかけてあるのか
  • 東田(ひがした)小学校: 町名の東田町(ひがしたまち)に由来するが、なぜか東田町小ではない。旧村名の田端ともかけてあるのか
  • 済美小学校: もともとその敷地にあった私立学校の名前に由来するらしい
  • 富士見丘小学校: 富士見ヶ丘駅に由来するのだろうか?
  • 永福南小学校: 町名+方角の命名規則は保育園にはよく見られるのだが小学校ではここだけ
  • 新泉和泉小学校: 新泉小と和泉小が合併したため

合併した場合の命名規則

一貫した命名規則が見えてこないが、町名由来の命名が原則になってそうではある。 片方の学校名を残すのか新しく命名し直すのかはサンプルが少なくてわからない。

  • 永福小学校: 永福小と永福南小との合併
  • 天沼小学校: 杉五小と若杉小との合併
  • 新泉和泉小学校: 新泉小と和泉小との合併。小中一貫の和泉学園
  • 高円寺小学校: 杉四小と杉八小との合併。小中一貫の高円寺学園

永福小と永南小は地名で考えれば「永福」だし名前も近いことから 永福小としたのだろうか。 天沼小・高円寺小はどちらも元の学校名に地名が入ってないので 新たに地名で命名し直したと思われる。

なお高円寺は町名では高円寺北・高円寺南なので 高円寺小は町名そのままの命名ではない。

新泉和泉小は地名で考えれば「和泉」なのだし名前も近いから 和泉小にしてもよさそうなのだが、 新泉小の歴史が圧倒的に長いので吸収合併のような命名は避けたのだろうか。 とはいえここは小中一貫の和泉学園でもあるので、 歴史に配慮しつつ利便性も捨ててないというバランスだろうか。

参考文献

Twitterで画像ページのURLを貼ると画像転載のように見える件

Twitter上で「画像の無断転載やめてください><」「してません><」「嘘つかないでください><」って揉めてるのを見たのでちょっと検証したみたんだけど、Twitterの挙動が最悪だとしか思えなかった。

画像ページというのは仮につけた名前で https://twitter.com/fuktommy/status/1398646034226724868/photo/1 みたいなやつ。これを単にクリックするとツイートにリダイレクトされるのだけど、その画像をクリックするとこのURLになる。中央に画像が、右側にツイート本文(スレッド)が表示される。これの短縮表現である pic.twitter.com/HhUtbwVUPP についても同様。

この画像ページのURLをツイートに貼るとどうなるか。普通に考えればこのページへのリンクになると思うのだが、実際には https://twitter.com/fuktommy/status/1413847070960541700 のように画像を添付したのと同じ表示になる。これでは誰のどのツイートが元になっているかわからず、無断転載したのと同じになってしまう。

実はAPI経由でツイートを取得すると普通のリンクと同様になっているらしく、HTMLへの変換ツールをかけると

こっち?<br />
<a href="https://t.co/HhUtbwVUPP" title="https://twitter.com/fuktommy/status/1398646034226724868/photo/1">pic.twitter.com/HhUtbwVUPP</a>

となっていて、非公式クライアントだったら普通にリンクとして表示されるかもしれない。こうなると「無断転載やめてください」って言われても「言い掛かりはやめてください」ってなるよな。

自宅のIPv6環境を整備した

「光 with フレッツ」コースは開通までに1ヶ月かかる

昔使っていたASAHIネットを再契約することにして、トップページからASAHIネット 光 with フレッツを選んだのだが、これが罠。このページにも「IPv6接続機能」のご案内にも契約時の書類にも 一切書いてない (これはサポートに問い合わせて返事をもらったから間違いない)のだが、NTT東日本側の契約がスタートするのが(おそらく)翌月1日で(下旬だと翌々月1日になるのかもしれないが謎)、それを待たないとIPv6接続の申し込みができないという制約がある。このとき申し込みページには

提供対象外

※接続サービスご利用開始後にお申し込みいただけます

と書かれているので、なるほどPPPoE接続を開始してしばらく待たないと反映されないんだなと思って待ってたけどそれではダメ。辿りづらいがインターネットサービス一覧にあるフレッツ 光ネクストが正解。

「光 with フレッツ」自体は各種ISPにあって、NTT東日本側の契約がスタートするまでタイムラグがあるのもたぶん同じ。IPv6接続の申し込みがそれ待ちなのがASAHIネット固有の事情なのかは不明。どこも同じだろうと思っていた方が危険が少なそうだ。

というようなことがサポート窓口とのやりとりで判明し、サポート経由でコースを変更してくれるとのことで依頼した。土曜の深夜に依頼して日曜のお昼に切り替わっていたのでびっくりした。まさか土日に働いてるとは思ってなかったので。

ちなみにサポートフォームでは住所欄は任意入力なのでIDを入れれば登録済だからわかるだと思ったら、本人確認のためにメールで送ってくれという話になったので入力しておいた方がよさそうだ。もしかすると入力していても聞かれるかもしれないが。これで1日浪費してしまった(サポートからの返信には毎回1日かかるので)。

IPv6接続の申し込みから開通までは1時間程度だった。BIGLOBEも最大1時間としている。DTIは1~2日としている。例によってASAHIネットのホームページには書いていない。

ISP乗り換え手順を考えておく

安全にISP乗り換えを行うには

  1. ISPを「光 with フレッツ」ではないコースで契約する
  2. IPv6接続の申し込みボタンが有効になっていることを確認する
  3. ISPIPv6接続の解約申し込みをする。ここでどのくらいの期間待つかは謎。予めISPのサポートに確認しておくべきだろう。場合によってはNTT東日本に確認する必要があるようだ。
  4. ISPIPv6接続の申し込みをする。1時間~2日程度待つ

ということになるだろうか。SIMを差し替えるように一瞬というわけにはいかないのが辛いところだ。

Androidの「接続済み、インターネットは利用できません」エラーが解決した

ISPを乗り換える前からAndroidNTT東日本Wi-Fiルーター「RS-500MI」のWi-Fiに繋ぐと

接続済み、インターネットは利用できません

と出て、ElecomのWi-Fiルーターをアクセスポイントとして使えば繋がるという現象が起きていた。続・IPv6の罠。 - Luvelcrakを読んでピンと来たのだが(この記事とはちょうど逆の現象が起きてたと思うのだが)、フレッツ光ネクストを使っているとISPIPv6契約とは関係なくフレッツ網内部用のIPv6アドレスが振られる。これは形式的にはグローバルIPアドレスに相当するものなのだけど外部には繋がらない。フレッツ網におけるIPv6を読むといろいろ事情があるようだが…

どうやら、OSレベルで手が入れられて、IPv6が部分的に殺されてるっぽい。

...

国内キャリアから発売される端末でIPv6が無効化されてるような記述を発見。

というのがポイントで、国内キャリアから発売されてない端末だとその辺の処理が入ってない可能性があって、フレッツ網内部用のIPv6アドレスを使って外部に接続しようとしてエラーになるのではないかと考えた。フレッツ網内部にあるサービス情報サイトだけには繋がってたのもその証拠になるだろう。ChromeのアドレスバーにIPv4アドレスを入力してもエラーになっていたのでちょっと謎なのだが…

ElecomのWi-Fiルーターを経由すると繋がるのは

ひかりTVモード: 無効

という設定が入っていて、これがIPv6接続をいい感じにフィルタリングしてるのではないかと考えた。

これもISPIPv6アドレスが割り振られたら解決した。@nifty with ドコモ光で、IPv6接続オプションが開通にあるようにISPIPv6アドレスが来るとフレッツ網内部用のIPv6アドレスは消えるので。

ニコニコ動画のRSSを作ってみた

春休みの自由研究と、4月からの新アニメに備えて視聴環境を改善しました。 ニコニコ動画 『スナップショット検索 v2 API』 ガイド を使ってRSSを生成します。

プレミアム限定動画

NewsBlur がどうも1フィード100件までしか取得できない雰囲気なので、100件ずつ分割しています。 あとNewsBlurは作成日・更新日が古いエントリーを勝手に非表示にするっぽいので、最終コメント時刻を更新日としています。 表示上は動画投稿時刻の方が大事なんですけどねえ。

公式アニメ

dアニを分離してますがどっちがいいのかな。 昔は https://ch.nicovideo.jp/ch_anime/video?rss=2.0 で取れたんですが、なんか取れなくなった雰囲気を感じたので。

dアニメストア

公式には https://ch.nicovideo.jp/danime/video?rss=2.0 で取れるのですが、勢いで作りました。 あと公式のRSSだと若干漏れがあるようなないようなという雰囲気があるので。 特に過去の作品がアップロードされたときは取れないことがあります。 そういえばこれはRSSの都合なのかNewsBlurの都合なのか把握してないな。 上に書いたけどNewsBlurは作成日・更新日が古いフィードを勝手に非表示にするので。

過去の作品を把握するために https://dani.fuktommy.com/ というフィードもあって、 これは 配信ラインナップ | dアニメストア ニコニコ支店RSS化したものです。

一覧ページ

動画の数やNewsBlurの特性をみながらフィードを増減していくと思うので一覧ページを作りました。 一覧ページは今のところRSSじゃないので、更新を把握したければ https://github.com/fuktommy/nv-search-rss/commits/main.atom で見ていただけると。

Let's Encrypt でワイルドカード証明書の設定をした

もともと python3-certbot-apache で設定していたのを、ワイルドカード証明書に変更したときの記録。

certbotのインストールと昔の設定

コマンド履歴をみるとこんな感じだったらしい。

sudo apt install certbot python3-certbot-apache
sudo certbot --apache
sudo certbot renew --dry-run

certbotワイルドカード証明書を取得

Let's Encryptでワイルドカード証明書を取得する | クラウドのエスエスアイ・ラボ を参考に

sudo certbot certonly \
    --manual \
    --cert-name fuktommy.com \
    --preferred-challenges dns \
    -d "*.fuktommy.com" \
    -d fuktommy.com \
    -m webmaster@fuktommy.com \
    --agree-tos \
    --manual-public-ip-logging-ok

自己署名証明書を生成

vhostsのデフォルト設定ではどうせドメイン名とか適当なので、自己署名証明書を使う。 OpenSSL で SSL 自己証明書を発行する手順 |apache 2.4系 SSL自己証明書の導入方法 | Check!Site を参考に

sudo mkdir -p /etc/cert/self-signed
cd /etc/cert/self-signed
sudo openssl req -subj "/C=JP/ST=Tokyo" -x509 -nodes -new -keyout server.key -out server.crt -days 3650

Apacheのvhostsのデフォルト設定

IPアドレス指定とかそういうのを食います。

ServerName example.com
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName example.com
    ErrorLog /var/log/apache2/error.log
    CustomLog /var/log/apache2/access.log combined

    DocumentRoot /var/www/html
    <Directory /var/www>
        略
    </Directory>
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName example.com
    ErrorLog /var/log/apache2/error.log
    CustomLog /var/log/apache2/access.log combined

    DocumentRoot /var/www/html
    <Directory /var/www>
        略
    </Directory>

    SSLCertificateFile /etc/cert/self-signed/server.crt
    SSLCertificateKeyFile /etc/cert/self-signed/server.key
</VirtualHost>
</IfModule>

実際に使うvhostの設定

この設定を必要なだけ並べます。 python3-certbot-apache が生成したファイルをベースにしています。

<VirtualHost *:80>
    ServerAdmin webmaster@fuktommy.com
    ServerName twf.fuktommy.com
    ErrorLog /var/log/apache2/twf.fuktommy.com.error.log
    CustomLog /var/log/apache2/twf.fuktommy.com.access.log combined

    DocumentRoot /var/www/html
    RewriteEngine on
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin webmaster@fuktommy.com
    ServerName twf.fuktommy.com
    ErrorLog /var/log/apache2/twf.fuktommy.com.error.log
    CustomLog /var/log/apache2/twf.fuktommy.com.access.log combined

    DocumentRoot /srv/www/html
    <Directory /var/www>
        略
    </Directory>

    SSLCertificateFile /etc/letsencrypt/live/fuktommy.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/fuktommy.com/privkey.pem
</VirtualHost>
</IfModule>

ワイルドカードのvhostの設定

この設定は最後に位置するようにします。 apache - Virtualhost For Wildcard Subdomain and Static Subdomain - Stack Overflow を参考にしました。

<VirtualHost *:80>
    ServerAdmin webmaster@fuktommy.com
    ServerName default.fuktommy.com
    ServerAlias *.fuktommy.com
    ErrorLog /var/log/apache2/error.log
    CustomLog /var/log/apache2/access.log combined

    DocumentRoot /var/www/html

    RewriteEngine on

    RewriteCond %{HTTP_HOST} tumblr.fuktommy\.com$
    RewriteRule .(.*) https://fuktommy.tumblr.com/$1 [L]

    RewriteRule ^ https://fuktommy.com/ [L]
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin webmaster@fuktommy.com
    ServerName default.fuktommy.com
    ServerAlias *.fuktommy.com
    ErrorLog /var/log/apache2/error.log
    CustomLog /var/log/apache2/access.log combined

    DocumentRoot /var/www/html

    RewriteEngine on

    RewriteCond %{HTTP_HOST} tumblr.fuktommy\.com$
    RewriteRule .(.*) https://fuktommy.tumblr.com/$1 [L]

    RewriteRule ^ https://fuktommy.com/ [L]

    SSLCertificateFile /etc/letsencrypt/live/fuktommy.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/fuktommy.com/privkey.pem
</VirtualHost>
</IfModule>

ウチの場合は shingetsu.info も持ってるので、ワイルドカードの設定は2セットあります。

options-ssl-apache.conf を消す

Let's EncryptのSSL証明書の新しいサーバーへの引っ越し作業 - Ubuntu開発環境構築 - Perl Web開発環境構築を見ると要らなさそうなので消します。 もともと ssl.conf もありますしね。

dovecotの設定

もともとpop3を使ってたのですが 【Postfix+Dovecot+SSL】2019年の終わりにあえてメールサーバーを構築する | 感情的プログラミング伝記 | タウン情報誌 AIR函館 - 北海道函館市の食・呑・遊をご紹介! をみてpop3sに変更しました。 書き換えたのはこの辺かな

ssl = required
ssl_cert = </etc/letsencrypt/live/fuktommy.com/fullchain.pem
ssl_cert_key = </etc/letsencrypt/live/fuktommy.com/privkey.pem

inet_listener pop3s {
  port = 995
  ssl = yes
}

certbot-dns-sakuracloud の設定

よく考えたら手動で証明書取得してるから証明書の更新ができないんですよね。 さくらのドメインでとったドメインを certbot の dns-01 に対応させた | cexenのIT備忘録さくらのクラウドDNS + Let's Encrypt でワイルドカード証明書する! - Qiita を参考に certbot-dns-sakuracloud を導入します。 あとエラーが出たので certbot-dns-sakuracloudを利用したLet's Encrypt証明書更新に失敗する場合の原因と対応方法 - Qiita も見ました。 次回があれば証明書の取得からこのプラグインを作りたいところ。 自動更新の設定はこんな感じ。

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew --dns-sakuracloud --dns-sakuracloud-credentials /etc/cert/sakura-apikey