Contents
- 1 Firepower(ASA mode) × Secure Client
- 2 ❗ TLS が原因で VPN が貼れない典型パターン 7 選
- 3 まとめ(TLS で接続できない時の最短切り分け)
Firepower(ASA mode) × Secure Client
❗ TLS が原因で VPN が貼れない典型パターン 7 選
① ASA の証明書が不正(期限切れ / SAN 不一致)
症状
- Secure Client で「証明書エラー」
- エラー例:
certificate validation failure - 接続が TLS ハンドシェイクで失敗
確認コマンド
show crypto ca certificates
show vpn-sessiondb anyconnect
解決
- FQDN と 証明書の SAN が一致しているか確認
- 新しい証明書を ASA にインポートし直す
- 期限切れの場合は再発行
② webvpn ポートが 443 以外 を使っている(クライアントが非対応)
症状
- URL:
https://xxx:4443で運用している - Secure Client がポート変更を正しく対応できず接続不可
確認
show run webvpn
設定例(正しい形)
webvpn
enable outside
port 443
解決
- 基本は 443 固定に戻す
- どうしても変えたい場合、Profile Editor でポート指定
③ TLS バージョン制限が厳しすぎる(古いクライアントが非対応)
症状
- クライアントが TLS1.3 / TLS1.2 をサポートせず
- ログ:
Failed to negotiate acceptable TLS version
確認
show run webvpn | include tls
ASA 推奨設定
ssl server-version tlsv1.2
ssl client-version tlsv1.2
※ TLS1.0/1.1 無効にすると古い AnyConnect は接続不可になります。
解決
- Secure Client を最新版へ更新
- TLS1.0/1.1 を一時的に有効化して切り分け
④ 暗号スイートが不一致(cipher mismatch)
症状
- 接続が “Negotiating security policies” で停止
- ログ:
SSL negotiation failed
確認
show run webvpn | i cipher
ASA でよくある NG パターン
aes256-shaを無効化しているecdh系を拒否してしまっている
ASA 推奨設定(最も安全で相性が良い)
ssl cipher tlsv1.2 high-security
解決
high-securityorfipsに戻す- 独自 cipher を使わない(互換性低下)
⑤ 証明書チェーンの中間証明書を ASA にインポートしていない
症状
- ブラウザでは OK なのに Secure Client だけ失敗
- エラー:
unable to get local issuer certificate
確認
show crypto ca certificates | begin certificate
特に Let’s Encrypt は中間 CA 必須
解決
- 中間証明書を ASA に追加
- trustpoint に紐づける
例:
crypto ca import MY-TP certificate
crypto ca import MY-TP chain
⑥ FQDNでアクセスしていない(証明書 SAN と一致しない)
症状
- IP 直打ちでは TLS ハンドシェイクでエラーが発生
certificate common name invalid
例:
証明書:vpn.example.com
接続:https://1.2.3.4/ → NG
確認
Secure Client のログ(Message History)で “CN mismatch” が出ている。
解決
- 必ず FQDN で接続
- 公開 DNS に正しいレコードを作成
⑦ ASA 側で TLS Inspection(decrypt)設定が誤動作
特に Firepower Threat Defense では誤設定時に TLS を壊すことがあります。
症状
- 内部から外部は OK
- 外部から ASA への TLS が途中で reset
- ASA 本体の SSL が影響を受ける(まれ)
確認
show run | i inspect tls
show run service-policy
解決
- ASA mode で decrypt は基本使わない
- TLS inspect を無効化して切り分け
policy-map global_policy
no inspect ssl
まとめ(TLS で接続できない時の最短切り分け)
- 証明書の CN/SAN → FQDN と一致してる?
- 証明書期限切れ?中間CAある?
- TLS バージョンは 1.2 が有効?
- cipher が過度に制限されてない?
- webvpn が outside に有効?
- 443 が開いている?