私は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をチェックしてもダメな理由がわからず、
どこか別の設定を変えればいけるのかもしれないが使用が推奨されない古いプロトコルを使うことをあまり深追いするのもアレなので。