⑦HTTPSアクセスを有効化(URL作成)


ここは、これまで作ってきた設定を「実際にクライアントから見える入口(URL)」として完成させるステップです。
ざっくり言うと、

「ASA の outside に正しい IP を付けて、ルーティング・DNS・FW を整え、https://~ で到達できるようにする」

という作業です。

1)outside インターフェースにグローバル到達可能な IP を付ける

まず、VPN クライアントがインターネット経由で到達できる IP が必要です。

conf t
interface outside
 nameif outside
 security-level 0
 ip address 203.0.113.1 255.255.255.0    ! 例:プロバイダからもらったGlobal
exit

! デフォルトルート(インターネット側へ)
route outside 0.0.0.0 0.0.0.0 203.0.113.254
  • ip address:クライアントが接続する IP アドレス
  • route outside:インターネットへの出口

もし ASA が「DMZ の中」にいて、さらに上位 FW でグローバルに NAT する構成なら、

  • ASA outside:プライベート IP(例:10.0.0.2)
  • 上位 FW がグローバル(例:203.0.113.1)へ NAT
  • クライアントは https://203.0.113.1/ にアクセス
    → 上位 FW で ASA へ 443 をフォワード

という形になります。

2)DNS(FQDN)と URL の決め方

使いたいホスト名を決めて、DNS に A レコードを登録します:

  • 例)vpn.example.com203.0.113.1

クライアントが使う URL は基本こんな感じになります:

  • シンプルに IP 指定
    https://203.0.113.1/
  • ちゃんと証明書も合わせる場合(推奨)
    https://vpn.example.com/

④で group-url を設定している場合は、その URL で直接特定トンネルグループに入れます:

tunnel-group ANYCONNECT webvpn-attributes
 group-alias "Company VPN" enable
 group-url   https://vpn.example.com/emp enable

社員に案内する URL 例:
https://vpn.example.com/emp

3)outside まで HTTPS (TCP 443) が届くようにする

3-1. ASA 自身の設定(WebVPN)

⑥でやったように、webvpn を outside で有効にします:

conf t
webvpn
 enable outside       ! outside で WebVPN/AnyConnect を受け付ける
 port 443             ! 待ち受けポート(変えたければ port 8443 など)
 anyconnect enable    ! AnyConnect 機能を有効化
exit

ここまでで、「ASA は outside:443 で AnyConnect を受け付ける状態」になります。

3-2. ASA 外側の FW/ルーター(がいる場合)

上位 FW や ISP ルータがある場合は、

  • 203.0.113.1 宛の TCP 443 を ASA に流す
  • ACL やセキュリティポリシーで 443 を許可する

ことが必要です。構成によって、

  • 静的 NAT(global IP → ASA outside IP)
  • その NAT に対して 443 を許可するセキュリティポリシー

などを設定します。

3-3. ASA の ACL で塞いでいないか?

outside インターフェースに ACL を貼っている場合は、外からの 443 を許可します:

! 例:outside_in ACL を outside に適用している場合
access-list outside_in extended permit tcp any host 203.0.113.1 eq 443
access-group outside_in in interface outside

4)管理用 HTTPS(ASDM)とのポート被りに注意

ASA には「管理用の HTTPS(ASDM 用)」もありますが、
これは webvpn とは別の設定です。

conf t
http server enable 4443                      ! ASDM 用を 4443 にする例
http 192.168.10.0 255.255.255.0 inside       ! 管理は inside からのみ許可
exit
  • WebVPN/AnyConnect:webvpnport(デフォルト 443)
  • ASDM 管理:http server enable <port>(例:4443)

というふうにポートを分けておくとトラブルが減ります。

5)証明書の最終紐付け(FQDN と揃える)

実運用では必須レベルです。

  1. 事前に ssl-trustpoint-VPN のような trustpoint を作成/インポートしておく
    (CN or SAN に vpn.example.com を含む証明書)
  2. outside に紐付け:
conf t
ssl trust-point ssl-trustpoint-VPN outside
exit

これで、

  • クライアントが https://vpn.example.com/ へアクセス
  • ASA outside が ssl-trustpoint-VPN の証明書で応答

となり、証明書警告が出にくくなります。

6)クライアントからの接続イメージ(URL の使い方)

  1. ブラウザまたは AnyConnect で
    https://vpn.example.com/ または https://203.0.113.1/
  2. ④で group-alias を設定していれば、ポータル画面でプルダウンに表示されます: tunnel-group ANYCONNECT webvpn-attributes group-alias "Company VPN" enable group-url https://vpn.example.com/emp enable
    • ブラウザ:グループ選択 → ユーザー名/パスワード入力 → AnyConnect 起動
    • 直接:
      • URL https://vpn.example.com/emp を指定してすぐ ANYCONNECT グループに接続
      • AnyConnect クライアントに vpn.example.com/emp を登録
  3. 認証成功後、③で作った IP プールのアドレスがクライアントに割り当てられる

7)ここまで終えたら行う確認コマンド

ASA 側

! webvpn の状態
show run webvpn
show webvpn

! SSL/証明書の確認
show run ssl

! インターフェース/ルート
show run interface outside
show route

! 実際のセッション
show vpn-sessiondb anyconnect
show webvpn session

疑わしいときに便利なコマンド

! インターネット側からの 443 を ASA 内部でシミュレーション
packet-tracer input outside tcp <クライアント想定IP> 12345 203.0.113.1 443
  • result: ALLOW になれば、ASA 内部では 443 が通る状態です
    → それでもダメなら「ASA の外(上位FW・ルータ)」が怪しい

8)まとめ(⑦でやること)

  1. outside にグローバル到達可能な IP とデフォルトルートを設定
  2. DNS で FQDN → outside IP を引けるようにするvpn.example.com など)
  3. 外からの TCP 443(or 指定ポート)を ASA に通す(上位 FW/ACL/NAT)
  4. 証明書を outside に割り当て、FQDN と合うようにする
  5. クライアントは https://<outside IP or FQDN>/(or group-url)で接続