nmtysh.log

Tech系のネタや日々の独り言などを書いています。

ESETとMacの相性が悪い (1) ブラウザでサイトが開けなくなる

Chromeでサイトがうまく閲覧できなくなったのでメモ

環境

  • ESET Cyber Security Pro 6.8.300.0
  • macOS 10.14.6

症状

読み込めないページ(サイト)が存在する

対策

手元の環境だと、下記のいずれかの設定を変える必要がりました。

  • Webアクセス保護を無効化する
  • HTTPプロトコルのチェックを無効にする
  • HTTPプロトコルで使用するポートのリストから"80"を外す
  • アプリケーションを除外する(この場合はChromeを除外する)

参考

Mac環境で特定の通信が遮断される(「Webアクセス保護」に起因する場合) | ESETサポート情報
https://eset-support.canon-its.jp/faq/show/1579

inputフォーム要素が配列の場合にブラウザバックするとデータが壊れた

nameが配列になっている("data[]"など)inputフォームはpost後にブラウザバックすると、ブラウザが余計な気を効かせて(autocomplete?)、データが壊れることありました。

サーバー側で空欄の要素を除外して配列に入れ直している場合に、サーバー側のレスポンスでは入れ直した後のデータになっているのに、ブラウザ側がフォーム内容を上書きしてしまい意図しない状態になりました。

<!-- POST内容 -->
<input type="text" name="data[1]" value="1" />
<input type="text" name="data[2]" value="" />
<input type="text" name="data[3]" value="3" />

↓ ブラウザバック(ページキャッシュ無効なのでサーバーから再取得

<!-- サーバーからのレスポンス内容 -->
<input type="text" name="data[1]" value="1" />
<input type="text" name="data[2]" value="3" />
<input type="text" name="data[3]" value="" />

↓ ブラウザのレンダリング

<!-- 表示内容 -->
<input type="text" name="data[1]" value="1" />
<input type="text" name="data[2]" value="" /> <!-- 2番目が空欄になる -->
<input type="text" name="data[3]" value="3" /> <!-- 空欄であるべき3番目に古いデータが表示される -->

この状態でページをリロードすると正しいデータで表示されますが、POSTしてしまうとおかしい状態でサーバーに送信されてしまいます。

Cache-Controlでno-cache,no-store,must-revalidateを設定しているのにこのような挙動だったので、ブラウザのCache?を疑いつつ、試しにdata[(連番)]からdata[(ランダムな値)]にしてみたら(今回のフォームではkeyの値自体は重要じゃなかったので)、意図した挙動になりました。

ssh-agentに登録した鍵をターミナル起動時に自動的に読み込む

macOS Mojaveの環境で~/.ssh/configに下記のように書いて鍵を自動的にssh-agentに登録されるようにしていました。

Host *
    UseKeychain yes
    AddKeysToAgent yes

ただ、接続先に応じて複数の鍵を使い分けていた影響で、ssh-configに書かずにssh -iで接続する際にToo many authentication failuresエラーが出るようになってしまいました。
AddKeysToAgent yesを止めて、Agent転送が必要な鍵のみssh-add -K (秘密鍵のファイルパス)で登録するようにしたのですが、OS再起動後に鍵が読み込まれていないようで、ssh接続先から、その先へのssh接続で認証が通らず、エラーに……

~/.bash_profile に下記の一行を足したら解決できそうです。
ターミナル起動時に毎回ssh-addの出力が出てきちゃうので、標準出力は/dev/nullにして読み捨てています。

ssh-add -K > /dev/null

AWS Certificate Managerで発行した証明書が失効してた

某サイトでAWS Certificate Managerを使って証明書を発行していたのですが、うまく自動更新できておらず、証明書が失効してました。

諸般の事情でDNS認証ではなくメール認証でドメイン管理者に認証してもらっていたのですが、どうも更新時には認証メールが飛んでいない…?
ACM上のステータスでは「検証保留中」と書いてあるけど、その割に認証メールを再送信できなかったり、更新資格が「使用不可」だったりとイマイチこのあとのステップが不明でした。
結局、わからなかったので、新規作成して作り直しました。

この証明書はAmazon CloudFrontで使っていたのですが、新しい証明書にすんなり差し替えできず、一旦"Default CloudFront Certificate"に切り替えて、その後改めて"Custom SSL Certificate"を選び直したりと慌てました(慌てていたので、もしかしたらこんな面倒なことをしなくても良かったのかもしれない…)

それにしても、最近CloudFrontの設定変更を行っていなかったのですが、設定反映にかかる時間は変わってないっぽいですね〜
反映完了に30分ぐらいかかったので、中々焦ります。反映途中でも20分ぐらいで次の設定変更を保存できたのですが、保存後すぐにはできなかったので、「早く反映終わってくれ…」と祈ってました。

ドメインや証明書の更新時期は忘れずにチェックしましょう。自動更新だからと油断せずに要確認ですね。
(Let's Encryptを使った別のサイトでもスクリプトがうまく動いておらず危うく失効しそうになったことが…)

Pixel 3aをAndroid 10にアップデート後、データ通信ができなくなったのでAPN設定をリセットしたら直った

タイトルの通り。
先週、Pixel 3aをAndroid 10にアップデートしたのですが、その直後からUQ mobileのモバイルデータ通信ができなくなっていました。
WiFi接続で過ごしていたので、データ通信ができないことに気がついたのが今日……
出先でインターネットが利用できず困りました。
また発生したときのために個人的にメモしておきます。

TL;DR

APN設定を初期設定にリセットしてからUQ mobileのAPN設定を再設定するとモバイルデータ通信ができるようになりました。
APN設定を削除→改めて設定では駄目でした。一度リセットする必要がありました。

状況

  1. Pixel 3aをAndroid 10にアップデートしたらAPN設定リストが初期状態になった(Rakuten mobile(a.rmobile.jp)のみ)。
  2. 初期状態のRakuten mobileのAPN設定を削除すると、設定してあったUQ mobileの設定が復活したので、それを選択。
  3. 接続できているように見えた。通話はできたが、モバイルネットワークの状態が切断状態でモバイルデータ通信はできず。
  4. APN設定を削除して、再度登録しても状況は変わらず、データ通信できず。
  5. APN設定を初期設定にリセットしてから再度設定すると、データ通信もできるようになった。

設定方法

  1. 「設定」アプリを開く。
  2. 「ネットワークとインターネット」をクリック。
  3. 「モバイルネットワーク」をクリック。
  4. 「詳細設定」を開く。
  5. 「アクセスポイント名」をクリック。
  6. 右上の「︙」をクリックして、「初期設定にリセット」する。
  7. 右上の「︙」をクリックして、「新しいAPN」をクリックする。
  8. ネットワーク設定方法に従って設定する。
  9. 右上の「︙」をクリックして、「保存」をクリックする。(戻るキーや矢印で戻ると保存されないので注意)
  10. 追加したAPNを選択すると、モバイルデータ通信ができるようになる。
  11. お好みでデフォルトのAPN設定を削除する。

ネットワーク設定方法には載っていませんが、7の手順で新規作成した際に、MVNOの種類に「IMSI」、MVNO値に「4405130」が自動設定されていました。
Android 9の時にはこの部分は空欄だった気がします(UQ mobileの設定ページに載っていないので設定した覚えはない)。

自分用設定値のメモ

ネットワーク設定方法の値を設定。
設定ページに載っていない分はAPN設定作成時のデフォルト値。

項目名 設定値 デフォルト状態
名前 UQ mobile
APN uqmobile.jp
プロキシ 未設定
ポート 未設定
ユーザー名 uq@uqmobile.jp
パスワード uq
サーバー 未設定
MMSC 未設定
MMSプロキシ 未設定
MMSポート 未設定
MCC 440
MNC 51
認証タイプ CHAP
APNタイプ default,mms,supl,hipri,dun
APNプロトコル IPv4/IPv6
APNローミングプロトコル IPv4
APNの有効/無効 (有効)(グレーアウト)
ベアラー 指定なし
MVNOの種類 IMSI
MVNO 4405130