iPhoneのkindleに購入した本が表示されない場合

 私は電子書籍をあまり読まないのだが、

先日iPhoneを初期化してkindleを開いたら買ったはずの本がライブラリに表示されなくなった。

いったんログアウトしたり、同期ボタンを押したりしても変わらない。

私はiPhoneの言語設定を英語にしているのだが、その場合kindleの配信がうまくいかないことがある、みたいなことが以前あったので、言語設定を日本語にしてみたが変わらない。

ブラウザでkindle端末を表示させるとiPhoneが表示されているがこれはiPhoneを初期化する前に登録されたものである。

いったん登録を解除してみる。

しかし、kindleを再起動してもログアウトログインしなおしても、ライブラリは更新されない。


同じ状況の人がいないか探してみると、「Amazon.comのアカウントを見てしまっている」という人がいた。

私はamazon.comもamazon.co.jpも同じアカウントで登録している。

kindleログイン時は.comか .co.jpかなんて選択はないのでどちらにログインしているかわからない。

そこで、あえてamazon.comの方のパスワードを変えて、.comの方にログインできないようにした。

そして再度iPhoneのkindleアプリでログアウトログインしてみた。


パスワードは保存されているものは使わず手入力する。

すると「パスワードが間違っている」となった。

あれ?


自分のアカウントやパスワードを記録しているメモを見ると、

amazon(.co.jpの方)のパスワードが自分の思っているものと違っていた。


正しいパスワードを入力すると、ライブラリに購入した本が表示された。

やはり、kindleログイン時にamazon「.com」のアカウントでログインしていたようだ。


しかし、これはバグだよね。

もしくは.comと .co.jpでアカウントが統一されてないのがダメだよね。


ちなみにamazonの「コンテンツと端末の管理」でkindle端末の登録解除をした場合、

再度その端末でログインすると再度端末が表示されるようになる。


解除しようとすると「解除するとこの端末でコンテンツを購入できなくなります」などという物騒なメッセージが表示されるが、これはウソである。



古いASAにASDMでアクセスできないのはTLSバージョンのせい

私はCisco ASA5505を持っている。

ヤフオクで入手した中古品だ。


ASAはASDMというJavaで動く管理用のGUIツールを使って設定する。

CLIでも設定できるが見やすかったり設定しやすかったりするのでだいたいASDMを使う。


久しぶりに引っ張り出してASDMでアクセスしたら、こんなエラーになった。


ログインダイアログ右下にあるJavaコンソール(コーヒーカップのアイコン)を開いてアクセスすると、以下のようなエラーが記録されている。

javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted by client preferences [TLS12]


Javaのバージョンは 1.8.0_301-b09
ASAは9.2(4)33

コントロールパネルの「プログラム」にあるJavaコントロールパネルを起動し、
詳細タブを見ると、「高度なセキュリティ設定」のところの「TLS1.0を使用する」のチェックがはずれている。


ASAにconsoleかsshでログインしてみると

# show ssl
Accept connections using SSLv2, SSLv3 or TLSv1 and negotiate to SSLv3 or TLSv1
Start connections using TLSv1 and negotiate to TLSv1
Enabled cipher order: dhe-aes256-sha1 dhe-aes128-sha1 aes256-sha1 aes128-sha1
Disabled ciphers: 3des-sha1 des-sha1 rc4-md5 rc4-sha1 null-sha1
SSL trust-points:
  outside VPNLB interface: ASDM_Launcher_Access_TrustPoint_0
  outside interface: ASDM_Launcher_Access_TrustPoint_0
Certificate authentication is not enabled


TLS1しかサポートしていない。

ASAはTLS1、JavaはTLS1.1以上だったため、接続できないのだ。

接続できるようにするには、ASAがTLS1.1以上を使うか、JavaがTLS1.0を使うようにすればよい。

が、結論から言うとどっちもできなかった。
ASAには ssl server-versionというコマンドがあるのだがtlsv1より上を設定できない。

そしてJavaコンソールでTLS1.0をチェックしても、上記のエラーは変わらない。
ここの設定を変えてもTLS1.2で接続しようとするようなのだ。

家にJavaがインストールされていない古いパソコンがあったので、
そこに 1.7.0_80-b15 を入れてみた。

Javaコンソールを開くと「TLS1.0を使用する」がチェックされており、1.1と1.2はチェックされていない。

この状態だとASDMで接続できた。


OSをあげれば、と思ったが、
5505は販売終了製品で、9.2(4)33が2018年にリリースされた後新しいバージョンはリリースされていない。

JavaコンソールでTLS1.0をチェックしてもダメな理由がわからず、
どこか別の設定を変えればいけるのかもしれないが使用が推奨されない古いプロトコルを使うことをあまり深追いするのもアレなので。