nostr.directoryのTwitter認証バッジ

はじめに

前回の投稿「Nostrアカウントの認証(NIP-05)」の続きです。
今回はnostr.directoryTwitter 認証バッチを有効にした際の作業記録です。

最初に感想を述べると、なんかよく分からないけれどできたという感じです。

なので、ここで書かれている通りにやっても上手くいかない可能性があります
同じように困っている方がここで書かれていることを参考にして解決できるかもしれない、という程度の内容なので軽い気持ちでご覧いただければと思います。

とはいえ、もし間違えや誤解を招く記載があれば後で訂正しようと思っています。

作業記録

1. Twitter 上で指定された文言をツイート

nostr.directory のサイトを開くと[Tweet your nostr pubkey] と[Verify your pubkey on nostr] という2つのボタンがあります。

nostr.directory

[Tweet your nostr pubkey] ボタンをクリックしてTwitter 上で指定された内容のツイートをします。

詳しい手順は、前々回の投稿「Nostrアカウントの作成(Damus, Amethyst, snort.social)」のあとがき「nostr.directory」に記載してあります。

このツイートをした後にnostr.directory で自身のアカウントを検索してみると、検索結果にアカウントの情報が表示されるようになりました。(検索条件はTwitter のユーザー名かNostr アカウントの公開鍵を指定します)

nostr.directory > Account

この時はまだ、Twitter の認証バッジは灰色です。
このツイートは、この検索でアカウントを表示できるようにするためだけのもののようです。

Twitter アイコンの右上の(?)をクリックすると、認証バッジを有効する方法と思われる内容が表示されます。

nostr.directory > Twitter Verification ヘルプ

Twitter の検証

ユーザーは下記をする必要がある:

1. nostr.directoryのHPで示されたフォーマットに従って、自身のnostr公開鍵をツイートする

2. nostr.directoryのHPで示されたフォーマットに従って、nostrの公開鍵(1のような)を送信する

上記1. は当項目で実施したこと。2. は後述「3. Nostrアカウントで指定された文言をPost」でやることの認識です。

2. Nostrアカウントにリレーサーバを追加

Nostr のnostr.directory のアカウントが登録しているリレーサーバと自分のアカウントが登録しているリレーサーバを比較して、nostr.directory のアカウントの方にしか登録されていなかったwss://nostr-pub.wellorder.net を追加します。

これが本当に必要かは公式サイトに掲載されている訳ではないので実は必要ないかもしれませんが、何度か試しても上手くいかず、成功した時にこれを追加していたので書いておきます。

Damus > Relays (Before)
追加する前
Damus > Relays (Add)
追加
Damus > Relays (Added)
追加した後

Damus を使ってリレーサーバを追加しました。
画面はDamus の画面です。

3. Nostrアカウントで指定された文言をPost

Damus でPost

iPhone のDamus アプリを使ってPost します。

まず、ブラウザでnostr.directory のサイトを開きます。

nostr.directory > Verify

[Verify your pubkey on nostr] ボタンをクリックします。

nostr.directory > Verify (1)
nostr.directory > Verify (2)

iPhone が初代SE なので画面のレイアウトが窮屈で見づらいですが、”Twitter screen name” という入力欄にTwitter アカウントのユーザー名(先頭の@ を除く)を入力する(左の画像)と、右の画像のようにPublic Key の箇所が入力した内容に自動で置き換わるので、[Copy Verifrication Text] をタップしてクリップボードにコピーします。

Damus アプリを開いて、コピーを貼り付けてPost します。

Damus > Post
Damus > Posted

これで認証バッジにチェックが付くはずが暫く待っても灰色のまま。
どうしてよいか分からぬまま続けてブラウザ向けのNostr クライアントIris を使ってPost してみることにしました。

Iris でPost

ブラムザ向けのNostr クライアント Iris を使ってPost します。

ブラウザを使ってPost する文言を作る手順は同じなので省略します。
Iris でPost しました。

Iris > Posted
iris

上がIris のPost、下がDamus のPost。約1時間後にPost していました。

nostr.directory > Twitter (verified)
nostr.directory

Iris でPost してすぐにnostr.directory を見ると、緑色のチェックが付いていました。
DamusIris のPost のどちらが反映されたのか、Nostr クライアントの違いが影響しているのかなどよく分からないですが、とにかくTwitter 認証バッジが有効になりました。

あとがき

Nostr 関連の最初の投稿「Nostrアカウントの作成(Damus, Amethyst, snort.social)」の際に同じVerify のPost をしていたのですが反映されず、その時は諦めたのですが気になって再度チャレンジして何とかなりました。

これが有効になると、nostr.directory でTwitter のアカウントとnostr アカウントが紐づいていることを確認できることになるので、Twitter でつながっている知人のnostr アカウントを安心して特定できるようになる、という感じでしょうか。

とりあえず、認証バッジが全部灰色よりは見た目がいい感じになれてよかったです。

参照

Nostrアカウントの認証(NIP-05)

はじめに

前回の投稿「Nostrアカウントの作成(Damus, Amethyst, snort.social)」の続きです。
今回はNIP-05 の認証をします。

自身で管理するWeb サーバのドメイン名とNostr アカウントを紐づけることで、Nostr アカウントのプロフィール欄にドメイン名を認証バッジ付きで表示させることができます。
Nostr アカウントがそのドメインの所有者であることを証明することになるので、第三者がそのNostr アカウントがなりすましでないことを確認できるようになります。

1. Web サーバに認証用のファイルを配置

自身で管理するWeb サーバの<domain>/.well-known/nostr.json で参照できる場所に下記のファイルを配置します。

{
  "names": {
    "<name>": "<pubkey>"
  }
}

3行目は自身のNostr アカウントの情報に書き換えます。

  • name
    • Nostr アカウントのUsername(先頭の@ を除く)
  • pubkey
    • Nostr アカウントの公開鍵(HEX 形式

今回、下記のように書き換えました。

{
  "names": {
    "GiantRodent": "94e3a1c166f4fea85b94870219e6461de923296f3fe4736b24c3e23b4c0c43e4"
  }
}

公開鍵(HEX形式)

nostr.directory にアカウントを登録している場合は、NIP-09 のhexPubKey にHEX 形式の公開鍵が表示されているので、ここからコピーして使えます。

nostr.directory > NIP19
nostr.directory > @RodentGiant

Damus のKey Converter というページで、npub で始まる公開鍵を入力してHEX 形式に変換することもできます。

Damus > Key Converter

ファイルを配置(CLI)

Web サーバの公開ディレクトリに認証用のファイルを配置します。
サーバにSSH 接続して下記のコマンドでファイルを配置しました。

mkdir .well-known
cd .well-known
touch nostr.json
chmod 644 nostr.json
vi nostr.json
→ 前述のJSON を貼り付け

2. Web サーバの設定でCORS を許可する

Web サーバの設定ファイルに、CORS を許可する設定を追記します。

Apache

Header set Access-Control-Allow-Origin "*"

nginx

add_header 'Access-Control-Allow-Origin' '*';

3. Nostr アカウントにNIP-05 の識別子を登録

Nostr アカウントにNIP-05 の識別子を登録します。

今回はDamus を使って登録します。
アカウントのプロフィールを編集するページで、<name>@<domain> という形式でNIP-05 の識別子を登録します。

  • name
    • Nostr アカウントのUsername(先頭の@ を除く)
  • domain
    • Webサーバのドメイン名
Damus > Account > Profile > Edit (NIP-05)
Damus > Profile > NIP-05 Verification

今回は [email protected] を登録しました。

登録してプロフィール画面に戻ると、認証バッジ付きのドメイン名が表示されるようになっていました。
細かいですが、実際には画面が表示されてから2〜3秒後に表示されました。

Damus > Account > Profile
NIP-05 認証前
Damus > Account > Profile (NIP-05認証済)
NIP-05 認証後

nost.directory のページを見ると、NIP-05 の認証バッジにチェックが入っていました。

nostr.directory > NIP-05 (認証済)
nostr.directory > @RodentGiant (NIP-05認証済)

あとがき

NIP-05 の認証はスムーズにできました。

nostr.directory にTwitter の認証バッジがあるので、これにもチェックを入れたいのですが上手くできず。
また時間がある時に試してみようと思います。

参照

Nostrアカウントの作成(Damus, Amethyst, snort.social)

はじめに

Twitter の共同創業者の一人、Jack Dorsey 氏がTwiiter でこのようなツイートをしました。

「オープンプロトコルに向けた1つのマイルストーン。Nostr がApple App Store にDamus を公開しました。Google Play Store はAmethyst 、Web 向けにはsnort.social (代表で1つ挙げると)があります」

知らないキーワードばかりだったので気になって調べてみました。

Nostr

Nostr の公式サイトにあった自己紹介文です。

A decentralized network based on cryptographic keypairs and that is not peer-to-peer, it is super simple and scalable and therefore has a chance of working.

“What is Nostr?” nostr.com

「Nostr は公開鍵暗号技術をベースにしたピアツーピアではない非中央集権的なネットワークで、非常にシンプルで拡張性があるのでうまく機能することが期待できます」

詳しいことはリンク先の下記ページに記載されていました。

書かれていることをざっくりと箇条書きしてみました。(かなり省略してます)

  • Nostr とは
    • 「Notes and Other Stuff Transmitted by Relays」の略
    • 検閲に強いグローバルな”ソーシャル”ネットワークを提供するプロトコル
    • 信頼できる中央のサーバに依存せず、P2P 技術にも依存していない
    • 暗号鍵と署名により改ざんに対する耐性がある
  • Nostr の構成
    • クライアントとリレーサーバで構成されている
    • クライアントはユーザが使う(ネイティブクライアントやWebクライアントなど様々な方法で使える)
    • リレーサーバは誰かが稼働させる
  • Nostr の仕組み(投稿はどのように処理されるかなど)
    • 書いた投稿は自分の鍵で署名して、誰かがホストしたリレーサーバを経由して送信される
    • 他の人の更新情報を得るためには複数のリレーサーバに問い合わせをして、投稿を受け入れているリレーサーバは転送のみを行う。クライアント側で署名を検証するのでリレーサーバの信頼性は問わない。
  • Twitter とMastodon の課題について
    • Twitter の課題を解決する代替手段のニーズがある:広告、ユーザを中毒にするために色々やってる、フォロワーの実際のフィードが表示されない、ban やシャドーban がある、スパムが多い
    • Mastodon の課題:第三者が管理するドメイン名にユーザID が付与されている、サーバの管理者はTwitter のようにユーザをban できる、etc.

更に詳しく知りたい場合は、Nostr のプロジェクトやリソースを集めたキュレーションリストのサイトを漁ってみるとよさそうです。

Damus, Amethyst, snort.social

この3つはいずれもNostr クライアントで、3つとも動作する環境が異なります。
ユーザは環境によって使うものを選ぶことになります。

いずれもNostr のクライアントという位置付けのものなので、作成した自身のNostr アカウントは異なる環境のクライアントでもログインして使うことができます。

デザインやUI はそれぞれ個性を出していますが、できることはTwitter やMastodon と同じような感じで、投稿やフォローをすることができ、タイムラインにフォローした人の投稿が流れます。
なので「ツイッターに代わる可能性があると発言する人もいる」のだそうです。

手順(作業の流れ)

実際にNostr クライアントを使ったNostr アカウントを作成から、他のNostr クライアントでログインできるかを確認した手順です。

今回はDamus でNostr アカウントを作成しましたが、他のNostr クライアントでもNostr アカウントを作成することはできるので、iOS 端末を持っていない方はAmethystsnort.social でNostr アカウントを作成して始めることができます。

(iPhone) DamusでNostrアカウント作成

iPhone を使って、App Store アプリでDamus を検索します。
使ったiPhone が初代SE のせいか、一部レイアウトが崩れている箇所がありますが無視してください。

  • Damus – App Store (Apple)
Damus > App Store

Damus アプリをインストールしたら開きます。

Damus > Create Account 1

Damus アプリが起動したら[Create Account] をタップします。

既にNostr アカウントを持っている場合は、[Login] からログインすることができます。今回はDamus アプリを使ってNostr アカウントを作成する手順なので、ログインについての解説は省略します。

Damus > Create Account 2
Damus > Create Account 3

EULA(使用許諾契約書)の内容を確認して[Accept] をタップします。

Damus > Create Account 4
Damus > Create Account 5

作成するアカウントのユーザ情報を入力して[Create] をタップします。

  • Username (必須)
    • 頭に@ がついて表示されるユーザ名
  • Display Name (任意)
    • ユーザの表示名。間にスペースを入れることができる。
  • About (任意)
    • 自己紹介文
  • Account ID
    • 自動で作番された公開鍵の文字列が表示されています(表示が途中で切れています)
Damus > Create Account 6
Damus > Create Account 7
Damus > Create Account 8

Welcome, Giant Rodent!” と表示されているので、このタイミングでアカウントは作成されているようです。

Public Key に表示されているnpub で始まる文字列が公開鍵です。
直前の画面では途切れていましたが、ここでは全体が表示されています。
この公開鍵は公開して使用する情報でユーザの識別に使われます。Twitter の自身のアカウントのプロフィール欄にこの公開鍵の文字列を掲載して、友人や知人がDamus で公開鍵を使ってアカウントを検索してフォローするというような使い方がされています。

公開鍵の左のアイコンをタップすると真ん中の画面の状態になります。
公開鍵はクリップボードにコピーされるので、必要に応じてパスワードマネージャーなどに保存します。

Private Key が表示されました。nsec で始まる秘密鍵の文字列が表示されています。(秘密鍵は非公開にする必要があるものなのでマスキングしています)
この秘密鍵はログイン時に使用する情報で、他人に知られないように秘密に管理する必要があります
実際にログインを試してみると、入力するのは秘密鍵のみでパスワードなど別の情報の入力は求められませんでした。誤ってTwitter のプロフィール欄に掲載すると第三者が自身のアカウントにログインしてなりすましの投稿などができてしまうので扱いには注意が必要です。別のデバイスでログインできたのでリスクベース認証はしていなそうです。

秘密鍵の左のアイコンをタップすると右の画面の状態になります。
秘密鍵はクリップボードにコピーされるので、パスワードマネージャーなどに保存しておきます。失念するとログインできなくなるので保存する必要があります

[Let’s go!] をタップします。

Damus > Posts & Replies
Damus > Posts

作成したアカウントのホーム画面が表示されました。
Posts & Replies にDamus アカウントの投稿と返信が表示されています。
Posts をタップすると、Damus アカウントの投稿が表示されています。
デフォルトでDamus アカウントをフォローしているのでDamus アカウントの投稿が表示されているようです。

これでNostr アカウントの作成が完了しました。

投稿してみる

右下にある[+] をタップして投稿してみます。

Damus > Post 1
Damus > Post 2
Damus > Post 3

投稿するメッセージを入力して[Post] をタップします。
投稿した後に左上のアイコンからプロフィール画面を見ると、投稿したメッセージが表示されていました。

ちなみに、Twitter では投稿をTweetと呼んでいましたが、Nostr ではPost と呼ぶみたいです。

フォローしてみる

Jack Dorsey のNostr アカウントをフォローしてみます。

Jack Dorsey がTwitter でNostr アカウントの公開鍵をツイートしていたのでこれをコピーして使います。

Damus > Account Follow 1
Damus > Account Follow 2
Damus > Account Follow 3

下の虫眼鏡アイコンをタップして表示された画面のSearch 欄にコピーした公開鍵を入力すると”Goto profile <公開鍵>” と表示されたのでタップします。
Jack Dorsey のアカウントの画面が表示されたので[Follow] をタップするとフォローできました。

(Android) Amethyst でログイン

Android スマホを使って、Play ストアでAmethyst を検索します。

  • Amethyst – Play ストア(Google)
Amethyst > Playストア

Amethyst アプリをインストールしたら開きます。

Amethyst > Login 1
Amethyst > Login 2

Amethst アプリが起動したら”nsec / npub / hex private key” にNostr アカウントの秘開鍵を入力し、”I accept the terms of use” をONにして[Login] をタップします。

Nostr アカウントを持っていない場合は、[Generate a new key] からNostr アカウントを作成することができます。(解説は省略)

Amethyst > Home > New Threads
Amethyst > Account

アカウントのホーム画面が表示されました。
New Threads にDamus アカウントの投稿と、先ほどDamus アプリで投稿した自分のアカウントの投稿が表示されています。
左上のアイコンをタップすると、Damus で作成したアカウントのUsername とDisplay Name が表示されています。

Damus で作成したNostr アカウントでAmethyst アプリにログインできました。

投稿してみる

右下にある[+] をタップして投稿をしてみます。

Amethyst > Post 1
Amethyst > Post 2
Amethyst > Post 3

投稿するメッセージを入力して[Post] をタップします。
New Threads に投稿したメッセージが表示されました。

(WebApp) snort.social でログイン

Web ブラウザを使ってsnort.social のページを開きます。
今回はMac のChrome を使いました。

snort.social > Login 1

右上の[Login] をクリックします。

snort.social > Login 2

Login ページが表示されたら”nsec / npub / nip-05 / hex private key…” にNostr アカウントの秘開鍵を入力し、[Login] をクリックします。

Nostr アカウントを持っていない場合は、[Generate Key] からNostr アカウントを作成することができます。(解説は省略)

snort.social > Posts

アカウントのホーム画面が表示されました。
Posts にDamus アカウントの投稿と、先ほどDamus とAmethyst アプリで投稿した自分のアカウントの投稿が表示されています。

続けて、右上のアイコンをクリックしてアカウントのページを表示します。

snort.social > Account

Damus で作成したアカウントのDisplay Name と公開鍵が表示されています。Display Name の右に”follows you” という文言があったので気になって調べてみると、デフォルトで自分自身をフォローしていました。違和感がありますが、とりあえず気にしないでおきます。

Damus で作成したNostr アカウントでsnort.social にログインできました。

ちなみに、このアカウントのページのURL は以下のようになっていました。

snort.social > Account (URL)

ドメイン名の右側にある長い文字列はアカウントの公開鍵の文字列になっていました。このように公開鍵は公開されたアカウントの識別子として使われています。

アカウントのプロフィール情報の登録

Damus アプリを使って、アカウントのプロフィール情報を登録します。

Damus > Posts
Damus > Account
Damus > Account > Profile

ホーム画面の左上にあるアイコンをタップして表示されたメニューのProfile をタップし、表示されたプロフィール画面の右上の[Edit] をタップします。

Damus > Account > Profile > Edit 1
Damus > Account > Profile > Edit 2
Damus > Account > Profile > Edit 3

YOUR NAMEUSERNAMEは登録済みなので、追加で下記の情報を入力して[Save] をタップします。

  • PROFILE PICTURE
    • アイコン画像のURL を指定します
    • Gravatar に登録しているアイコンのURL を指定しました
  • BANNER IMAGE
    • バナーの画像のURL を指定します
    • 自身のブログにアップロードしている画像のURL を指定しました
  • WEBSITE
    • ウェブサイトのURL を指定します
    • 自身のブログのURL を指定しました
  • ABOUT ME
    • 気の利いた自己紹介文が思いつかなかったのでとりあえず”カピバラ”
Damus > Account > Profile (Edited)
Damus

登録した内容が反映されました。

Amethyst アプリでも確認してみます。

Amethyst > Account > Profile (Edited)
Amethyst

snort.social も確認します。

snort.social > Account (Edited)
snort.social

Damus アプリで登録したプロフィール情報が他のクライアントでも反映されていました。
とりあえず、普通に使えそうな状態にはなりました。

あとがき

作成したNostr アカウント

わたし(GiantRodent)のNostr アカウントの公開鍵はこちらです。
フォローしてもらえたら嬉しいです。

npub1jn36rstx7nl2sku5suppnejxrh5jx2t08lj8x6eyc03rknqvg0jqgycpxe

GiantRodent の公開鍵
Nostr > QR code (GiantRodent)

鍵ペア(公開鍵/秘密鍵)について

鍵ペアの取得方法

Nostr の公式サイトでもアカウントを作成できました。ここではアカウントを作成するというより、生成された鍵ペアを取得するというUI になっていました。

この鍵ペアの方式が何か気になって調べてみると、vanity pubkeyvanity address と呼ばれているもので、好みのprefix やsuffix が付いた公開鍵の鍵ペアを自身で生成することができるようでした。
Edward Snowden の公開鍵のprefix “sn0wden” を見て真似したくなりましたが、生成する仕組みがBitcoin のマイニングのようにprefix やsuffix の桁数が多いほど計算コストがかかるのだそうで止めておきました。
下記のサイトの情報が参考になりました。ありがとうございました。

Nostr クライアントに公開鍵を使ってログインする

実は、公開鍵を使ってログインすることもできます。ただし閲覧専用で。
他人の公開されている公開鍵を使ってログインすると、あたかも他人のアカウントにログインしたかのような状態になります。何とも言えない仕様。

秘密鍵を安全に管理する

秘密鍵はNostr クライアントにログインする際にしか使わないので、秘密鍵は単体でユーザID とパスワードを兼ねたものと考えて扱えばよいかもしれません。

間違えて秘密鍵を第三者に提供したり公開することがないように、パスワードマネージャーには秘密鍵のみを保存して、公開鍵は保存しない方が安全に運用できる気がします。

公開鍵はユーザID として第三者に公開・提供する使い方をするので、ログイン以外の場所で公開鍵を入力するシーンがあったらDamus のProfile 画面からコピーするというルールを決めて運用すれば、間違えて秘密鍵を公開するというミスは防げそうです。

パスワードマネージャーに保存する際の名前

Damus, Amethyst はあくまでもNostr クライアントなので名前は「Nostr」にしました。
Damus でログインするのに”Nostr” を探すのは正直不便なので、複数のクライアントを使わないのであれば”Damus” のようにクライアントの名前にしもよいのかも。

なりすまし対策

NIP-05

アカウントが本人のものであることを認証する方法のようです。
自身が管理するWeb サーバ上に必要な設定をして、Nostr アカウントにそのWeb サーバの設定を指す情報を登録することで、認証バッジを表示させることができるようです。

nostr.directory

Twitter 上で他のユーザにNostr アカウントを持っていることを伝える方法として、Twitter のプロフィール欄にNostr の公開鍵を掲載したり、公開鍵をツイートする方法がありますが、それ以外の方法として、nostr.directory というサイトにNostr アカウントとTwitter アカウントが紐づいていることを登録することで、このサイトでTwitter のユーザ名を入力してそのユーザがNostr アカウントを持っているか確認できるようにすることができるようになります。

手順を掲載しておきます。簡単です。

nostr.directory

[Tweet your nostr pubkey] をクリックするとTwitter のツイートの入力フォームが所定の文言が入力された状態で開きます。

nostr.directory > tweet
nostr.directory > tweet (公開鍵貼り付け後)
公開鍵を貼り付け後

Paste your nostr public key here” という箇所をNostr アカウントの公開鍵に置き換えてツイートします。これで、nostr.directory のサイトで検索すると検索結果に表示されるようになります。

nostr.directory > Twitter Account

Badges が幾つか並んでいて、その中に前述のNIP-05 があるので、ここでもNostr アカウントがなりすましでないかを確認できるようになっています。

リレーサーバの選択について

Damus クライアントでNostr アカウントを作成したら、デフォルトで7つのリレーサーバが設定されていました。
削除や追加を乱暴にしているとアカウントのプロフィール情報や投稿が消えてしまいそうなので、少し仕組みを調べてから変更してみようと思います。

Damus > Account > Relays
Damus > Relays(default)

さいごに

Jack Dorsey といえば分散型SNS「Bluesky」を開発中であることを発表していたので、今回の発表はそれのことか?と思ったら別のものでした。
Bluesky もベータ版のウェイトリストの募集を始めてから3ヶ月ほど経っているので、そろそろ新しい動きがないか気になるところです。

参照

WordPress にCloudflare を導入

はじめに

WordPress の当ブログにCloudflare を導入した際の手順の記録です。
WordPress はさくらのインターネットさくらのレンタルサーバ上に構築されています。
とりあえずCloudflare のCDN を導入したという程度の内容です。

手順

1. Cloudflare のアカウント作成

Cloudflare のサイトにアクセスしてサインアップのリンクをクリックします。

Cloudflare - Create Account

メールアドレスパスワードを入力して[Create Account] をクリックします。

Cloudflare > ダッシュボード

管理画面が表示されました。

先程入力したメールアドレス宛てにメールアカウントを確認するためのリンクが記載されたメールが届くので、メールが届いたらリンクをクリックします。

2. サイトの追加

管理画面の上部にある[Add site] をクリックします。

Cloudflare > サイトの追加

登録するサイトのドメイン名を入力して[Add site] をクリックします。
当ブログを登録するのでmadoverload.com と入力しました。

Cloudflare > Freeプラン

プランを選択します。
今回はFree プランにするので、Free を選択して[Continue] をクリックします。
クリックすると登録するサイトのDNSレコードのスキャンが始まるので、そのまま終わるまで少し待ちます。

Cloudflare > DNSレコード(スキャン結果)

スキャンが終わると、スキャン結果が表示されます。

  • A レコードのContent にはIPv4 のアドレス、AAA レコードにはIPv6 のアドレスが表示されています(さくらのレンタルサーバで割り当てられているIPアドレス)

今回、下記のように変更しました。

Cloudflare > DNSレコード(変更後)
  • A レコードのContent は編集前と同じIPv4 のアドレス、AAAA レコードのContent は編集前のIPv6 のアドレスと同じです
  • ウェブサイト向けのレコードはCloudflare でキャッシュされるようにProxied に、それ以外のメール関係のレコードはキャッシュさせずDNS としてのみ扱われるようにDNS only にしました

変更後、[Continue] をクリックします。

3. ネームサーバの変更

ネームサーバの変更を求めるページが表示されました。

Cloudflare > Change your nameservers

当ブログのWordPress はさくらのレンタルサーバ上に構築しているので、さくらのレンタルサーバ側で設定されているmadoverload.com のネームサーバ情報を、Cloudflare のページ上に表示されているネームサーバ(プライマリとセカンダリの2つの .ns.cloudflare.com)に変更します。

さくらのレンタルサーバ側の設定変更

さくらのレンタルサーバのコントロールパネルを開き、[ドメイン/SSL] > [ネームサーバ設定] をクリックしてドメインコントロールパネルを開きます。

さくらインターネット 会員メニュー > さくらのドメイン一覧

[さくらのドメイン] > [さくらのドメイン一覧] に表示されている当ブログのドメインmadoverload.com の”Whois” をクリックします。

さくらのレンタルサーバ > Whois > ネームサーバ

[Whois] > [ネームサーバ] の[ネームサーバを編集] をクリックして、Cloudflare のネームサーバ(.ns.cloudflare.com)に変更します。

さくらのレンタルサーバ > Whois > ネームサーバ(変更後)

ネームサーバの変更は反映されるのに数時間かかるようです。
反映されたらCloudflare からメールが届くとのことなので、反映されるまでの間にCloudflare 側の各種設定を行います。

4. Quick Start Guide

Cloudflare の管理画面にQuick Start Guide が表示されていたので、この案内に従って設定を進めます。

Cloudflare > Quick Start Guide

[Get started] をクリックします。

Automatic HTTPS Rewrites

Cloudflare > Improve security > Automatic HTTPS Rewrites

混在コンテンツエラーという、https で提供されているウェブサイト上の画像やリンクなどがhttp とhttps が混在することで起きるエラーにならないようにするために、http のコンテンツをhttps に自動で書き換える設定です。

ON のままにしておきます。

Always Use HTTPS

Cloudflare > Improve security > Always Use HTTPS

サブドメインを含めた全てのhttp リクエストをhttps にリダイレクトさせる設定です。
オリジンサーバのリダイレクトも有効になっているとリダイレクトループエラーが起きるので、当機能を有効にする場合はオリジンサーバのリダイレクトを無効にしておくことが推奨されています。

OFF だったのでON にしました。

オリジンサーバであるさくらのレンタルサーバ側のリダイレクトが有効になっていたので無効にします。

  1. コントロールパネルを開き、[ドメイン/SSL] > 対象ドメインの[設定] をクリック
  2. [ドメイン設定] > [HTTPS転送設定] > [HTTPSに転送する] のチェックをOFF にして[保存する] をクリック
さくらインターネット > ドメイン設定 > HTTPS転送設定

Auto Minify

Cloudflare > Optimize performance > AutoMinify

HTML、CSS、JavaScript ファイルを自動圧縮する設定です。

OFF のままにしておきます。

Brotli

Cloudflare > Optimize performance > Brotli

Brotli アルゴリズムを使って圧縮するための設定です。
この設定で行われる圧縮は、Auto Minify に加えて行われるもののようで、HTTP レスポンスのcontent-type ヘッダを見て圧縮する対象を判断するとのことです。

ON のままにしておきます。

Cloudflare > Quick Start Guide > Summary

最後、Summary で設定した内容を確認したら[Finish] をクリックします。

6. SSL/TLS

サイドバーの[SSL/TLS] をクリックします。

Cloudflare > SSL/TLS

Cloudflare とオリジンサーバ間の接続のSSL/TLS のモードを選択します。
4つのオプションから、http, https のどちらにするか、オリジンサーバから提示されたSSL 証明書がどのように検証されるようにするかを選択します。
オリジンサーバへの悪意のある接続を防ぐために、Full, Full(Strict) のどちらかにすることが推奨されています。

Flexible からFull に変更します。

7. Page Rules

Cloudflare でキャッシュするページのルールを設定します。
Free プランではルールを3つ設定することができます。

今回はWordPress 向けのルールを設定します。

Cloudflare > Rules > Page Rules

サイドバーの[Rules] > [Page Rules] のページを開き、[Create Page Rule] をクリックします。

ルール1. WordPress の管理画面をキャッシュしない

Cloudflare > Page Rule 1
  • URL > madoverload.com/wp-admin/*
  • Cache Level > Bypass
  • Disable Performance

ルール2. WordPress のプレビューページをキャッシュしない

Cloudflare > Page Rule 2
  • URL > madoverload.com/*&preview=true*
  • Cache Level > Bypass
  • Disable Performance

ルール3. 上記ルール以外のページをキャッシュする

Cloudflare > Page Rule 3
  • URL > madoverload.com/*
  • Cache Level > Cache Everything
  • Edge Cache TTL > 4 hours
Cloudflare > Page Rules (Position)

登録した3つのPage Rule を登録した順番に並び替えます。(優先度の高い順に並び替えます)

8. Cloudflare のWordPress プラグイン

Cloudflare 社が提供するWordPress 用プラグインです。

このプラグインをWordPress にインストールするとページの読み込みの高速化、SEOの改善、DDoS攻撃やWordPress固有の脆弱性からの保護など、何かとメリットがあるようです。
他にも、Cloudflare のユニバーサル SSL が有効になっている場合に発生するリダイレクトループを防止するヘッダーの書き換えもしてくれます。
ユニバーサルSSL が何のことか分からなかったので思い調べると、どうやらSSL/TLS の設定のことのようで、Flexible, Full, Full(strict) のいずれかにしていたら有効になっているということのようです。

Cloudflare のWordPress 用プラグインのインストール

WordPress にCloudflare のプラグインをインストールします。
今回はWordPress の管理画面の[プラグイン] > [新規追加] で検索したら見つかったので、[今すぐインストール] をクリックしてインストールしました。

Cloudflare WordPress プラグイン > インストール

インストールが完了したらプラグインを有効化して、Cloudflare プラグインの管理画面を表示します。(サイドバーの[設定] > [Cloudflare])

Cloudflare WordPress プラグイン > 有効化

Cloudflare の認証を求めるページが表示されました。
前述の手順「1. Cloudflare のアカウント作成」で既にCloudflare のアカウントを作成しているので、”Sign in here” のhere をクリックします。

Cloudflare WordPress プラグイン > API Credentials 入力

Cloudflare のアカウント作成時に登録したメールアドレスと、Global API Key またはAPI Token を入力して[Save API Credentials] をクリックします。

Global API Key は、Cloudflare の管理画面の[My Profile] > [API Tokens] > [API Keys] > [Global API Key] の[View] をクリックすると表示されるのでこれを入力します。

Cloudflare WordPress プラグイン > ダッシュボード

Cloudflare プラグインの管理画面が使える状態になりました。

Home の一番上に表示されているApply Recommended Cloudflare Settings for WordPress が[Apply] をクリックするだけでWordPress 向けの推奨設定を適用してくれるようで便利そうでしたが、どのような設定をするのかを一つ一つ確認すると時間がかかりそうだったので、今回は適用しないでおきました。

後ほど時間がある時に設定内容を確認したいので、適用される設定の内容が記載されたページのリンクを貼っておきます。

9. Cloudflare が有効になる

Cloudflare の管理画面を見ると、Overview のページに “Great news! Cloudflare is now protecting your site” と表示されていました。

Cloudflare > 有効化 1

左上の[← madoverload.com] をクリックすると、Home 画面のmadoverload.comActive になっています。

Cloudflare > 有効化 2

Cloudflare のアカウント作成時に登録したメールアドレスに、Cloudflare から”Status Active” と記載されたメールが届いていました。
前述「3. ネームサーバの変更」で行ったネームサーバの変更が反映されたようです。

DomainToolsmadoverload.com のWhois 情報を調べるとIP Location が”Cloudflare inc.” になっていました。

Cloudflare がCDN として期待した通りに動作しているか確認します。

  • ブラウザで登録したウェブサイトが正常に表示されるか確認する
  • 登録したドメインのメールアドレスにテストメールを送り受信できるか確認する

問題なければひとまず、Cloudflare の導入が完了です。

あとがき

トラブルと解消方法

上手くいかなかったことがあったので、記録として残しておきます。
一応、今回は下記の方法で解消させることができたという情報です。

  • リダイレクトループ
    • Cloudflare が”Active” になったらオリジンサーバ(WordPress)のページが表示されなくなった。Chrome では”リダイレクトが繰り返し行われました”、Safari では”多くのリダイレクトが発生しています”というメッセージが表示されるようになった。
    • SSL/TLS をFlexible → Full に変更したら解消された(ページが表示されるようになった)
  • WordPress のプレビューページの不具合
    • WordPress のプレビューページが表示されなくなった(プレビューページのタブは開くがページの内容が全く表示されない)
    • CloudflareのWordPressプラグインをインストールしたら解消された(プレビューのページが表示されるようになった)

どうしてCloudflare を導入したのか

CDN を導入することでページの読み込みを高速化できると思われますが、当ブログのアクセス数は1日に100件未満、アクセス元の99%以上が日本なので必要性は全くなかった。なので、これまでWordPress CDN も導入していなかった。

昨年の年末にCloudflare がYubiKey を$10 で購入できるキャンペーンをCloudflare で有効なゾーンを持っているユーザー向けにやっていることを知り、急ぎ年末にCloudflare を導入した次第です。
なお、この特別キャンペーンは2022年12月31日で終了しています。

これを機会にCloudflare のCDN のことをもっと知ることができればと思っています。

参照

YubiKeyのOATHをCLIで扱う

はじめに

前回の投稿「Yubico Authenticator 6」ではYubiKey 5OATH 機能をYubico 社の認証アプリYubico Authenticator を使って操作しましたが、今回はYubiKey ManagerCLIツール (ykmanコマンド) を使って操作してみたのでその解説をします。

ykman コマンドの引数にTwitter のQR コードの値 “otpath://totp/Twitter:@RodentGiant?secret=xxxxx&issuer=Twitter” を指定してYubiKey にアカウントを登録して認証コードを発行する、というようなことの解説です。

扱うコマンドはCLI ツールのOATH コマンドで、Yubico 社の公式サイトにマニュアルが掲載されています。

YubiKey のOATH 機能について

前回の投稿「Yubico Authenticator 6」で解説していたので省略。

YubiKey Manager について

Yubico 社が提供するYubiKey Manager には、ウィンドウ操作のGUI ツールと、コマンドライン操作のCLI ツール の2種類のツールがあります。
今回の投稿はコマンドライン操作のCLI ツールを使った解説になります。

GUI ツールについては、過去の投稿「MacにYubiKey Managerをインストール」で解説しているので興味がある方はご参照ください。
なお、GUI ツールはYubiKey のOATH 機能を操作する機能を備えていないです。

環境について

今回の解説で使う環境です。

  • OS:macOS Monterey
  • YubiKey Manager CLI (ver 5.0.0)
  • YubiKey 5 NFC

インストール(CLIツール)

Yubico 社の公式サイトからCLI ツールのパッケージファイルをダウンロードしてインストールすることができますが、GUI ツールにはCLI ツールも同梱されているので、GUI ツールをインストールしてCLI ツールを使うことも可能です。

  • YubiKey Manager (CLIツール)のパッケージファイル
    • インストールすると自動でパス指定される
    • CLI ツールのバージョンが最新(ver. 5.0.0)
  • YubiKey Manager (GUIツール)のパッケージファイル
    • CLI ツールが同梱されている(パス指定が必要)
    • CLI ツールのバージョンが最新ではない(ver. 4.0.7)

ただ、2022年12月23日時点ではありますが、GUI ツールに同梱されているCLI ツールは最新のver.5.0.0 ではないので、最新を使いたい場合はCLI ツールを単体でインストールする必要があります。

もし、GUI ツールと最新のCLI ツールの両方を使いたい場合は、GUI ツールに同梱されているCLI ツールはパス指定が自動で行われないので、両方とも単純にインストールするだけで最新のCLI ツールが使える状態になります。

なお、macOS ユーザーの場合は、Homebrew を使ってCLI ツールをインストールすることもできます。こちらは最新のバージョン(ver. 5.0.0)になっていました。

各リンク先を貼っておきます。

各種環境のインストール方法が掲載されているYuboco 社のページが参考になりそうなのでリンクを貼っておきます。

Homebrew を使ってインストール

今回、Homebrew を使ってCLIツールのみをインストールします。

ターミナルで下記のコマンドを実行してインストールします。

brew install ykman

インストール後にykman コマンドに既にパスが通っていることを確認します。バージョンは5.0.0 です。

% which ykman
/opt/homebrew/bin/ykman

% ykman -v
YubiKey Manager (ykman) version: 5.0.0

OATH 機能を使う(アカウントの登録〜認証コードの生成)

CLI ツールを使ったアカウントの登録は、2要素認証を登録するサービス側が表示するQR コードの情報を使って行います。

例として、Twitter とGoogle で表示されたQR コードのページとQR コードの情報(QR コードをスキャンして読み取ったURI)を載せておきます。

Twitter

Twitter > QRコード
QRコード
Twitter > shared secret
shared secret
otpauth://totp/Twitter:@RodentGiant?secret=ABCDEFGHIJKLMNOP&issuer=Twitter

“Can’t scan the QR code?” をクリックするとshared secret が表示されたページが表示されました。

Google

Google > QRコード
QRコード
Google > shared secret
shared secret
otpauth://totp/Google:[email protected]?secret=abcdefghijklmnopqrstuvwxyz012345&issuer=Google

“スキャンできない場合” をクリックするとshared secret が表示されたページが表示されました。

アカウントの登録(URI を指定する)

QR コードをスキャンして読み取ったURI をそのまま指定して登録します。

ykman oath accounts uri "otpauth://totp/Twitter:@RodentGiant?secret=ABCDEFGHIJKLMNOP&issuer=Twitter"

認証コードの発行にYubiKey のタッチを要求するようにする場合は-t オプションを指定します。

ykman oath accounts uri -t "otpauth://totp/Twitter:@RodentGiant?secret=ABCDEFGHIJKLMNOP&issuer=Twitter"

アカウントの登録(shared secret を指定する)

shared secret を指定して登録します。

Twitter とGoogle では前述のQR コードを表示するページからリンクできるページでshared secret を確認することができます。
また、URI のクエリパラメータsecret の値がshared secret なので、URI で確認することもできます。

URI に含まれる要素を分解してshared secret 以外のオプションを指定するので、オプションの意味が分かりやすいように、ハイフン2つのオプションも併記しておきます。

ykman oath accounts add -i Twitter -o TOTP @RodentGiant ABCDEFGHIJKLMNOP
ykman oath accounts add --issuer Twitter --oath-type TOTP @RodentGiant ABCDEFGHIJKLMNOP

認証コードの発行にYubiKey のタッチを要求するようにする場合は-t オプションを指定します

ykman oath accounts add -i Twitter -o TOTP -t @RodentGiant ABCDEFGHIJKLMNOP

アカウント情報の一覧を表示

YubiKey に登録されているアカウントの情報を一覧で表示します。

% ykman oath accounts list -H -o -P
% ykman oath accounts list --show-hidden --oath-type --period
Twitter:@RodentGiant, TOTP, 30

-H オプションは非表示アカウントを表示するためのもののようですが、そもそも非表示アカウントが何か調べても分かりませんでした。-H オプションは指定しなくても結果は変わらなかったので、指定する必要ないのかもしれません。

認証コードの生成

アカウントを絞り込む条件を指定しないでコマンドを実行します。

% ykman oath accounts code
Google:RodentGiant    [Requires Touch]
Twitter:@RodentGiant            001542

アカウントが2つ登録されている場合、上記のように出力されます。

出力されるアカウントが2つ以上ある場合、アカウントの登録時に-t オプションを指定したアカウントは[Requires Touch] と表示されます。

-tオプションを指定したアカウントの認証コードの発行

アカウント登録時に-t オプションを指定したアカウントの認証コードを発行するためには、1つのアカウントのみ出力されるようにする必要があります。
YubiKey に複数のアカウントが登録されている場合は、アカウントを絞り込む条件(部分一致)を指定します。

% ykman oath accounts code Google:RodentGiant
Touch your YubiKey...
Google:RodentGiant  302862

2行目でYubiKey のタッチが要求され、タッチすると3行目の抽出したアカウントのアカウント名と認証コードが表示されます。

認証コードのみ出力する

-s オプションを指定して認証コードのみ出力することもできます。
この場合も、1つのアカウントのみ出力されるようにする必要があります。

% ykman oath accounts code -s Twitter:@RodentGiant
% ykman oath accounts code --single Twitter:@RodentGiant
001542

OATH 機能を使う(アカウントの管理)

アカウントの名前変更

% ykman oath accounts rename Twitter:@RodentGiant "Twitter:RenamedName"
Rename account: Twitter:@RodentGiant ? [y/N]: y
Renamed Twitter:@RodentGiant to Twitter:RenamedName.

アカウントにissuer を設定していた場合、変更後の名前の左に”:”(セミコロン)を付けてissuer を指定しないとissuer が削除されます。
上記例では”Twitter” がissuer 、”RenamedName” が変更後のアカウント名です。

アカウントの削除

% ykman oath accounts delete Twitter:@RodentGiant
Delete account: Twitter:@RodentGiant ? [y/N]: y
Deleted Twitter:@RodentGiant.

サービス側の2要素認証の設定も削除する必要があるので注意が必要です。
削除する順番を(1)サービス側の2要素認証の設定を削除、(2)YubiKey 側のアカウントを削除、とすればログイン時にサービス側から2要素認証の認証コードの入力を求められるけれど発行できないという状況は回避できるでしょう。

OATH 機能を使う(パスワード関連)

前回の投稿「Yubico Authenticator 6」のあとがき「YubiKey の紛失や窃取によるアカウント情報の漏洩」で少し解説していますが、YubiKey のOATH 機能にパスワードを設定することができます。
YubiKey を不正に入手した第三者への、YubiKey に登録されているアカウント情報の漏洩と、認証コードの発行を防ぐことができるので、安全のためにはパスワードは設定しておいた方がよさそうです。

なお、これまでの例示したコマンドはパスワードが設定されていない例になります。
パスワードが設定されていると、コマンドを実行する度にパスワードの入力が求められるようになります
アカウント情報の一覧を表示するコマンドの場合、下記のようになります。

% ykman oath accounts list -H -o -P
Enter the password:

-p オプションでコマンドにパスワードの文字列を付加することで、「Enter the password:」を表示しないで結果を得ることができますが、ターミナルに実行したコマンドの記録が残るのは望ましくないと思うので個人的には使わないようにしています。

% ykman oath accounts list -H -o -P -p 123456
Twitter:@RodentGiant, TOTP, 30

パスワードの設定(初期登録・変更)

YubiKey のOATH 機能は、初期状態ではパスワードが設定されていないです。
パスワードを初期登録する場合と、初期登録後に変更する場合で使うコマンドは同じです。

% ykman oath access change
Enter the new password:
Repeat for confirmation:
Password updated.

パスワードの削除

YubiKey のOATH 機能に設定されているパスワードを削除します。削除するとコマンドの実行時にパスワードの入力を求められなくなります。

% ykman oath access change -c
Enter the current password:
Password cleared from YubiKey.

パソコンにパスワードを記憶

パスワードをパソコンに記憶させておくことにより、コマンドを実行する度にパスワードの入力が求められないようにすることができます。
裏で記憶しておいたパスワードが自動入力される感じです。

% ykman oath access remember
Enter the password:
Password remembered.

一度、このコマンドを実行しておけば、同じパソコンであればパソコンを再起動しても記憶された状態が保たれます。
仕組みとしては、~/.ykman/oath.json というファイルに記憶されるようです。

パソコンに記憶したパスワードを削除

パソコンに記憶されているパスワードを削除します。削除した場合、YubiKey のOATH 機能のパスワードが設定されたままだと、コマンドの実行時にパスワードの入力が求められるようになります。

% ykman oath access forget
Password forgotten.

YubiKey のOATH 機能のパスワードの変更や削除をした場合、パソコンに記憶したパスワードは使えなくなるので、パソコンに新しいパスワードを記憶するか、このコマンドでパソコンに記憶されているパスワードを削除します。

あとがき

YubiKey のOATH 機能のパスワード設定について

  • YubiKey 紛失時の備えとして、パスワードは設定しておいた方がよさそう
  • コマンドを入力する度にパスワードを入力するのは面倒なので、パソコンに記憶させる機能は使った方がよい
  • 設定したパスワードを失念すると、パスワードの変更も削除もできなくなる
    • YubiKey に登録したアカウントの認証コードが発行できなくなる
    • YubiKey のOATH をリセットするしかない
    • パスワードはパスワードマネージャーに登録しておいた方がよい

Yubico Authenticator を使えば良いのでは?

YubiKey のOATH 機能は、Yubico Authenticator であればGUI で操作できるので、一般的な用途ではCLI ツールを使う必要がなさそう。
ざっと見た感じ、CLI ツールでできることはすべてYubico Authenticator でできると思われる。

サーバ側で認証コードを発行する仕組みを作るのにCLI ツールを使うにしても、YubiKey 5 のOATH 機能を使う場合、YubiKey 5 のOATH に登録できるOATH-TOTP の上限が32 なので、用途としては向いていなそう。

参照

Yubico Authenticator 6

Yubico 社が Yubico Authenticator 6 の正式版をリリースしました。

ユーザーのクレデンシャルをYubiKey に保存するというのが特徴の認証アプリの使用感がどのようなものか試してみたので、その解説をします。

はじめに

Yubico Authenticator について

いわゆる、2要素認証でユーザIDとパスワードを入力した後に入力する認証コードなどと呼ばれるワンタイムパスワード(OTP)を生成する認証アプリです。

認証アプリとして有名なものに、Google AuthenticatorAuthyMicrosoft Authenticator などがありますが、これらと同じことができるアプリです。

Yubico 社のサイトに、Yubico Authenticator の特徴として以下のような点が挙げられていました。

  • ユーザーのクレデンシャルをモバイル端末ではなくYubiKey内のセキュアエレメントに保存するので、クレデンシャルの漏洩を完全に防ぐことができる
  • YubiKey に保存したクレデンシャルは複数のデバイスでシームレスに利用することができる
  • アプリはWindows, macOS, Linux, iOS, Android で動作するので、パソコンでもモバイル端末でも同じ認証コードを取得できる(ARM 版macOS もサポート)

先ほど例示した認証アプリはスマホにインストールした認証アプリ単体で認証コードを発行しますが、Yubico Authenticator は認証アプリをインストールしたスマホやパソコンにYubiKey をNFT やUSB で接続して認証コードを発行します。

認証コードの発行はYubiKey のOATH-TOTH/TOTP 機能を使って行われるので、この機能を備えたYubiKey 5 シリーズが必要となります。(例えばSecurity Key シリーズは対応していない)

YubiKey のOATH-HOTP/TOTP 機能

YubiKey 5 シリーズには、YubiKey 本体にFIDO2 やPIV(Smart Card) など色々な機能がありますが、このYubico Authenticator はYubiKey のOATH(HOTP/TOTP)の機能を使ってOTP を発行しているようです。

OATH には下記の2つの方式がありますが、今回試すTwitterOATH-TOTP のみ対応しているようです。

  • OATH-HOTP
    • HMAC-based OTP
    • OTP の発行回数を使ってOTP を生成する
    • 生成したOTP を認証に使わなかった場合、サーバーの発行回数と同期がとれなくなる
  • OATH-TOTP
    • Time-based OTP
    • 接続したデバイスの現在時刻を使って6〜8桁の数字のOTP を生成する
    • 30秒ごとにOTP が変わる

Google Authenticator、Authy、Duo Mobile、1Passwordなど、どの時間ベースのワンタイムパスワード(TOTP)認証アプリでも使えます

Twitter ヘルプセンター

インストール

Yubico Authenticator のページにOS ごとのインストーラへのリンクがあります。

Yubico Authenticator > Install

今回、Mac とAndroid にインストールしました。

Mac

Mac(macOS)には、下記の2つのインストールする方法が用意されています。

  • AppStore からダウンロード
  • Yubico の公式サイトからdmg ファイルをダウンロード

今回、後者の方法でインストールすることにしました。
※ Homebrew にはなかった
※ 手順は特筆することがないので省略

Android

Google Play を使ってインストールします。
※ 手順は特筆することがないので省略

Yubico Authenticator > Android > Install

使ってみる(Mac)

Launchpad にあるアイコンをクリックしてYubico Auhenticator を起動します。

Yubico Authenticator アイコン (Mac)

Yubico Authenticator のウィンドウが表示されます。
縦長のスマホの画面のようなウィンドウです。

Yubico Authenticator (Dark mode)
Dark mode
Yubico Authenticator (Light mode)
Light mode

Dark modeLight mode の切り替えは、左上の[≡] > Settings > Appearance からできます。

Insert your YubiKey” と表示されているので、パソコン(Mac) のUSBポートにYubiKey を差し込みます。

YubiKey Authenticator (アカウント未登録)

右上のアイコンが差し込んだYubiKey のアイコンに変わり、中央の文言が”No accounts” に変わりました。
このYubiKey のOATH にはアカウントが何も登録されていないです。

ここで一旦、初回のみ行う作業の解説をします。
このアプリは、アカウントを追加する際にブラウザのページ上に表示されるQR コードをスクリーンショットで読み込むので、そのための権限を許可する必要があります。
以下、その手順です。

右上のYubiKey のアイコンをクリックするとメニューが表示されます。

Yubico Authenticator > Authenticator > menu

[Add account] をクリックします。

Yubico Authenticator > Authenticator > Add account

[Scan QR code] をクリックすると、下記のウィンドウが表示されます。

Yubico Authenticator > Macの初期設定

画面収録の許可を求められるので、[“システム環境設定”を開く] をクリックしてシステム環境設定を表示し、セキュリティとプライバシー > プライバシー > 画面収録 のYubico Authenticator.app のチェックをON にします。

初回のみ行う作業は以上です。

アカウントの追加

今回、Twitter アカウントに2要素認証の登録をします。
ブラウザを開き、2要素認証を登録するTwitter アカウントでTwitter にログインし、下記の操作で2要素認証のページを表示します。

  1. サイドメニューの[もっと見る] を開き、[設定とサポート] > [設定とプライバシー] をクリック
  2. [セキュリティとアカウントアクセス] > [セキュリティ] > [2要素認証] をクリック
Twitter > 2要素認証
※ イメージはセキュリティキーが既に設定されていた状態

[認証アプリ] のチェックボックスをクリックします。

Twitter > 2要素認証 1

[はじめる] をクリックします。

Twitter > 2要素認証 2

QR コードが表示されました。

Yubico Authenticator を起動し、右上のYubiKey のアイコンをクリックして表示されるメニューの[Add account] をクリックします。

Yubico Authenticator > Authenticator > Add account 1

下記イメージのようにブラウザ上のQR コードYubico Authenticator アプリの両方が画面に表示された状態にします。

Yubico Authenticator > Authenticator > Add account 2

[Scan QR code] をクリックします。

Yubico Authenticator > Authenticator > Add account 3

値が自動入力され、ボタンが[Scanned QR code] に変わりました。
Issuer とAccount name は変更することができます。
下にあるボタンは、[Require touch] 以外は変更できない状態になりました。

[Require touch] はON/OFF の切り替えができ、ON にすると認証コードの発行にYubiKey のタッチが要求されるようになります。(デフォルトはOFF)

右上の[Save] をクリックして保存します。

Yubico Authenticator > アカウント(Require touch:OFF)
[Require touch] OFF
Yubico Authenticator > アカウント(Require touch:ON)
[Require touch] ON

先ほど、”No accounts” と表示されていた画面にTwitter アカウントが表示されるようになりました。

  • [Require touch] をOFF にすると認証コードが表示されます。認証コードは30秒ごとに別のコードに自動で変わるので、常に最新のコードが表示されます
  • [Require touch] をON にすると認証コードが表示されず、タッチのアイコンが表示されます

[Require touch] をON にしていた場合、アカウントをクリックします。

Yubico Authenticator > Require touch 1

“Touch Required” と表示されると同時に、接続しているYubiKey 本体が点滅し始めるので、YubiKey を指でタッチします。

Yubico Authenticator > Require touch 2

認証コードが表示されました。

Yubico Authenticator > Require touch 3

認証コードは30秒ごとに変わるので、30秒経過すると表示されていた認証コードが灰色になり、クリップボードにコピーする一番左のアイコンは無効になりました。

再度認証コードを発行する場合は左から2つ目のアイコン「↻」をクリックすると”Touch Required” の状態になるので、再度YubiKey をタッチして発行することができます。

この時点ではYubico Authenticator (YubiKey)側のアカウント登録しかできていないので、Twitter の2要素認証を有効にするためにブラウザに戻ります。

ブラウザに戻ったら、QR コードの下にある[次へ] をクリックします。

Yubico Authenticator > Authenticator > Add account 4

認証コードの入力が求められるので、Yubico Authenticator に表示されている認証コードを入力し、[確認] をクリックします。

Yubico Authenticator > Authenticator > Add account 5

これでTwitter の2要素認証が有効になりました。

上の画像の赤枠の箇所にバックアップコードが表示されています。
バックアップコードは、ログイン時の2要素認証で使うことができる使い捨てのコード(12桁の英数字)で、万が一YubiKey を紛失した場合に代替手段として使うことができるので、どこか安全な場所に保管しておくことをお勧めします。

Yubico Authenticator を使った2要素認証のログイン

パソコンのブラウザでTwitter にログインします。
Yubico Authenticator が発行する認証コードを使ってログインできるか確認します。

Yubico Authenticator > Twitter ログイン 1

電話番号/メールアドレス/ユーザー名 を入力して[次へ] をクリックします。

Yubico Authenticator > Twitter ログイン 2

パスワードを入力して[ログイン] をクリックします。

Yubico Authenticator > Twitter ログイン 3
Chrome の小ウィンドウ

[キャンセル] をクリックします。

Yubico Authenticator > Twitter ログイン 4

[コード表示アプリを使用] を選択し、[次へ] をクリックします。

Yubico Authenticator > Twitter ログイン 5

認証コードの入力が求められるので、Yubico Authenticator アプリに表示されている認証コードを入力し、[次へ] をクリックするとログインが成功しました。

使ってみる(Android)

アプリのアイコンをクリックしてYubico Auhenticator を起動します。

Yubico Authenticator アイコン (Android)

Yubico Authenticator のウィンドウが表示されます。

スクリーンショットが禁止されているようで、キャプチャした画像は画面が黒い状態でした。残念ながらここからはイメージなしの解説になります。

Android 版は画面のレイアウトやできることがパソコン版と基本的に同じだったので、パソコン版との違いを確認できた範囲で解説します。

Yubico Authenticator 起動直後の状態

  • パソコン版
    • “Insert your YubiKey” と表示される
  • Android 版
    • Insert or tap your YubiKey” と表示される

Android 版は、USBポートへのYubiKey の物理的な差し込みに加え、YubiKey をかざしてNFC 接続することができます。

参考まで、Pixel でYubiKey をかざす際のかざす位置(NFC チップがある場所)が分かるリンクを貼っておきます。

アカウントの追加

  • パソコン版
    • USB ポートにYubiKey を差し込まないと、右上の”Add account” を含めたメニューが表示されない
  • Android 版
    • YubiKey と接続(*1) すると、右上の”Add account” を含めたメニューがパソコン版と同じように表示される
    • YubiKey と接続(*1) せずに右上のアイコンをクリックすると、カメラが起動してQR コードをスキャンする状態になる。
      このままQR コードをスキャンするとパソコン版と同じように値が自動入力され、[Save] をタップすると”Tap your key” と表示されるので、このタイミングでYubiKey と接続するとアカウントが保存される
    • つまり、YubiKey の接続はQR コードを読み込む前でも後でもよい

(*1) USBポートへのYubiKey の物理的な差し込み、YubiKey をかざしたNFC 接続

Yubico Authenticator で認証コードを発行

“Require touch” をOFF にして登録したアカウントの認証コードをAndroid 版YubiKey をかざしてNFC 接続する場合だけ、特徴的な違いがありました。

“Require touch” OFF“Require touch”ON
パソコンUSB常に最新のコードが表示されるYubiKey をタッチした時のコードが表示され、
30秒過ぎたら再度タッチして再発行
AndroidUSB同上同上
AndroidNFCYubiKey をかざした時のコードが表示され、
30秒過ぎたら再度かざして再発行
YubiKey をかざした時のコードが表示され、
30秒過ぎたら再度かざして再発行

当然ではありますが、認証コードの発行はYubiKey が行うので、常時接続しているUSB と違いNFC の場合は、新しい認証コードを発行するために30秒過ぎる度にスマホにYubiKey をかざす必要があります。

あとがき

複数のデバイスでシームレスに利用できる

YubiKey に登録した同じアカウントで、パソコンとAndroid のYubico Authenticator が発行する認証コードを使って2要素認証のログインができるかをそれぞれ試したら問題なくできた。

YubiKey が手元にあればどの端末でもYubico Authenticator をインストールするだけで認証コードを発行できるので、パソコンやスマホの機種変更の際は、新しい端末にYubico Authenticator をインストールするだけでよいということになる。
つまり、端末の機種変更の際はアカウント情報の移行やユーザ認証等は不要。

YubiKey の紛失や窃取によるアカウント情報の漏洩

YubiKey を入手した第三者に、YubiKey に登録されているアカウントのサービス名とそれに紐づくユーザID、2要素認証の認証コードが伝わってしまうと、残りのパスワードが特定されると不正ログインを許すことになる。
パスワードの使い回しをしていた場合、どこかのサービスで同じユーザIDとパスワードの組みが漏洩していると、その第三者が漏洩したリストを入手してパスワードを特定することが可能になる。

前述「アカウントの追加」で記載したように、QRコードを読み込むとIssuer(サービス名) とAccount Name(ユーザID) が自動入力されるので、それらの情報と認証コードがYubico Authenticator がインストールされた第三者の端末にYubiKey を接続するだけで表示されてしまっては、上記のようなアカウント情報の漏洩が起きてしまうことになる。
それを防ぐ方法は、下記の2つがある。

  • YubiKey にアカウントを追加する際に、QRコードを読み込んで自動入力されたIssuer とAccount Name を変更してから登録する(登録後の変更も可能)
  • YubiKey のOATH 機能にパスワードを設定する
    • Yubico Authenticator の右上のYubiKey のアイコンをクリックして表示されるメニューの[Set password] からパスワードを設定できる
    • パスワードを設定しておくと、端末にYubiKey を接続するとYubico Authenticator からパスワードの入力を求められるようになる

推奨は後者のパスワード設定。設定したパスワードは1Password などのパスワードマネージャに登録しておけばよい。
もしパスワードを忘れた場合は、OATH をリセットするしかない。

前者はアカウントを追加する際に変更し忘れる可能性があるのと、アカウント名を変更することで使い勝手が悪くなるので運用上無理がありそう。

セキュリティキー(FIDO)を使った2要素認証との使い分け

サービス側がセキュリティキー(FIDO)に対応しているのであれば、フィッシング攻撃に耐性のあるセキュリティキー(FIDO)を有効にしておき、メインの2要素認証として使うようにしておけば最強ともいえるセキュアな状態にすることができる。

この場合、同じYubiKey でTOTP を使った認証コードの設定をする意味は全くなさそう。むしろ下手に設定することで前述したような不正ログインのリスクを作ることになりかねない。

認証アプリの種類と使い分け

サービス側がセキュリティキー(FIDO)に対応していないが、TOTP を使った認証コードに対応している場合は、フィッシング攻撃に耐性がないがTOTP を使った認証コードを有効にしておくことで、パスワード認証のみよりはセキュアな状態にすることができる。

どの認証アプリを使うかの選択は、利便性を含めて使う側の好みにもよるので、ざっくりとした比較だけしておく。

クレデンシャルの保存場所と
認証コードの発行
クレデンシャルの
サーバへの保存
認証アプリ
認証アプリ保存されないGoogle Authenticator、Microsoft Authenticator
同上保存されるAuthy、1Password
YubiKey (OATH)Yubico Authenticator

パソコンのYubico Authenticator をメインで使う

YubiKey 5 NanoYubikey 5C Nano であれば、パソコンに常時接続しておくと邪魔にならずに便利そう。
ただ、コンパクトであることが仇になりかねないので、ログインしようとしたらYubiKey が無くなっていることに気づいたということが起きかねない環境でパソコンを使う際は要注意。

スマホのYubico Authenticator をメインで使う

YubiKey 5 NFCYubiKey 5C NFC などNFC を搭載したYubiKey の方が便利そう。
Android とUSB 接続して使えることを今回確認したが、普段そのような使い方はしないと思う。

YubiKey Manager command line tool (ykman)

Yubico Authenticator 6 のリリースについてYubico 社が公開したブログより抜粋。

To support this new app we also needed to improve the library aspects of ykman, which resulted in the release of ykman 5.0.

デスクトップ版 のYubico Authenticator は、YubiKey Manager command line tool (ykman) をライブラリと使っていて、今回の対応でykman 5.0 をリリースすることになったとのこと。
ykman 5.0 では、ykman コマンドでpython のスクリプトを実行してYubiKey を設定できるのだとか。

ykman 5.0 のことが気になったので、YubiKey Manager (GUI版) をインストールした際に同梱されていた現在使っているバージョンを確認。

% which ykman
/Applications/YubiKey Manager.app/Contents/MacOS/ykman

% ykman -v
YubiKey Manager (ykman) version: 4.0.7

このYubiKey Manager (GUI版) は最新版だったので、ykman 5.0 が同梱されているバージョンはまだ公開されていなかった。

Yubico Authenticator をインストール後にYubico Authenticator.app 内を探してみたけれど、ykman は見つからず。Yubico Authenticator にはykman は同梱されていなかった。

GitHub にはykman 5.0 があったので、使いたい場合は個別にインストールする必要があるみたい。
Homebrew のykman は5.0 になっていたので、Mac ユーザであればこちらも利用可能。

ykman 5.0 のインストールは保留にして、とりあえず現在のykman 4.07 でOATH に登録したTwitter のアカウントを確認するコマンドを実行してみた。

% ykman oath accounts list -H -o -P
Twitter:@RodentGiant, TOTP, 30

他にもアカウント登録など色々なオプションがあるので気になるけれど、収拾つかなくなりそうなのでとりあえず今回はここまでとする。

参照

Google Messages for Web が便利

テレワークに便利なものをご紹介します。

SMSは基本的にSIM カードを挿入したスマホで使うものですが、Android スマホのユーザーであればスマホのメッセージアプリとパソコンのブラウザで開いたGoogle Messages for Web というGoogle が提供するサービスを連携させることで、パソコンのブラウザ上でSMS メッセージを操作することができるようになります。

ちなみに日本語のサービス名はPC版メッセージ のようなので、以降PC版メッセージと表記します。

Google Messages

対象者

  • Android スマホのユーザー
  • SMS はGoogle のメッセージアプリを使っている
  • Android スマホで使っているSMS メッセージをパソコンでも扱えるようにしたい

手順

1. パソコンのブラウザでPC 版メッセージのQRコードを表示

パソコンのブラウザでPC版メッセージのページを開きQR コードを表示します。
※ 今回はChrome を使った解説になります

Google Messages for Web

2. Android スマホのメッセージアプリでQRコードをスキャン

  1. Android スマホのメッセージアプリを開く
  2. 左上の≡ボタンから表示されるメニューの[デバイスをペア設定] をタップ
  3. [QRコードスキャナ] をタップし、パソコンのQR コードをスキャンする
  4. [QRコードスキャナ] の下に連携したブラウザの情報が表示される

3. パソコンのブラウザにAndroid スマホと同じメッセージが表示される

パソコンに戻ると、Android スマホに表示されていたメッセージの相手先が左に表示され、同期された感じになっています。

Google Messages for Web > 連携完了
Google Messages for Web > タブを閉じても設定を保持する

左上に「パソコンの情報を保持しますか?」という確認メッセージが表示されています。
[はい] をクリックしてタブを閉じても設定が保持されるようにします。

Google Messages for Web > チャット形式

左に表示されている相手先を選択すると、右にチャット形式でメッセージが表示されます。(左側の吹き出しが相手、右側の吹き出しが自分)
メッセージのやりとりができる相手だと、下にメッセージの入力フォームが表示されます。

Google Messages for Web > チャットを開始

[チャットを開始] をクリックすると”新しい会話” という状態になり、宛先に電話番号などを入力してメッセージを送信することができます。

宛先の指定は電話番号だけでなく、名前とメールアドレスを入力して指定することもできます。

下の”よく使う連絡先”には、SMS で使っている自分の電話番号をアカウント情報として登録しているGoogle アカウントの連絡帳の情報が表示されるようです。
宛先に名前を入力すると、この連絡帳を検索して候補が表示されるようになっています。

あとがき

宛先のメールアドレス入力について

MMS(携帯のキャリアメール)のことのようです。
試しにメールアドレスを入力してみると送信ボタンに”MMS” と表示されていたのでたぶんそうです。
※ MMS を送る相手が見つからなかったので実際に送信して試すことはできませんでした

Google Messages for Web > MMS

実はGmail のアドレスに送れたりしないか?と試してみましたが、”送信できませんでした” と表示されました。

パソコンだけでなくiPhone でも使える

ブラウザで利用するサービスなので、iPhone のブラウザ(Safari)でも使えるか試してみたところ、パソコンのブラウザと同じように使うことができました。
※ 環境はiOS 15.7.1

iPhone のブラウザにQR コードを表示した状態で[ホーム画面に追加] でホームにアイコンを追加してから、追加したアイコンをタップして表示されたQR コードをAndroid スマホのメッセージアプリでスキャンして登録すると、あたかもメッセージアプリかのように使うことができるようになります。

Google Messages for Web (iPhone)
(iPhone) 右下の”Messages” がPC版メッセージ

ちなみに、QRコードをスキャンした後のPC版メッセージのページを[ホーム画面に追加] でホームにアイコンを追加すると、そのアイコンをタップしてもQR コードのページが表示されてしまうので、前述の手順でやる必要があるようです。

複数の端末(パソコンとiPhoneなど)と同期できる

パソコン(Chrome)とiPhone(Safari)の2つの端末と連携すると、スマホ(Android)のメッセージアプリの”ペア設定済みのデバイス” は下記のようになっていました。

Google Messages for Web > 複数端末

両方ともブラウザを見ると同じ状態のSMS メッセージが表示されていました。

2要素認証のコードをパソコンでも見れるのはセキュアではないのでは?

ウェブサービスの2要素認証を有効にしてSMS でコードを受け取るようにしている場合、パソコンと連携しておけばパソコンのブラウザ上でSMS の受信したコードをコピー&ペーストで入力できるので、パソコンから手と目をスマホに移す必要がなくなかなか便利です。

セキュリティの観点からすると、SMS のコードがインターネットとは別経路で通知されることで安全性が担保されていたものが、インターネット経由で転送される状態になるので、安全性が下がることは否めない感じがあります。

気になるようでしたら、ウェブサービスのサポート次第ではありますが、2要素認証をSMS から認証アプリを使う方式に切り替えるのもアリかと思います。

あくまでも利便性向上としての紹介なので、ご利用は自己責任でお願いします。

参考

Pixel 6aへの機種変更

Google のPixel 6a 買いました。

メインで使っているスマホはAndroid なので、Android からAndroid への移行を行います。

Android 同士の移行には、旧スマホのデータをGoogle のクラウド、有線接続、WiFi接続のいずれかを使ってコピーする便利な方法が提供されていますが、不要なものはコピーしたくない、ゼロからセットアップする手順を見たいという理由から、この便利な方法は使わずに新スマホをセットアップすることにしました。

なので、Android 同士の移行をする方法としてあまり参考にならないかもしれませんが、どのような手順があるのかどのような移行の注意点があるのかが後から見て分かるように記録できればと思います。

方針・前提事項

  • Android ユーザが新しいAndroid 端末に移行する手順です
  • Google のクラウド、有線接続、WiFi接続のいずれかを使ってコピーする便利な方法がありますが使わないです
  • 新Android へのアプリのインストールは、パソコンのブラウザ上でGoogle Play のページを開いてアプリを一つ一つ選択して行います(最低限のアプリしかインストールしたくない、スマホよりパソコンの方が効率的に作業できそうということでこの方法になりました)
  • 旧Android に保存されているデータの移行はアプリの移行が完了してから考える

手順

1. Pixel 6a の初回起動

Google の公式サイトを見るとPixel のセットアップは、(1)今までのスマートフォンに保存されているデータからの移行(2)新しいデバイスとしてセットアップの2つの方法があります。
今回は(2)新しいデバイスとしてセットアップの方をやります。

  1. 電源を入れる(電源ボタンを5秒間長押しする)
  2. “Welcome to your Pixel” と表示される
    • “English (United States)” をタップして”日本語” に変更
    • “アシストオプション” はそのまま
    • [始める] をタップ
  3. モバイルネットワークへの接続
    • SIMカードをSIMスロットに挿入する ※挿入すると自動的に次へ
    • “SIMをダウンロードしますか?” はそのまま
  4. Wi-Fi に接続
    • 接続するアクセスポイントをタップしてパスワードを入力
    • アクセスポイントの詳細表示の中身はデフォルトのまま(以下一部抜粋)
      • 従量制:自動的に検出
      • プライバシー:ランダムMACを使用
    • [接続] をタップ
  5. “スマートフォンの設定中…” と表示される ※10秒程度
  6. アプリとデータのコピー
    • [次へ] ではなく、[コピーしない] をタップ
  7. “情報を確認しています…” と表示される ※5秒程度
  8. ログイン:Google アカウントでログインしましょう
    • メールアドレスに自身のGoogle アカウントのアドレスを入力して[次へ] をタップ
    • パスワードを入力して[次へ] をタップ
    • 2段階認証プロセスで使用している方式を使う
      • YubiKey を使っているので、”NFCでセキュリティキーを使用する” を選択してスマホの背面にセキュリティキーを当てる
    • “電話番号を追加しますか?” で[はい、追加します] をタップ
  9. Google 利用規約、プライバシーポリシーのリンクが表示される
    • [同意する] をタップ
  10. “アカウント情報を取得しています…” と表示される ※5秒程度
  11. Google サービス ※許可するものをONにする
    • 位置情報の使用:ON(デフォルト)
    • スキャンの許可:ON(デフォルト)
    • 使用状況データや診断データの送信:ON(デフォルト)
    • [同意する] をタップ
  12. スマートフォンをGoogle One でバックアップ ※以下参考情報
    • Google アカウントの保存容量の15GB アップアップに使う
    • 自動でバックアップ ※充電器とWi-Fiに接続されている時
    • [ONにする] をタップ
  13. PINの設定
    • 数値4桁以上を入力して[次へ] をタップ
    • PIN の再入力
  14. 指紋認証によるロック解除の設定
    • [同意する] をタップ
    • “指紋の登録方法” で[開始] をタップ
    • “指紋認証センターを長押ししてください” で画面に表示される指紋マークに指紋認証に使う指(左手の親指)を押し当てる→振動→押し当てる→振動 を何度か繰り返す
    • “指紋の登録完了” で”別の指紋を登録” をタップ
    • 右手の親指で同じように指紋を登録する
    • [次へ] をタップ
  15. “セットアップを続けますか?” と表示される
    • [中断し、リマインダーを受け取る] ではなく、[続行] をタップ
  16. “Google にハンズフリーで話しかける” と表示される
    • [同意する] ではなく、[スキップ] をタップ
    • ※アシスタントの設定で変更できる
  17. “デバイスのロックを解除しないでアシスタントにアクセス” と表示される
    • [同意する] ではなく、[スキップ] をタップ
    • ※ロック画面でアシスタントの使用を許可するかどうか
  18. “スマートフォンですばやくお支払い” と表示される
    • [次へ] ではなく、[スキップ] をタップ
    • ※Google Pay の設定
  19. “さらに設定を続けますか?” と表示される
    • ※他のアカウント追加, フォントサイズ変更, アプリ追加, 壁紙変更, ロック画面に表示する情報の管理, ディスプレイ常時ON などが続けてできる
    • [いいえ] をタップ
  20. “ヒントやアドバイスを受け取る” と表示される
    • ※Google の製品やサービス等の情報をメールで受け取るかどうかの設定
    • [登録する] ではなく、[スキップ] をタップ(確か既に登録済みのはず)
  21. “スマートフォンでのスワイプ操作” と表示される
    • [スキップ] ではなく、[試してみる] をタップ
      • ホームに戻る →画面を下から上にスワイプ
      • 直前の画面に戻る →画面の左か右から中央にスワイプ
      • アプリを切り替える →画面を下から上にスワイプして長押ししてから指を離す
  22. “設定完了” と表示される
    • “システムナビゲーションの設定” をタップ
      • “ジェスチャーナビゲーション”(デフォルト) と”3ボタンナビゲーション”(画面の切り替えが画面下部のボタンで行う) のどちらかを選択する
    • 上にスワイプするとホームに移動する
Google Pixel 6a 初回起動完了

2. Google アカウントに電話番号を追加の続き

メッセージアプリにメッセージが届いているのでメッセージアプリをタップすると、”Google による電話番号の確認” というメッセージが届いていました。
Pixel の初回起動の#8 で電話番号を追加する選択をしたので、このメッセージが送信されたようです。
ということで、電話番号追加の確認手順を進めます。

  1. “Google による電話番号の確認” というメッセージにhttps://goo.gl/で始まるURLのリンクがあるのでリンクをタップ
  2. Chrome が起動するので[同意する] をタップ
  3. “同期を有効にしますか?” と表示されるので、[いいえ] ではなく[有効にする] をタップ
  4. “Android ヘルプ” の”Androidスマートフォンの電話番号の確認手続きを行う” のページが表示される

このタイミングで、”Pixel のセットアップを完了してください” という通知が表示されました。
この通知をタップすると、Pixel の初回起動の#18 でスキップしたGoogle Pay の設定や、データのコピー、それ以外の設定をすることができましたが、これらは後で必要であればやればよいと思っていたことなのでスキップしました。

3. プリインストールアプリを確認する

16個のアプリをインストールしました” という通知が来ているので、初回起動直後の既にインストールされているアプリを確認しておきます。

全部で34個のアプリのアイコンがありました。

Google Pixel 6a アプリ(1/2)
Google Pixel 6a アプリ(2/2)

4. アプリをインストールする

アプリのインストールは、Playストアのアプリではなく、パソコンのブラウザで開いたGoogle Play のページ上で行います。

  1. パソコンのブラウザでGoogle Play のページを開く
    • Pixel の初回起動の#8 と同じGoogle アカウントでログインする
  2. 右上のアイコンをクリックすると表示されるメニューから「ライブラリとデバイス」をクリック
  3. ライブラリというページが開くので、上のメニューの「デバイス」をクリック
    • 旧Android と新Android が表示されているはずです
    • ここでAndroid のニックネームを変えることができます
  4. 上のメニューの「アプリ」をクリック
    • 旧Android でインストールしていたアプリが表示されます
    • 新Android へのアプリのインストールはこのページでインストールしたいアプリを選択して1つずつインストールする操作を行います
  5. まずは、LINE アプリをインストールするので、LINE のアイコンをクリック
  6. LINE アプリのページが開くので、[他のデバイスへのインストール] をクリック
  7. デバイスの選択ウィンドウが開くので、新Android(今回は”Google Pixel 6a”)を選択して[インストール] をクリック
  8. これで新Android へのLINE アプリのインストールが開始されます

この#4 のアプリ一覧のページでインストールしたいアプリをひとつひとつ選んでインストールする作業をひたすらやります。
面倒ではありますが、これで最低限必要なアプリしかインストールされていない環境にすることができます。

この作業に微妙なコツがあったので手順を記載しておきます。

  1. アプリ一覧でCommand ボタンを押しながらアプリのアイコンをクリックして新しいタブでアプリのページを開く(Macのショートカット)
  2. [他のデバイスへのインストール] をクリック
  3. デバイスを選択して[インストール] をクリック
  4. アプリのページのタブを閉じると、アプリ一覧のタブが同じ場所で表示される

#1 の操作のように新しいタブで開かないと、アプリのページからアプリ一覧のページに戻った時にページの一番上に戻ってしまい、直前のインストールしたアプリの所までスクロールすることになってしまいます。

今回は42個のアプリをインストールしたので、この手順によって作業負荷やかかる時間がそれなりに違ったと思います。

5. アプリの初期設定

どういう順番でアプリの初期設定をするかを考えてみました。

  1. パスワードマネージャ
    • 1Password
  2. 認証アプリ(ワンタイムパスワードを発行するアプリ)
    • Google 認証システム、Twilio Authy Authenticator
  3. 移行にミスるとやり直しが利かなそうなアプリ
    • LINE ※引き継ぎが必要
    • モバイルSuica ※引き継ぎが必要
    • ヨドバシゴールドポイントカード
  4. 認証アプリを使ってワンタイムパスワードを扱うアプリ(2段階認証)
    • Twitter、Facebook、Amazon、etc.
  5. 認証アプリを使わないでワンタイムパスワードを扱うアプリ
    • 三菱UFJ銀行
  6. 上記以外

5-1. 1Password

「サインアップコードを読み取る」というQRコードを使う方法で簡単にできました。

  1. 【旧スマホの1Password アプリ】QRコードを表示
    • アプリを開き、[アカウント] > (自身のアカウント名) > [別のデバイスをセットアップ] > [セットアップコード] を選択してQRコードを表示する
    • パソコンの1Password アプリでもQRコードを表示できます
  2. 【新スマホの1Password アプリ】QRコードをスキャン
    1. アプリを起動し、[セットアップコードを読み取る] をタップしてQRコードをスキャン
    2. パスワードを入力するとサインイン完了(2要素認証を有効にしている場合は2要素目の入力も必要)

新スマホで1Password アプリが使える状態になりました。

5-2. Google 認証システム

登録しているアカウントの移行をQRコードを使って簡単にできました。

  1. 【旧スマホのGoogle 認証システムアプリ】QRコードを表示
    1. アプリを開き、右上のメニューから[アカウントを移行] > [アカウントのエクスポート] をタップ
    2. “アカウントの選択” ページで移行するアカウントのチェックをON にして[次へ] をタップするとQRコードが表示される
  2. 【新スマホのGoogle 認証システムアプリ】QRコードをスキャン
    1. アプリを起動し、[QRコードをスキャン] をタップしてQRコードをスキャンする
  3. (続きがある場合、下記を繰り返す)
    1. 旧スマホのアプリで[次へ] をタップして次のQRコードを表示
    2. 新スマホのアプリでQRコードをスキャン

新スマホのGoogle 認証システムアプリに旧スマホと同じアカウントが表示されました。6桁コードは旧スマホと新スマホで同じ番号が表示されています。

<補足> Google 認証システムに登録しているアカウントの数が多いと、1つのQRコードでは収まらないので複数のQRコードに分けて全てのアカウントを移行できるようになっているようです。ちなみに今回は3つのQRコードが表示されました。1つ目と2つ目は細かいQRコードで、3つ目はそれ程細かくないQRコードでした。

5-3. Twilio Authy Authenticator

登録しているアカウントを旧スマホでバックアップすることで簡単にできました。

  1. 【旧スマホのAuthyアプリ】バックアップを有効にする
    本来はAuthyアプリにアカウントを登録したタイミングで行う作業
    1. アプリを開き、右上のメニューから[Settings] > [ACCOUNTS]タブ > Backups をON にする
    2. Backup用に登録するパスワードを入力して[Enable Backup] をタップ
  2. 【新スマホのAuthyアプリ】
    1. アプリを起動し、登録している電話番号を入力して[Submit] をタップ
    2. [Use existing device with Authy installed] をタップ
  3. 【旧スマホのAuthyアプリ】
    1. アプリを開くと、New Device の画面が表示されるので[ACCEPT] をタップ
    2. “OK” のテキスト入力するよう求められるので、“OK”(2文字)を入力して[OK] をタップ
  4. 【新スマホのAuthyアプリ】
    1. [Settings] > [DEVICES]タブ に”Android” という名前のデバイスが2つ表示されているので、Allow multi-device をOFF にする

新スマホのAuthyアプリにアカウントが表示されました。
ちなみに登録しているSenGrid アカウントの表示されているコードが旧スマホと新スマホで異なっていましたが、新スマホの番号を使ってSendGird にログインすることができました。

5-4. LINE

「かんたん引き継ぎQRコード」というQRコードを使う方法で簡単にできました。
ただ、Android 同士の移行ではこれだけだとトーク履歴が移行されないので「トーク履歴のバックアップと復元」で旧スマホのトーク履歴をGoogle ドライブに保存してトーク履歴も移行します。

  1. 【旧スマホのLINE アプリ】トーク履歴のバックアップ、QRコードを表示
    1. アプリを開き、[設定] > [トーク履歴のバックアップ・復元] でバックアップ用のPINコードを設定して、現時点のバックアップをGoogle ドライブに保存する
    2. [設定] > [かんたん引き継ぎQRコード] をタップしてQRコードを表示する
  2. 【新スマホのLINE アプリ】QRコードをスキャン
    • アプリを起動し、[ログイン] > [QRコードでログイン] > [QRコードをスキャン] をタップしてQRコードをスキャンする
  3. 【旧スマホのLINE アプリ】QRコードスキャンの承認
    • “このQRコードをスキャンしましたか?” と表示されるので、”はい、スキャンしました” のチェックをONにしてから[次へ] をタップする
  4. 【新スマホのLINE アプリ】トーク履歴の移行
    1. Google アカウントを選択するページが表示されるので、Google アカウントを選択して[トーク履歴を復元] をタップするとトーク履歴の復元が始まるので、そのまま[次へ] をタップする
    2. “端末の位置情報の提供”と “LINE Beacon の利用” の同意ページで[OK] をタップ ※両方とも任意なので提供・利用したくなければチェックを外す

新スマホでLINE アプリを使える状態になりました。トーク履歴もあります。

旧スマホのLINE アプリを見ると、”利用することができません” と表示されています。同じアカウントを複数のスマホで同時に使うことができない仕組みになっているようです。

<補足> メールアドレスと電話番号、パスワードの位置付けがよく分からなかったので調べてみたら下記の扱いのようでした。

  • 電話番号:必須(スマホを紛失・故障した際のLINEアカウントの引き継ぎ時に使う)
  • パスワード:必須(スマホの紛失・故障・機種変更した際のLINEアカウントの引き継ぎ、パソコン版LINE利用時に使う)
  • メールアドレス:任意(スマホの機種変更でLINEアカウント引き継ぎ時にパスワードを忘れていても再設定できる)

参考

5-5. モバイルSuica

旧スマホのおサイフケータイアプリにログインしているGoogle アカウントと同じアカウントで新スマホのおサイフケータイアプリにログインすることで、Suica カードをGoogle アカウント経由で旧スマホから新スマホに移行するようです。
モバイルSuica アプリとおサイフケータイアプリの2つのアプリを使うので、何のための操作をしているのか感覚的に分かりづらく感じました。

  1. 【旧スマホのモバイルSuicaアプリ】カードを預ける(Step 1)
    1. アプリを開き、[会員メニュー] > [カードを預ける(機種変更)] > [「おサイフケータイ」アプリ起動] > [アプリ起動] をタップすると、おサイフケータイアプリが起動する
  2. 【旧スマホのおサイフケータイアプリ】カードを預ける(Step 2)
    1. [カードを預ける(機種変更)] > [はい] をタップ
    2. “カードを預ける” におサイフケータイアプリにログインしているGoogleアカウントのメールアドレスが表示されるので[預ける] をタップ
    3. “このカードのおサイフケータイアプリでの受け取りには、ご利用中のGoogle アカウントが必要です” と表示されるので[閉じる] をタップ
    4. マイサービスに表示されていたモバイルSuica が表示されなくなった
  3. 【新スマホのおサイフケータイアプリ】おサイフケータイアプリの初期設定
    1. アプリを起動し、[次へ] をタップ
    2. 利用規約のチェックをONにして[次へ] をタップ
    3. “初期設定完了” と表示されたら[次へ] をタップ
    4. “おサイフケータイアプリ「Googleでログイン」について” と表示されたら[次へ] をタップ
    5. “Googleでログインしてください” と表示されたら[Google でログイン] をタップ
    6. マイサービスが表示される
  4. 【新スマホのモバイルSuicaアプリ】カードを受け取る(Step 1)
    1. アプリを起動し、[スキップ] > [はじめる] をタップ
    2. [すでに会員の方はこちら] をタップ
    3. メールアドレスとパスワードを入力して[ログイン] をタップ
    4. “カードを受け取る” で[次へ] をタップ
    5. “受け取るSuicaを選んでください” で表示されたSuica カードから移行するカードを選択して[受け取る] をタップ
    6. “おサイフケータイを起動します” で[アプリ起動] をタップすると、おサイフケータイアプリが起動する
  5. 【新スマホのおサイフケータイアプリ】カードを受け取る(Step 2)
    1. “受け取るカードの選択” で[受け取る] をタップ
    2. 受け取る選択をしたSuica カードが表示された
  6. 【新スマホのモバイルSuicaアプリ】
    1. アプリを開き、パスワードを入力して[ログイン] をタップ
    2. 受け取る選択をしたSuica カードが表示された

新スマホでモバイルSuica アプリを使える状態になりました。
見た目上は旧スマホと同じ状態なので、たぶん改札を通れるはずです。

旧スマホのモバイルSuica アプリを見ると、新規登録かカードの受け取りかを選択する画面が表示されています。同じSuica カードを複数のスマホで同時に使うことができない仕組みになっているようです。

5-6. ヨドバシゴールドポイントカード

ヨドバシカメラの公式サイトを見ると、新スマホで自身のアカウントでログインすればポイント残高はそのまま使えるという記述がありますが、機種変更時の手順は(1) 旧スマホのアプリで削除、(2) 新スマホのアプリで再登録、となっているので素直に従います。

  1. 【旧スマホのヨドバシゴールドポイントカードアプリ】
    1. アプリを開き、左上のメニューから[xx様のマイページ] > [ゴールドポイントカード登録解除] をタップ
    2. “アプリのゴールドポイントカードの登録解除” で[解除する] をタップ
  2. 【新スマホのヨドバシゴールドポイントカードアプリ】
    1. アプリを起動し、会員ID(メールアドレス)とパスワードを入力し[ログイン] をタップ
    2. 生年月日を入力し[送信] をタップ
    3. “ゴールドポイントの登録が完了しました” と表示されたら[おサイフケータイを登録する] をタップ ※[今はしない] の選択も可能
    4. ゴールドポイント残高に金額が表示された

新スマホでヨドバシゴールドポイントカード アプリを使える状態になりました。

5-7. 三菱UFJ銀行

三菱UFJ銀行の公式サイトを見ると、スマホを機種変更した場合は再度ワンタイムパスワードの利用登録が必要という記述があります。このワンタイムパスワードは振込などの取引をする際に使うものなので、初期セットアップのタイミングで登録しておきます。

  1. 【新スマホの三菱UFJ銀行アプリ】
    1. アプリを起動し、[ログイン] をタップ
    2. 利用規約の[同意してアプリを利用する] をタップ
    3. 契約番号とログインパスワードを入力して[ログイン] をタップ
    4. ログインに成功すると”ワンタイムパスワード利用登録” のウィンドウが表示されるので[登録に進む] をタップ
    5. 電話、運転免許証またはマイナンバーカードのいずれかを選択して認証すると設定が完了する

旧スマホの三菱UFJ銀行アプリで解除などの操作は何もやらなかったのですが、旧スマホの三菱UFJ銀行アプリを見ると、アプリ初回起動時のような状態になっていました。

6. 旧スマホのデバイスに紐づいた設定を解除する

6-1. Google アカウントのスマートフォンのセキュリティキーの登録を削除

Google アカウントの2段階認証で旧スマホを使ったAndroidスマホをセキュリティキーとして使う機能を有効にしていたので、これを無効にします。

  1. パソコンのブラウザでGoogle アカウントのページを開く
  2. サイドメニューの[セキュリティ] をクリックし、”Google へのログイン” の[2段階認証プロセス] をクリック
  3. アカウントのパスワードを入力して[次へ] をクリック
  4. “2 段階認証プロセス” で[セキュリティキー] をクリック
  5. “セキュリティ キー” に”Titan セキュリティを使用” とコメントが書かれた”スマートフォンのセキュリティ キー” があるので、右のゴミ箱アイコンをクリックして削除

2段階認証プロセスに他のセキュリティキーや認証アプリ、SMS などの手段を登録しているので後で削除すればよい気もしますが、この設定が残っていて何もよいことはないのでこのタイミングで忘れず削除しておきます。

あとがき

最近、既存のパスワードに置き換わるユーザ認証の仕組みとしてPasskey が話題になっているので、スマホの機種変更がPasskey によってどうなるのかを体験してみたかったのですが、Android とChrome の一般ユーザへのサービス提供は今年の11月後半の予定とのことだったので、待ちきれませんでした。
スマホの機種変更に関係なく安全なユーザ認証を実現する技術として期待されているので、情報は追っていきたいと思います。

参照

DuckDuckGoのEmail ProtectionをChrome拡張機能で使う

DuckDuckGoブラウザでベータ提供されていたEmail Protection の一般提供が始まりました。

DuckDuckGoのEmail Protection とは

ユーザーのプライバシーに配慮した検索エンジンを提供するDuckDuckGo がベータ版として提供していたメール転送サービスです。

DuckDuckGo によると、配信されているメールの85%はトラッカーが仕掛けられていて、Email Protection を使うことで受信するメールに仕掛けられているトラッカーを除去した状態で受信することができるということです。

トラッカーというのは、メールに含まれる画像やスクリプト、その他のメディアに隠されていたり、リンクに含まれているのだそうです。

Email Protection を使うためにはまず下記のいずれかをインストールする必要があります。

  • モバイル向けDuckDuckGo ブラウザ (iOS/Android)
  • デスクトップ向けブラウザ拡張機能 (Firefox/Chrome/Edge/Brave)
  • デスクトップ向けDuckDuckGo ブラウザ (macOS) ※ベータ版

インストールした後に設定を開いて、ユーザー向けの@duck.com アドレスを取得し、普段使っているメールアドレスを登録することで利用できるようになります。

取得した@duck.com アドレスに送られたメールが、トラッカーが除去された状態で登録したメールアドレスに転送される感じです。

前提事項

ここでは、Chrome 向けのブラウザ拡張機能 DuckDuckGo Privacy Essentials を使った手順を記載します。(パソコンはMacです)

既にベータ版のEmail Protection@duck.com のアドレスを取得していたので、その取得済みのアドレスをChrome 向けのブラウザ拡張機能に設定するという手順になります。

なお、ブラウザ拡張機能 DuckDuckGo Privacy Essentials を有効にすると、既定の検索エンジンが強制的にDuckDuckGo になります。Google などDuckDuckGo 以外の検索エンジンを既定の検索エンジンとして使いたい場合は、DuckDuckGo Privacy Essentials を無効にするかアンインストールする必要があるので、他のブラウザのブラウザ拡張機能DuckDuckGo ブラウザを使うという選択になると思います。

既定の検索エンジンがDuckDuckGo になると、新しく開いたタブが下記のようになります。
また、アドレスバーを使った検索もDuckDuckGo が使われるようになります。

DuckDuckGo 検索窓

手順

1. Chrome にブラウザ拡張機能をインストール

ChromeウェブストアでDuckDuckGo Privacy Essentials を探します。

DuckDuckGo Privacy Essentials (Chrome)

[Chrome に追加] をクリック

DuckDuckGo Privacy Essentials インストール確認

確認のポップアップで[拡張機能を追加] をクリック
これでインストールは完了です。

2. Chrome のメニューバーにDuckDuckGoアイコンを表示する

Chrome 拡張機能

Chrome のツールバーにあるパズルマークのアイコンをクリック

Chrome 拡張機能 > DuckDuckGo Privacy Essentials

DuckDuckGo Privacy Essentials押しピンマークのアイコンをクリック
これでツールバーにアイコンが表示されるようになります。

DuckDuckGo アイコン

3. Email Protection の初期設定

ツールバーのアヒルのアイコンをクリックすると下記のメニューが表示されます

DuckDuckGo Privacy Essentials メニュー

右上の歯車アイコンをクリック

DuckDuckGo Privacy Essentials > More options

Settings をクリック

DuckDuckGo Privacy Essentials > Settings

Email ProtectionEnable をクリックすると下記のページが表示されます

Email Protection 初期設定1

@duck.com の入力欄にアカウント名などの希望する文字列を入力して[Continue] をクリック

  • 今回は取得済みのアドレスを入力したので、以降の手順は既にベータ版のEmail Protection を使っている人向けの、取得済みのアドレスで設定する手順になります
  • 新規で@duck.com を取得してEmail Protection を使う場合は、Gigazine の「無料の「DuckDuckGoメールプロテクション」が誰でも利用可能に」の手順が参考になりそうです
Email Protection 初期設定2

取得済みの@duck.com アドレスを入力して[Continue] をクリックすると上記のページが表示されました。

受信トレイを確認するようにとのことなので、Forwarding Address に登録していたメールアドレスの受信トレイを確認すると、ワンタイムパスフレーズが記載されたメールを受信していました。

ワンタイムパスフレーズを入力して[Sign In] をクリックします。

Email Protection 初期設定3

Autofill enabled in this browser for に先程入力した取得済みの @duck.com のアドレスが表示されました。

Settings に戻ってみると、ここにも取得済みの@duck.com アドレスが表示されています。

DuckDuckGo Privacy Essentials > 
 Email Protection - Enabled

これで正常に設定できたようです。

4. Email Protection の動作確認

テストメールを@duck.com のアドレスに送ります。
登録していたForwarding Address のメールアドレスにメールが届きました。
正常にメールが転送されることを確認できました。

ランダムな@duck.comアドレス も使える

希望する文字列を入力して取得した@duck.com アドレス以外に、ランダムな文字列で生成された@duck.com アドレスも使うことができます。

Email Protection > Autofill

Email Protection のページのPrivate Duck Address Generator に表示されてるもう一つのアドレスで、このままでも使えますが[Generate Private Duck Address] をクリックして新しいランダムな文字列を生成することができるようになっています。

この機能は個人的には用途が定まらないので使っていないですが、考えられる用途は下記のような感じでしょうか。

  • 使い捨てのメールアドレス
    • 一回きりのメール受信するメールアドレスが欲しい
    • 使い終わったら[Generate Private Duck Address] ボタンをクリックして、古いアドレス宛のメールが転送されないようにする
  • 匿名性を持たせたいメールアドレス
    • @の前の部分でTwitter アカウントなどが推測されないようにしたい
    • [Generate Private Duck Address] ボタンをクリックすると、古いアドレス宛のメールが転送されなくなるので注意が必要(メールを使ったアカウントリカバリができなくなる等)

あとがき

まず、DuckDuckGo で自分専用のメールアドレスを取得するというのは何か心が躍ります。

ベータ版から一般向けに公開するにあたり、ユーザーからのフィードバックを反映して幾つかの機能追加を追加したようなので、今後も何かと改良されることが期待できそうです。

メルマガなどお得な情報を配信するようなサービスに登録する以外に、SNSなどウェブサービスのアカウント登録でも使われることもあると思われますが、その場合はDuckDuckGo のシステム障害や将来のEmail Protection のサービス終了でメールが転送されなくなる可能性を考慮して、電話番号や第2メールアドレスなど代替の通知手段を登録しておいた方がよいかもしれません。
プライバシーを気にするのであればあまり多くの情報を提供したくないと思うので、どこを落とし所にするかはそもそもサービスを利用しないという選択を含めてその人次第ということで。

参照

さくらのレンタルサーバ新サーバーに移行

さくらインターネットさくらのレンタルサーバが「表示速度および処理能力が従来の最大5倍となる新サーバー」の提供を始めました。

提供開始は2022年2月16日で、既存のユーザ向けの新サーバーへの移行ツールの提供は7月13日に始まりました。

New さくらのレンタルサーバ

当ブログはさくらのレンタルサーバを使っていてパフォーマンスを改善したかったので、新サーバに移行することにしました。
移行ツール自体は管理画面でボタンを押せばよいだけの単純なものでしたが、移行にあたり前提事項など確認する必要があったので記録しておきます。

事前確認

さくらのレンタルサーバの公式サイトに移行ツールについての説明が書かれていましたが、解説ページのリンクをクリックするとどのページを読んでいるのかよく分からなくなり混乱してきたので、WordPress を使っている自分に関係していそうなことを箇条書きしておきます。

  • 対象者
    • 旧仕様のさくらのレンタルサーバ(2022年2月16日11:00以前に提供していたサーバー)に契約している
  • 条件
    • 同一プランへの移行のみ
    • サーバー上のすべてのコンテンツが新サーバーに移行される
    • 移行後は旧サーバーにアクセスできなくなる
  • 移行ツールを利用できない対象者
    • MySQL4.0、5.1、5.5を利用中(5.7にアップグレードする必要がある)
    • バックアップ&ステージングを利用中(バックアップ&ステージングの利用解除を行う必要がある)
    • 料金未納によりサーバーが停止中
  • 移行による変更点
    • クイックインストールまたは手動でインストールしたWordPress は、参照先データベース情報が「mysqlNNN.db.sakura.ne.jp」から「mysql57.アカウント名.sakura.ne.jp」に変わる
    • PHP7以上でcgiモードを利用している場合、モジュールモードに切り替わる
    • サーバーのIPアドレスが変わる
  • 移行作業の制約事項など
    • 移行される日時は数時間の幅があり正確に指定できない
    • 移行準備時間中は、サーバーコントロールパネル、Webメールへのログイン及び各種操作が利用できない(最大2時間目安)
    • 移行作業が開始するとサーバーの全機能が利用できなくなる(時間はデータの容量、ファイル数により異なるが、10GBで40分、100GBで約4時間程度を想定)

移行の操作手順

  1. サーバーコントロールパネルにログイン
  2. サイドメニューの[サーバ情報] > [移行ツール]
  3. [移行の申し込みに進む] ボタンをクリック
  4. 同意のチェックをONにし、[移行ツールを実行する] ボタンをクリック(8/14 22:04)
  5. 申し込みが完了するとコントロールパネルから強制ログアウトされる
    • “サーバ移行中です”と表示されるので[ログイン画面へ移動] ボタンをクリック
    • しばらくしてウェブページにアクセスすると、”現在、メンテナンス中です”と表示される
  6. 移行が完了すると、完了メールが送信される(8/15 0:00 に受信した)
    • 移行に失敗した場合、コントロールパネルにエラーメッセージが表示される

移行完了後の確認

  1. 翌朝、8時頃にWordPress のトップページを表示しようとしたら「このサーバは、さくらのレンタルサーバで提供されています」というページが表示された。そのまま放置して昼頃に再度表示するとWordPress のページが表示された
    • Jetpack のダウンタイムのモニターで検知された通知メールを見ると、23:46 にサイトのダウンを検知し、23:59にサイトのオンラインを検知していた(約13分のオフライン)
  2. WordPress のページが表示されたが、Chrome で表示するとアドレスバーのURL は”https” で始まり、”保護されていない通信” と表示されるようになった
    • Safari、Firefox、Brave Browser では保護された通信として表示される
    • スマホ版のChrome では保護された通信として表示される
    • 解消できないか少し調べたけれど原因を特定できなかったので、とりあえずこのまま放置することにした (解消できたので以下に訂正)
    • デベロッパーツールのSecurity タブを開くと、”Resources – active content with certificate errors” と表示されていたので、下記の手順を行って解消した
      1. デベロッパーツールのApplication タブを開き、サイドバーのApplication > Storage に[Clear site data] ボタンと”including third-party cookies” チェックボックスがあるので、チェックをONにしてボタンをクリック
      2. ブラウザのタブを閉じて、新しいタブを開きURLを入力すると、”保護されていない通信” が表示されなくなった(解消)
      3. デベロッパーツールのSecurity タブを開くと、”Resources – all served securely” と表示されていた
保護されていない通信(パソコン版Chrome)
デベロッパーツールのSecurityタブ(Resources - active content with certificate errors)
(デベロッパーツール) “Security” タブ > This page is not secure (broken HTTPS). > Resources – active content with certificate errors
(デベロッパーツール) “Application” タブ > サイドバーの”Application > Storage”
デベロッパーツールのSecurityタブ(Resources - all served securely)
(デベロッパーツール) “Security” タブ > This page is secure (valid HTTPS). > Resources – all served securely

あとがき

新サーバへの移行後、リンクをクリックした時の反応が明らかに良くなっている。

パソコン版Chrome で”保護されていない通信” と表示されてしまうのが悲しい。常時SSL化の時もChrome は前のめりだったので、今回も何かしらの仕様に引っ掛かっているのかもしれない。
解消させる上で参考になるかもしれないサイトのリンクを以下、貼り付けておいて今回はここまでとする。
(解消できたので以下に訂正)

パソコン版Chrome で”保護されていない通信” と表示された原因は、サイトの何かしらの情報がキャッシュに残っていたことが原因だったようです。
Command + Shift + R のハード再読み込みと、デベロッパーツールのモードで使える”キャッシュの消去とハード再読み込み” を試したけれど、その時はタブを閉じて新しいタブで表示させるということをしなかったので、もしかしたらそれで解消できていたのかも?気になるけれど気にしないことにします。