VPNが貼れない原因(TLSの場合)(firepower(ASAモード)でSecure Client)


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-security or fips に戻す
  • 独自 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 で接続できない時の最短切り分け)

  1. 証明書の CN/SAN → FQDN と一致してる?
  2. 証明書期限切れ?中間CAある?
  3. TLS バージョンは 1.2 が有効?
  4. cipher が過度に制限されてない?
  5. webvpn が outside に有効?
  6. 443 が開いている?