此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍如何将思科自适应安全设备(ASA)设置为证书颁发机构(CA)服务器和Cisco AnyConnect安全移动客户端的安全套接字层(SSL)网关。
Cisco 建议您了解以下主题:
ASDM 7.3或更高版本
本文档中的信息基于以下软件和硬件版本:
根据兼容性图表运行受支持的操作系统的电脑。
注意:从思科软件下载(仅限注册的客户)下载AnyConnect VPN客户端软件包(anyconnect-win*.pkg)。将 AnyConnect VPN Client 复制到 ASA 的闪存中以供远程用户计算机下载,以便建立与 ASA 的 SSL VPN 连接。有关 ASA 配置指南的详细信息,请参阅安装 AnyConnect 客户端部分。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
ASA上的证书颁发机构提供以下功能:
准则和限制
本节介绍如何将Cisco ASA配置为本地CA服务器。
注意:要获取有关本部分中所使用命令的更多信息,可使用命令查找工具(仅限已注册客户)。
等效的 CLI 命令:
ASA(config)# crypto ca server ASA(config-ca-server)# issuer-name CN=ASA.local ASA(config-ca-server)# subject-name-default CN=ASA.local ASA(config-ca-server)# lifetime certificate 365 ASA(config-ca-server)# lifetime ca-certificate 1095 ASA(config-ca-server)# passphrase cisco123 ASA(config-ca-server)# no shutdown % Some server settings cannot be changed after CA certificate generation. Keypair generation process begin. Please wait... Completed generation of the certificate and keypair... Archiving certificate and keypair to storage... Complete
以下是可以在本地CA服务器配置下配置的其他字段。
CRL分发点URL | 这是ASA上的CRL位置。 默认位置是http://hostname.domain/+CSCOCA+/asa_ca.crl,但可以修改url。 |
Publish-CRL接口和端口 | 要使CRL可用于在给定接口和端口上进行HTTP下载,请从下拉列表中选择publish-CRL接口。然后输入端口号,它可以是1到65535之间的任意端口号。默认端口号为TCP端口80。 |
CRL 生命期 | 每次吊销或取消吊销用户证书时,本地CA都会更新并重新颁发CRL,但如果没有吊销更改,则会自动重新颁发一次CRL生存期,即每个CRL生存期,即在本地CA配置期间使用lifetime crlcommand指定的时间段。如果未指定CRL生存期,则默认时间段为六小时。 |
数据库存储位置 | ASA使用本地CA数据库访问和实施用户信息、颁发的证书和撤销列表。默认情况下,此数据库驻留在本地闪存中,也可以配置为驻留在已装载并可供ASA访问的外部文件系统上。 |
默认使用者名称 | 输入默认使用者(DN字符串)以附加到已颁发证书上的用户名。此列表中提供了允许的DN属性: ·CN(公用名)SN(姓) ·O(组织名称) ·L(地区) ·C(国家/地区) ·OU(组织单位) ·EA(电子邮件地址) ·ST(州/省) ·T(标题) |
登记期间 | 设置注册时间限制(以小时为单位),在此时间段内用户可以从ASA检索PKCS12文件。 默认值为 24 小时。 注意:如果注册期限在用户检索包含用户证书的PKCS12文件之前到期,则不允许注册。 |
一次性密码过期 | 定义OTP对用户注册有效的小时数。此时间段从允许用户注册时开始。默认值为72小时。 |
证书过期提醒 | 指定证书到期之前向证书所有者发送重新注册的初始提醒的天数。 |
指定用户详细信息,如本图所示,包括用户名、电子邮件ID和主题名称。
等效的 CLI 命令:
ASA(config)# crypto ca server user-db add user1 dn CN=user1,OU=TAC email user1@cisco.com
验证用户状态的CLI:
ASA# show crypto ca server user-db username: user1 email: user1@cisco.com dn: CN=user1,OU=TAC allowed: 19:03:11 UTC Thu Jan 14 2016 notified: 1 times enrollment status: Allowed to Enroll
向OTP发送邮件(需要在CA服务器配置下配置SMTP服务器和邮件设置)。
或者
直接查看OTP并通过点击View/Re-generate OTP与用户共享。这也可以用于重新生成OTP。
等效的 CLI 命令:
!! Email the OTP to the user
ASA# crypto ca server user-db allow user1 email-otp
!! Display the OTP on terminal
ASA# crypto ca server user-db allow user1 display-otp
Username: user1
OTP: 18D14F39C8F3DD84
Enrollment Allowed Until: 14:18:34 UTC Tue Jan 12 2016
!! Enable web-access on the "Internet" interface of the ASA
ASA(config)# webvpn ASA(config-webvpn)#enable Internet
https://IP/FQDN>/+CSCOCA+/enroll.html
用于安装客户端证书的口令与之前收到的OTP相同。
AnyConnect配置向导/CLI可用于配置AnyConnect安全移动客户端。在继续之前,请确保AnyConnect客户端软件包已上传到ASA防火墙的闪存/磁盘。
完成以下步骤,以通过配置向导配置 AnyConnect Secure Mobility Client。
2. 输入连接配置文件名称,从VPN Access Interface下拉菜单中选择将终止VPN的接口,然后单击Next。
3. 选中SSL复选框以启用安全套接字层(SSL)。设备证书可以是受信任第三方证书颁发机构 (CA) 颁发的证书(例如 Verisign 或 Entrust),也可以是自签名证书。如果 ASA 上已安装证书,则可以通过下拉菜单选择证书。
注意:此证书是ASA将向SSL客户端提供的服务器端证书。如果ASA上当前未安装任何必须生成自签名证书的服务器证书,然后单击Manage。
要安装第三方证书,请完成ASA 8.x手动安装第三方供应商证书以与WebVPN配置示例Cisco文档一起使用中描述的步骤。
4. 单击Add,以便从ASA的本地驱动器或闪存/磁盘添加AnyConnect客户端软件包(.pkg文件)。
单击Browse Flash,从闪存驱动器添加映像,或单击Upload从主机的本地驱动器添加映像。
5. 用户身份验证可以通过身份验证、授权和记帐(AAA)服务器组完成。如果用户已配置,则选择LOCAL,然后单击Next。否则,请向本地用户数据库添加用户,然后单击下一步。
注意:在本示例中,配置了LOCAL身份验证,这意味着将使用ASA上的本地用户数据库进行身份验证。
6. 确保已配置VPN客户端的地址池。如果已配置ip池,请从下拉菜单中选择该池。否则,请单击新建以进行配置。完成后单击Next。
7. 或者,在DNS和Domain Name字段中配置域名系统(DNS)服务器和DN,然后单击Next。
8. 确保客户端和内部子网之间的流量必须免于任何动态网络地址转换(NAT)。启用Exempt VPN traffic from network address translation复选框并配置用于免除的LAN接口。此外,请指定必须免除的本地网络,然后单击下一步。
9. 单击下一步。
10. 最后一步显示汇总,单击完成完成设置。
AnyConnect 客户端配置现已完成。但是,当您通过配置向导配置AnyConnect时,默认情况下它将身份验证方法配置为AAA。要通过证书和用户名/密码对客户端进行身份验证,必须将隧道组(连接配置文件)配置为使用证书和AAA作为身份验证方法。
!! *****Configure the VPN Pool*****
ip local pool VPN_Pool 10.10.10.1-10.10.10.200 mask 255.255.255.0 !! *****Configure Address Objects for VPN Pool and Local Network*****
object network NETWORK_OBJ_10.10.10.0_24 subnet 10.10.10.0 255.255.255.0
object network NETWORK_OBJ_192.168.10.0_24 subnet 192.168.10.0 255.255.255.0 exit !! *****Configure WebVPN*****
webvpn enable Internet anyconnect image disk0:/anyconnect-win-4.2.00096-k9.pkg 1 anyconnect enable tunnel-group-list enable exit !! *****Configure User*****
username user1 password mbO2jYs13AXlIAGa encrypted privilege 2 !! *****Configure Group-Policy*****
group-policy GroupPolicy_SSL_GRP internal group-policy GroupPolicy_SSL_GRP attributes vpn-tunnel-protocol ssl-client dns-server none wins-server none default-domain none exit !! *****Configure Tunnel-Group*****
tunnel-group SSL_GRP type remote-access tunnel-group SSL_GRP general-attributes authentication-server-group LOCAL default-group-policy GroupPolicy_SSL_GRP address-pool VPN_Pool tunnel-group SSL_GRP webvpn-attributes authentication aaa certificate group-alias SSL_GRP enable exit !! *****Configure NAT-Exempt Policy*****
nat (Inside,Internet) 1 source static NETWORK_OBJ_192.168.10.0_24 NETWORK_OBJ_192.168.10.0_24 destination static NETWORK_OBJ_10.10.10.0_24 NETWORK_OBJ_10.10.10.0_24 no-proxy-arp route-lookup
使用本部分可确认配置能否正常运行。
注意:输出解释器工具(仅限注册客户)支持某些show命令。使用输出解释器工具来查看 show 命令输出的分析。
确保已启用CA服务器。
show crypto ca server
ASA(config)# show crypto ca server Certificate Server LOCAL-CA-SERVER:
Status: enabled
State: enabled
Server's configuration is locked (enter "shutdown" to unlock it)
Issuer name: CN=ASA.local
CA certificate fingerprint/thumbprint: (MD5)
32e868b9 351a1b07 4b59cce5 704d6615
CA certificate fingerprint/thumbprint: (SHA1)
6136511b 14aa1bbe 334c2659 ae7015a9 170a7c4d
Last certificate issued serial number: 0x1
CA certificate expiration timer: 19:25:42 UTC Jan 8 2019
CRL NextUpdate timer: 01:25:42 UTC Jan 10 2016
Current primary storage dir: flash:/LOCAL-CA-SERVER/
Auto-Rollover configured, overlap period 30 days
Autorollover timer: 19:25:42 UTC Dec 9 2018
WARNING: Configuration has been modified and needs to be saved!!
确保添加后允许用户注册:
*****Before Enrollment***** ASA# show crypto ca server user-db username: user1 email: user1@cisco.com dn: CN=user1,OU=TAC allowed: 19:03:11 UTC Thu Jan 14 2016 notified: 1 times enrollment status: Allowed to Enroll >>> Shows the status "Allowed to Enroll" *****After Enrollment***** username: user1 email: user1@cisco.com dn: CN=user1,OU=TAC allowed: 19:05:14 UTC Thu Jan 14 2016 notified: 1 times enrollment status: Enrolled, Certificate valid until 19:18:30 UTC Tue Jan 10 2017, Renewal: Allowed
您可以通过CLI或ASDM检查anyconnect连接的详细信息。
通过CLI
show vpn-sessiondb detail anyconnect
ASA# show vpn-sessiondb detail anyconnect Session Type: AnyConnect Detailed Username : user1 Index : 1 Assigned IP : 10.10.10.1 Public IP : 10.142.189.181 Protocol : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel License : AnyConnect Essentials Encryption : AnyConnect-Parent: (1)none SSL-Tunnel: (1)RC4 DTLS-Tunnel: (1)AES128 Hashing : AnyConnect-Parent: (1)none SSL-Tunnel: (1)SHA1 DTLS-Tunnel: (1)SHA1 Bytes Tx : 13822 Bytes Rx : 13299 Pkts Tx : 10 Pkts Rx : 137 Pkts Tx Drop : 0 Pkts Rx Drop : 0 Group Policy : GroupPolicy_SSL_GRP Tunnel Group : SSL_GRP Login Time : 19:19:10 UTC Mon Jan 11 2016 Duration : 0h:00m:47s Inactivity : 0h:00m:00s NAC Result : Unknown VLAN Mapping : N/A VLAN : none AnyConnect-Parent Tunnels: 1 SSL-Tunnel Tunnels: 1 DTLS-Tunnel Tunnels: 1 AnyConnect-Parent: Tunnel ID : 1.1 Public IP : 10.142.189.181 Encryption : none Hashing : none TCP Src Port : 52442 TCP Dst Port : 443 Auth Mode : Certificate and userPassword Idle Time Out: 30 Minutes Idle TO Left : 29 Minutes Client OS : Windows Client Type : AnyConnect Client Ver : Cisco AnyConnect VPN Agent for Windows 4.2.00096 Bytes Tx : 6911 Bytes Rx : 768 Pkts Tx : 5 Pkts Rx : 1 Pkts Tx Drop : 0 Pkts Rx Drop : 0 SSL-Tunnel: Tunnel ID : 1.2 Assigned IP : 10.10.10.1 Public IP : 10.142.189.181 Encryption : RC4 Hashing : SHA1 Encapsulation: TLSv1.0 TCP Src Port : 52443 TCP Dst Port : 443 Auth Mode : Certificate and userPassword Idle Time Out: 30 Minutes Idle TO Left : 29 Minutes Client OS : Windows Client Type : SSL VPN Client Client Ver : Cisco AnyConnect VPN Agent for Windows 4.2.00096 Bytes Tx : 6911 Bytes Rx : 152 Pkts Tx : 5 Pkts Rx : 2 Pkts Tx Drop : 0 Pkts Rx Drop : 0 DTLS-Tunnel: Tunnel ID : 1.3 Assigned IP : 10.10.10.1 Public IP : 10.142.189.181 Encryption : AES128 Hashing : SHA1 Encapsulation: DTLSv1.0 UDP Src Port : 59167 UDP Dst Port : 443 Auth Mode : Certificate and userPassword Idle Time Out: 30 Minutes Idle TO Left : 30 Minutes Client OS : Windows Client Type : DTLS VPN Client Client Ver : Cisco AnyConnect VPN Agent for Windows 4.2.00096 Bytes Tx : 0 Bytes Rx : 12907 Pkts Tx : 0 Pkts Rx : 142 Pkts Tx Drop : 0 Pkts Rx Drop : 0 NAC: Reval Int (T): 0 Seconds Reval Left(T): 0 Seconds SQ Int (T) : 0 Seconds EoU Age(T) : 51 Seconds Hold Left (T): 0 Seconds Posture Token: Redirect URL :
通过ASDM
详细信息-提供有关会话的详细信息
注销-从头端手动注销用户
Ping -从头端ping AnyConnect客户端
本部分提供了可用于对配置进行故障排除的信息。
注意:使用debug命令之前,请参阅有关Debug命令的重要信息。
注意:在ASA上,您可以设置各种调试级别;默认情况下,使用级别1。如果更改调试级别,调试的冗余可能会增加。请谨慎执行此操作,尤其是在生产环境中。
使用no shut命令启用CA服务器时,将显示此调试输出。
ASA# debug crypto ca 255 ASA# debug crypto ca server 255 ASA# debug crypto ca message 255 ASA# debug crypto ca transaction 255 CRYPTO_CS: input signal enqueued: no shut >>>>> Command issued to Enable the CA server Crypto CS thread wakes up! CRYPTO_CS: enter FSM: input state disabled, input signal no shut CRYPTO_CS: starting enabling checks CRYPTO_CS: found existing serial file. CRYPTO_CS: started CA cert timer, expiration time is 17:53:33 UTC Jan 13 2019 CRYPTO_CS: Using existing trustpoint 'LOCAL-CA-SERVER' and CA certificate CRYPTO_CS: file opened: flash:/LOCAL-CA-SERVER/LOCAL-CA-SERVER.ser CRYPTO_CS: DB version 1 CRYPTO_CS: last issued serial number is 0x4 CRYPTO_CS: closed ser file CRYPTO_CS: file opened: flash:/LOCAL-CA-SERVER/LOCAL-CA-SERVER.crl CRYPTO_CS: CRL file LOCAL-CA-SERVER.crl exists. CRYPTO_CS: Read 220 bytes from crl file. CRYPTO_CS: closed crl file CRYPTO_PKI: Storage context locked by thread Crypto CA Server CRYPTO_PKI: inserting CRL CRYPTO_PKI: set CRL update timer with delay: 20250 CRYPTO_PKI: the current device time: 18:05:17 UTC Jan 16 2016 CRYPTO_PKI: the last CRL update time: 17:42:47 UTC Jan 16 2016 CRYPTO_PKI: the next CRL update time: 23:42:47 UTC Jan 16 2016 CRYPTO_PKI: CRL cache delay being set to: 20250000 CRYPTO_PKI: Storage context released by thread Crypto CA Server CRYPTO_CS: Inserted Local CA CRL into cache! CRYPTO_CS: shadow not configured; look for shadow cert CRYPTO_CS: failed to find shadow cert in the db CRYPTO_CS: set shadow generation timer CRYPTO_CS: shadow generation timer has been set CRYPTO_CS: Enabled CS. CRYPTO_CS: exit FSM: new state enabled CRYPTO_CS: cs config has been locked. Crypto CS thread sleeps!
此调试输出显示客户端的注册
ASA# debug crypto ca 255 ASA# debug crypto ca server 255 ASA# debug crypto ca message 255 ASA# debug crypto ca transaction 255 CRYPTO_CS: writing serial number 0x2. CRYPTO_CS: file opened: flash:/LOCAL-CA-SERVER/LOCAL-CA-SERVER.ser CRYPTO_CS: Writing 32 bytes to ser file CRYPTO_CS: Generated and saving a PKCS12 file for user user1 at flash:/LOCAL-CA-SERVER/user1.p12
在以下情况下,客户端的注册可能会失败:
场景 1.
等效的 CLI 命令:
ASA(config)# show crypto ca server user-db username: user1 email: user1@cisco.com dn: CN=user1,OU=TAC allowed: <not allowed> notified: 0 times enrollment status: Not Allowed to Enroll
场景 2:
在以下情况下,客户端可能无法访问ASA的注册门户:
ASA(config)# show run webvpn webvpn port 4433 enable Internet no anyconnect-essentials anyconnect image disk0:/anyconnect-win-4.2.00096-k9.pkg 1
anyconnect enable
tunnel-group-list enable
场景 3:
ASA(config)# debug crypto ca 255 ASA(config)# debug crypto ca server 255 ASA(config)# debug crypto ca message 255 ASA(config)# debug crypto ca transaction 255 ASA(config)# debug crypto ca trustpool 255 CRYPTO_CS: writing serial number 0x2. CRYPTO_CS: file opened: flash:/LOCAL-CA-SERVER/LOCAL-CA-SERVER.ser CRYPTO_CS: Writing 32 bytes to ser file CRYPTO_CS: Generated and saving a PKCS12 file for user user1 at flash:/LOCAL-CA-SERVER/user1.p12 CRYPTO_CS: Failed to write to opened PKCS12 file for user user1, fd: 0, status: -1. CRYPTO_CS: Failed to generate pkcs12 file for user user1 status: -1. CRYPTO_CS: Failed to process enrollment in-line for user user1. status: -1
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
03-Aug-2016 |
初始版本 |