【Cisco IOS】OpenConnect (AnyConnect互換) を使用した SSL/TLS VPN リモートアクセス (User/Password 認証)

接続構成

Windows 端末から NAT 配下のサーバにアクセスするため、SSL/TLS VPN の Cisco AnyConnect 互換ソフトウェアの OpenConnect-GUI VPN Client を用いて同一の LAN セグメントに接続する。また、スプリットトンネルを使用して Cisco IOS Router 配下のその他の LAN セグメントに対する疎通を可能にする。(OpenConnect-GUI VPN Client によるルーティング追加)その他のインターネット通信は Windows 端末の既存 GW 経由での通信となる。

Cisco IOS ルータで使用する SSL サーバ証明書はプライベート認証局 (CA) で署名・発行する。発行したサーバ証明書 (RSA 公開鍵) 、および RSA 秘密鍵とプライベート認証局 (CA) の証明書 (RSA 公開鍵) をルータにインポートして利用する。

VPN 接続時の認証は User/Password 認証とする。

【OpenConnect-GUI VPN Client のダウンロード】

接続端末Windows 10
SSL/TLS VPN ClientOpenConnect-GUI VPN Client (AnyConnect互換)
スプリットトンネル192.168.0.0/24
192.168.10.0/24
192.168.20.0/24
CAプライベート認証局 (CA)
サーバ証明書プライベート CA で署名されたサーバ証明書
サーバ証明書の秘密鍵RSA 2048bit (PKCS#1 3DES)
認証方式User/Password 認証
接続要件

OpenSSL の使用環境

プライベート認証局 (CA) の OpenSSL は以下の環境のものを使用する。

作成ディレクトリ/etc/pki/CA
設定ファイル/etc/pki/tls/openssl.cnf
OpenSSL バージョン1.1.1k
OSRed Hat Enterprise Linux 8.7
OpenSSL の使用環境

証明書の発行

CA 証明書

秘密鍵のフォーマットPKCS#1 (OpenSSL 1 系の標準)
サブジェクト DNO=Private Lab, CN=Private Root CA 01
X.509 エンコーディング形式PEM (Base64)
プライベート認証局 (CA) 証明書

プライベート認証局 (CA) の証明書発行は【プライベート認証局 (CA) の構築 (OpenSSL)】を参照。

サーバ 証明書

有効期限約2年 (730日)
RSA 暗号の鍵長2,048bit (約617桁 log2 x 2048)
秘密鍵のフォーマットPKCS#1 (OpenSSL 1 系の標準)
秘密鍵の暗号化3DES
サブジェクト DNCN=cisco.vm.lab
シリアル番号自動生成
シリアル番号情報ファイル/etc/pki/CA/serial
X.509 エンコーディング形式PEM (Base64)
X.509v3 拡張設定ファイルcisco_ext.txt
基本制約重要【critical】
CA:FALSE
鍵用途重要【critical】
digitalSignature, keyEncipherment, keyAgreement
拡張鍵用途serverAuth
サブジェクトの別名 (SAN)【DNS】cisco.vm.lab
【IP】10.0.0.254
サーバ証明書

上記のサーバ証明書を発行する。この時、秘密鍵のフォーマットを【PKCS#1 の 3DES暗号化】形式にする。サブジェクトの別名を使用してマルチドメイン用の証明書を発行する。

※Cisco IOS 15 系では RSA 秘密鍵をインポートする際に【PKCS#1 の 3DES 暗号化】及び鍵長が【2048 bit】である必要がある。(PKCS#12 形式でも可)

# mkdir /etc/pki/CA/server/private
# cd /etc/pki/CA/server

# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out ./private/cisco_pkcs8.pem
.....................................................++++
.................................................................................................................................................................++++

# cat ./private/cisco_pkcs8.pem   (PKCS#8 形式の秘密鍵)
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgk... (略)
-----END PRIVATE KEY-----

# openssl pkey -traditional -des3 -in private/cisco_key.pem -out private/cisco_pkcs1_3des.pem
Enter PEM pass phrase: ******
Verifying - Enter PEM pass phrase: ******

# cat ./private/cisco_pkcs1_3des.pem   (PKCS#1 形式の3DES暗号化された秘密鍵)
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,4B4A44DC8454A1A7

LL/RMulPGsquVeUSA... (略)
-----END RSA PRIVATE KEY-----

# openssl rsa -in ./private/cisco_pkcs1_3des.pem | openssl asn1parse -i
Enter pass phrase for ./private/cisco_pkcs1_3des.pem: ******
writing RSA key
    0:d=0  hl=4 l=1187 cons: SEQUENCE
    4:d=1  hl=2 l=   1 prim:  INTEGER           :00
    7:d=1  hl=4 l= 257 prim:  INTEGER           :C15639323555277E9EB12... (略)
  268:d=1  hl=2 l=   3 prim:  INTEGER           :010001
  273:d=1  hl=4 l= 256 prim:  INTEGER           :2230221B1BCD3C17AAEE3... (略)
  533:d=1  hl=3 l= 129 prim:  INTEGER           :E1803B29D32381ABE7FF6... (略)
  665:d=1  hl=3 l= 129 prim:  INTEGER           :DB7C56D089CE593CF6A9D... (略)
  797:d=1  hl=3 l= 128 prim:  INTEGER           :26B832F0728D953564478... (略)
  928:d=1  hl=3 l= 128 prim:  INTEGER           :61B6FC8B811E9DFA1732C... (略)
 1059:d=1  hl=3 l= 129 prim:  INTEGER           :A76CA02AA4F48BBE35529... (略)

サブジェクトの別名 (SAN) 等々、サーバ証明書に応じた個別設定の X.509v3 拡張設定ファイルを作成する。【keyEncipherment, keyAgreement】のいずれかが無いと OpenConnect 接続時ログに警告が表示される。【Peer’s certificate does not allow encryption. Key usage violation detected (ignored).】

# vi ./cisco_ext.txt

================================ cisco_ext.txt ===============================
basicConstraints = critical, CA:FALSE
keyUsage = critical, digitalSignature, keyEncipherment, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = DNS:cisco.vm.lab, IP:10.0.0.254
==============================================================================

署名リクエスト (CSR) を作成する。作成した CSR ファイルより、サブジェクト DN 、及び RSA 暗号鍵長が正しいことを確認する。

# openssl req -new -key ./private/cisco_pkcs1_3des.pem -out cisco_csr.pem -subj "/CN=cisco.vm.lab"
Enter pass phrase for ./private/cisco_pkcs1_3des.pem:

# openssl req -text -in cisco_csr.pem
Certificate Request:
    Data:
        Version: 1 (0x0)
        Subject: CN = cisco.vm.lab
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    00:c1:56:39:32:35:55... (略)
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: sha256WithRSAEncryption
         3d:3c:db:6d:f7:91:db:b4... (略)
-----BEGIN CERTIFICATE REQUEST-----
MIICXDCCAUQCAQAwFzEVMBM... (略)
-----END CERTIFICATE REQUEST-----

署名リクエスト (CSR) をプライベート認証局 (CA) で署名することで、サーバ証明書を発行する。

# openssl ca -create_serial -days 730 -in cisco_csr.pem -extfile cisco_ext.txt
Using configuration from /etc/pki/tls/openssl.cnf
Enter pass phrase for /etc/pki/CA/private/cakey.pem: ******
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number:
            04:25:bd:31:51:c7:c8:5b:86:0d:d2:e1:92:64:8b:1f:a5:dc:b0:07
        Validity
            Not Before: May 14 05:46:57 2023 GMT
            Not After : May 13 05:46:57 2025 GMT
        Subject:
            commonName                = cisco.vm.lab
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment, Key Agreement
            X509v3 Extended Key Usage:
                TLS Web Server Authentication
            X509v3 Subject Alternative Name:
                DNS:cisco.vm.lab, IP Address:10.0.0.254
Certificate is to be certified until May 13 05:46:57 2025 GMT (730 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            04:25:bd:31:51:c7:c8:5b:86:0d:d2:e1:92:64:8b:1f:a5:dc:b0:07
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: O=Private Lab, CN=Private Root CA 01
        Validity
            Not Before: May 14 05:46:57 2023 GMT
            Not After : May 13 05:46:57 2025 GMT
        Subject: CN=cisco.vm.lab
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:
                    00:c1:56:39:32:35:55... (略)
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment, Key Agreement
            X509v3 Extended Key Usage:
                TLS Web Server Authentication
            X509v3 Subject Alternative Name:
                DNS:cisco.vm.lab, IP Address:10.0.0.254
    Signature Algorithm: sha256WithRSAEncryption
         5a:56:29:5f:b4:a0:1c:c7... (略)
-----BEGIN CERTIFICATE-----
MIIELDCCAhSgAwIBAgIUBCW9... (略)
-----END CERTIFICATE-----
Data Base Updated
# copy ../newcerts/0425BD3151C7C85B860DD2E192648B1FA5DCB007.pem cisco_crt.pem

Cisco IOS Router にインポートするために、プライベート認証局 (CA) の証明書、サーバ証明書、RSAの公開鍵・秘密鍵をそれぞれテキスト形式で準備する。RSA の公開鍵は以下の手順にて取り出し可能。

※RSA 公開鍵の取り出し (RSA 秘密鍵からの取り出し)
# openssl rsa -in ./private/cisco_pkcs1_3des.pem -pubout -out cisco_pubkey.pem
Enter pass phrase for private/cisco_pkcs1_3des.pem: *****
writing RSA key

※RSA 公開鍵の取り出し (X509 証明書からの取り出し)
# openssl x509 -noout -in cisco_crt.pem -pubkey -out cisco_pubkey.pem

# cat cisco_pubkey.pem
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQ... (略)
-----END PUBLIC KEY-----

PKCS#12 形式でインポートする場合は、CAの証明書、サーバ証明書、RSA秘密鍵を統合して PKCS#12 形式に変換する。

※ PKCS#12 形式に変換する場合
# openssl pkcs12 -export -in cisco_crt.pem -inkey ./private/cisco_pkcs1_3des.pem -certfile ../cacert.pem -out cisco-chain.pfx
Enter pass phrase for private/cisco_pkcs1_3des.pem: ******
Enter Export Password: ******
Verifying - Enter Export Password: ******

# openssl pkcs12 -info -in cisco-chain.pfx
Enter Import Password: ******
MAC: sha1, Iteration 2048
MAC length: 20, salt length: 8
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
Bag Attributes
    localKeyID: ED 3F E3 F6 D3 DB 70 B6 95 D3 04 3B EB DD 58 7C AF 45 BB B1
subject=CN = cisco.vm.lab

issuer=O = Private Lab, CN = Private Root CA 01

-----BEGIN CERTIFICATE-----
MIIELDCCAhSgAwIBAgIUB... (略)
-----END CERTIFICATE-----
Certificate bag
Bag Attributes: <No Attributes>
subject=O = Private Lab, CN = Private Root CA 01

issuer=O = Private Lab, CN = Private Root CA 01

-----BEGIN CERTIFICATE-----
MIIFVzCCAz+gAwIBAgIUS... (略)
-----END CERTIFICATE-----
PKCS7 Data
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048
Bag Attributes
    localKeyID: ED 3F E3 F6 D3 DB 70 B6 95 D3 04 3B EB DD 58 7C AF 45 BB B1
Key Attributes: <No Attributes>
Enter PEM pass phrase: ******
Verifying - Enter PEM pass phrase: ******
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFHDBOBgkqhkiG9w0BB... (略)
-----END ENCRYPTED PRIVATE KEY-----
CA 証明書【cacert.pem】
サーバ証明書 (PEM)【cisco_crt.pem】
RSA 秘密鍵 (サーバ証明書用)【cisco_pkcs1_3des.pem】
RSA 公開鍵 (サーバ証明書用)【cisco_pubkey.pem】
サーバ証明書チェーン (PKCS#12)【cisco-chain.pfx】
各種ファイル

Cisco IOS (15 系) のコンフィグ例

Cisco IOS に RSA 公開鍵・秘密鍵のインポート (terminal 入力)

Cisco IOS Router にRSA 公開鍵・秘密鍵をインポートする。インポートの際には RSA 秘密鍵のパスワードを入力する。
※RSA 秘密鍵は鍵長 2048bit、 PKCS#1 の 3DES 暗号化形式であること。

Router# configure terminal
Router(config)# crypto key import rsa RSA_CISCO signature terminal ******
% Enter PEM-formatted public Signature key or certificate.
% End with a blank line or "quit" on a line by itself.
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEF... (略) RSA 公開鍵【cisco_pubkey.pem】
-----END PUBLIC KEY-----

% Enter PEM-formatted encrypted private Signature key.
% End with "quit" on a line by itself.
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,4B4A44DC8454A1A7

LL/RMulPGsquVeUSA2xeX9C... (略) RSA 秘密鍵【cisco_pkcs1_3des.pem】
-----END RSA PRIVATE KEY-----
quit
% Key pair import succeeded.


Router(config)# do show crypto key mypubkey rsa
... (略)
% Key pair was generated at: 15:43:56 JST May 14 2023
Key name: RSA_CISCO
Key type: RSA KEYS
 Storage Device: not specified
 Usage: Signature Key
 Key is not exportable.
 Key Data:
  30820122 300D0609 2A864886 ... (略)

Cisco IOS に CA 証明書、サーバ証明書のインポート (terminal 入力)

初めにトラストポイントを定義し、先ほどインポートした RSA キーペアを指定する。その後 CA の証明書をインポートし、続けてサーバ証明書をインポートする。

Router(config)# crypto pki trustpoint private_ca
Router(ca-trustpoint)# enrollment terminal
Router(ca-trustpoint)# rsakeypair RSA_CISCO
Router(ca-trustpoint)# exit
Router(config)# crypto pki authenticate private_ca

Enter the base 64 encoded CA certificate.
End with a blank line or the word "quit" on a line by itself

-----BEGIN CERTIFICATE-----
MIIFVzCCAz+gAwIBAgIUSpcJwCZL... (略) CA 証明書【cacert.pem】
-----END CERTIFICATE-----
quit
Certificate has the following attributes:
       Fingerprint MD5: 3C4F7B0D 4AEA3B2D C247F350 C3B4BDD6
      Fingerprint SHA1: A152B6D6 CBA1396D 94357610 23EBFB49 01AEC49B

% Do you accept this certificate? [yes/no]: yes
Trustpoint CA certificate accepted.
% Certificate successfully imported


Router(config)#do show crypto pki certificates verbose
CA Certificate
  Status: Available
  Version: 3
  Certificate Serial Number (hex): 4A9709C0264BAFADDC36F6AB4E6CBB663C8D1A20
  Certificate Usage: Signature
  Issuer:
    cn=Private Root CA 01
    o=Private Lab
  Subject:
    cn=Private Root CA 01
    o=Private Lab
  Validity Date:
    start date: 17:42:03 JST Mar 21 2023
    end   date: 11:13:47 JST Feb 8 1907
  Subject Key Info:
    Public Key Algorithm: rsaEncryption
    RSA Public Key: (4096 bit)
  Signature Algorithm: SHA256 with RSA Encryption
  Fingerprint MD5: 3C4F7B0D 4AEA3B2D C247F350 C3B4BDD6
  Fingerprint SHA1: A152B6D6 CBA1396D 94357610 23EBFB49 01AEC49B
  X509v3 extensions:
    X509v3 Key Usage: 6000000
      Key Cert Sign
      CRL Signature
    X509v3 Subject Key ID: 4DA08A4C 5B7C4736 142673CB E697D689 74DE0514
    X509v3 Basic Constraints:
        CA: TRUE
    X509v3 Authority Key ID: 4DA08A4C 5B7C4736 142673CB E697D689 74DE0514
    Authority Info Access:
  Associated Trustpoints: private_ca


Router(config)# do show crypt key pubkey-chain rsa
Codes: M - Manually configured, C - Extracted from certificate

Code Usage         IP-Address/VRF         Keyring          Name
C    Signing                              default          cn=Private Root CA 01,o=Private Lab

Router(config)# do show crypt key pubkey-chain rsa name "cn=Private Root CA 01,o=Private Lab"
 Key name: cn=Private Root CA 01,o=Private Lab
 Subject name(X.500 DN name): cn=Private Root CA 01
 o=Private Lab
 Key id: 16
 Serial number: 4A9709C0264BAFADDC36F6AB4E6CBB663C8D1A20
 Usage: Signature Key
 Source: Certificate
 Data:
  30820222 300D0609 2A864886 ... (略)


Router(config)# crypto pki import private_ca certificate

Enter the base 64 encoded certificate.
End with a blank line or the word "quit" on a line by itself

-----BEGIN CERTIFICATE-----
MIIELDCCAhSgAwIBAgIUBCW9MVH... (略) サーバ証明書【cisco_crt.pem】
-----END CERTIFICATE-----

% Router Certificate successfully imported


Router(config)# do show crypto pki certificates verbose
Certificate
  Status: Available
  Version: 3
  Certificate Serial Number (hex): 0425BD3151C7C85B860DD2E192648B1FA5DCB007
  Certificate Usage: General Purpose
  Issuer:
    cn=Private Root CA 01
    o=Private Lab
  Subject:
    Name: cisco.vm.lab
    IP Address: 10.0.0.254
    cn=cisco.vm.lab
  Validity Date:
    start date: 14:46:57 JST May 14 2023
    end   date: 14:46:57 JST May 13 2025
  Subject Key Info:
    Public Key Algorithm: rsaEncryption
    RSA Public Key: (2048 bit)
  Signature Algorithm: SHA256 with RSA Encryption
  Fingerprint MD5: 7643CE21 A71DE89E 5C957FA6 5CD8A7CD
  Fingerprint SHA1: ED3FE3F6 D3DB70B6 95D3043B EBDD587C AF45BBB1
  X509v3 extensions:
    X509v3 Key Usage: 80000000
      Digital Signature
      Key Encipherment
      Key Agreement
    X509v3 Basic Constraints:
        CA: FALSE
    X509v3 Subject Alternative Name:
         cisco.vm.lab
        10.0.0.254
    Authority Info Access:
    Extended Key Usage:
        Server Auth
  Associated Trustpoints: private_ca
  Key Label: RSA_CISCO

CA Certificate
  Status: Available
  Version: 3
  Certificate Serial Number (hex): 4A9709C0264BAFADDC36F6AB4E6CBB663C8D1A20
  Certificate Usage: Signature
  Issuer:
    cn=Private Root CA 01
    o=Private Lab
  Subject:
    cn=Private Root CA 01
    o=Private Lab
  Validity Date:
    start date: 17:42:03 JST Mar 21 2023
    end   date: 11:13:47 JST Feb 8 1907
  Subject Key Info:
    Public Key Algorithm: rsaEncryption
    RSA Public Key: (4096 bit)
  Signature Algorithm: SHA256 with RSA Encryption
  Fingerprint MD5: 3C4F7B0D 4AEA3B2D C247F350 C3B4BDD6
  Fingerprint SHA1: A152B6D6 CBA1396D 94357610 23EBFB49 01AEC49B
  X509v3 extensions:
    X509v3 Key Usage: 6000000
      Key Cert Sign
      CRL Signature
    X509v3 Subject Key ID: 4DA08A4C 5B7C4736 142673CB E697D689 74DE0514
    X509v3 Basic Constraints:
        CA: TRUE
    X509v3 Authority Key ID: 4DA08A4C 5B7C4736 142673CB E697D689 74DE0514
    Authority Info Access:
  Associated Trustpoints: private_ca

Cisco IOS に CA 証明書、サーバ証明書、 RSA 共有鍵・秘密鍵の一括インポート (PKCS#12)

PKCS#12 ファイル【cisco-chain.pfx】により、一括でインポートする場合は以下の通り。この場合は RSA キーペアのラベル名が指定した TrustPoint 【private_ca】と同じになることに注意する。
※事前に【TFTPd64】等でTFTPサーバを立ち上げてファイルの転送を可能にしておく。

Router# configure terminal
Router(config)# crypto pki import private_ca pkcs12 tftp: password ******
% Importing pkcs12...
Address or name of remote host []? 10.0.0.1
Source filename [private_ca]? cisco-chain.pfx
Reading file from tftp://10.0.0.1/cisco-chain.pfx
Loading cisco-chain.pfx from 10.0.0.1 (via Vlan100): !
[OK - 4093 bytes]

CRYPTO_PKI: Imported PKCS12 file successfully.


Router(config)# do show crypto key mypubkey rsa
% Key pair was generated at: 05:31:04 JST May 14 2023
Key name: private_ca
Key type: RSA KEYS
 Storage Device: not specified
 Usage: General Purpose Key
 Key is not exportable.
 Key Data:
  30820122 300D0609 2A864886 ... (略)

Cisco IOS の SSL VPN 設定 (User/Password 認証)

SSL-VPN の設定を投入する。 VPN 接続時の認証はローカルにて (User/Password 認証)を行う。
以下は主に関連する設定を抜粋。

Router(config)# aaa new-model
Router(config)# aaa authentication login SSLVPN_AAA local
Router(config)# username user01 secret password123

Router(config)# interface Loopback0
Router(config-if)# ip address 10.10.0.1 255.255.255.255
Router(config-if)# exit

Router(config)# interface Virtual-Template1
Router(config-if)# ip unnumbered Loopback0
Router(config-if)# exit

Router(config)# ip local pool SSLVPN_POOL 192.168.0.224 192.168.0.239
Router(config)# access-list 10 permit 192.168.10.0 0.0.0.255
Router(config)# access-list 10 permit 192.168.20.0 0.0.0.255

Router(config)# webvpn gateway SSLVPN_GW
Router(config-webvpn-gateway)# ip address 10.0.0.254 port 443
Router(config-webvpn-gateway)# ssl trustpoint private_ca
Router(config-webvpn-gateway)# inservice
Router(config-webvpn-gateway)# exit

Router(config)# webvpn context SSLVPN_CONTEXT
Router(config-webvpn-context)# virtual-template 1
Router(config-webvpn-context)# aaa authentication list SSLVPN_AAA
Router(config-webvpn-context)# gateway SSLVPN_GW
Router(config-webvpn-context)# ssl authenticate verify all
Router(config-webvpn-context)# inservice
Router(config-webvpn-context)#
Router(config-webvpn-context)# policy group SSLVPN_POLICY
Router(config-webvpn-group)# functions svc-enabled
Router(config-webvpn-group)# timeout idle 7200
Router(config-webvpn-group)# svc address-pool "SSLVPN_POOL" netmask 255.255.255.0
Router(config-webvpn-group)# svc split include acl 10
Router(config-webvpn-group)# default-group-policy SSLVPN_POLICY
Router(config-webvpn-context)# exit

以下、全体の設定表示(抜粋)

aaa new-model
aaa authentication login SSLVPN_AAA local
!
crypto pki trustpoint private_ca
 enrollment terminal
 revocation-check crl
 rsakeypair RSA_CISCO
!
crypto pki certificate chain private_ca
 certificate 0425BD3151C7C85B860DD2E192648B1FA5DCB007
  3082042C 30820214 A0030201 ... (略)
        quit
 certificate ca 4A9709C0264BAFADDC36F6AB4E6CBB663C8D1A20
  30820557 3082033F A0030201 ... (略)
        quit
!
username user01 secret password123
!
vlan 10,20,30,100
!
interface Loopback0
 ip address 10.10.0.1 255.255.255.255
!
interface FastEthernet0
 description WAN
 switchport access vlan 100
 no ip address
!
interface FastEthernet1
 description LAN
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 10,20,30
 switchport mode trunk
 no ip address
!
interface Virtual-Template1
 ip unnumbered Loopback0
!
interface Vlan10
 ip address 192.168.0.254 255.255.255.0
 ip nat inside
 ip virtual-reassembly in
!
interface Vlan20
 ip address 192.168.10.254 255.255.255.0
 ip nat inside
 ip virtual-reassembly in
!
interface Vlan30
 ip address 192.168.20.254 255.255.255.0
 ip nat inside
 ip virtual-reassembly in
!
interface Vlan100
 ip address 10.0.0.254 255.255.255.0
 ip nat outside
 ip virtual-reassembly in
 ip ospf priority 10
 ip ospf 1 area 0.0.0.0
!
router ospf 1
!
ip local pool SSLVPN_POOL 192.168.0.224 192.168.0.239
no ip http secure-server
!
ip nat inside source list 1 interface Vlan100 overload
access-list 1 permit 192.168.0.0 0.0.31.255
access-list 10 permit 192.168.10.0 0.0.0.255
access-list 10 permit 192.168.20.0 0.0.0.255

webvpn gateway SSLVPN_GW
 ip address 10.0.0.254 port 443
 ssl trustpoint private_ca
 inservice
!
webvpn context SSLVPN_CONTEXT
 virtual-template 1
 aaa authentication list SSLVPN_AAA
 gateway SSLVPN_GW
 !
 ssl authenticate verify all
 inservice
 !
 policy group SSLVPN_POLICY
   functions svc-enabled
   timeout idle 7200
   svc address-pool "SSLVPN_POOL" netmask 255.255.255.0
   svc split include acl 10
 default-group-policy SSLVPN_POLICY
!
end

Windows 端末からの SSL/TLS VPN 接続 (User/Password 認証)

VPN 接続先の名前解決ができること。できない場合は、 hosts ファイルを編集する。

Windows 端末にプライベート認証局 (CA) をインポート

サーバ証明書がプライベート認証局 (CA) で発行された証明書であるため、VPN 接続する際に表示されるサーバ証明書が信頼されず、警告が表示される。そのため、 CA の証明書を信頼されたルート証明書としてインポートする。
設定方法は【Windows 端末にプライベート認証局 (CA) をインポート】を参照

OpenConnect-GUI VPN Client の接続

OpenConnect-GUI VPN Client を起動し、【New profile (advanced)】を選択する。以下のように適切に入力し【Save】する。パスワードは接続時にプロンプトが表示される。

Gatewayhttps://cisco.vm.lab/
Usernameuser01
VPN protocolCisco AnyConnect
OpenConnect-GUI VPN Client の設定

【参考URL】
Public Key Infrastructure Configuration Guide, Cisco IOS Release 15MT
CSM-SSL, can’t import certificate
リモート アクセス SSL VPN(Cisco AnyConnect)を設定する
AnyConnect により、CLIを使用したCisco IOSルータヘッドエンドの基本的なSSL VPNの設定
Key usage extensions and extended key usage