SSL VPN 数字证书认证
SSL VPN 数字证书认证
网络需求
在外移动办公的工作人员需要通过 SSL VPN 并且使用数字证书认证的方式,拨入到公司内网来对内网主机进行访问。
##网络拓扑

配置步骤
使用 FortiAuthenticator 为 FGT - BJ 和终端颁发证书
FortiAuthenticator 可以做为证书服务器,RootCA 是已创建好的根证书,这里使用 RootCA 为这两台 FortiGate 签发证书。(也可以使用其他证书服务器)
1.为 FGT - BJ 颁发证书
为 FGT - BJ 创建证书。选择“End Entities”-->"User",点击“Create New”,输入证书相关信息,并点击完成。


点击“Export Key and Cert”导出 FGTBJ 证书的私钥和公钥。

输入一个密码保护私钥

下载证书

2.为终端颁发证书
为终端颁发证书和上述步骤是一样的。


FortiGate 导入证书
将根证书 RootCA.crt 和证书 FGTBJ.p12 导入到 FGT_BJ。
在数字证书认证中,通信双方使用 CA 证书进行数字证书合法性验证,双方各有自己的公钥(网络上传输)和私钥(本地存储)。发送方对报文进行 Hash 计算,并用自己的私钥对报文计算结果进行加密,生成数字签名。接收方使用发送方的公钥对数字签名进行解密,并对报文进行 Hash 计算,判断计算结果与解密后的结果是否相同。如果相同,则认证通过;否则认证失败。

导入 CA 证书
选择“系统管理”-->“证书”,点击“Create/Import”,选择 CA 证书。


查看导入的 CA 证书

导入本地证书
选择“系统管理”-->“证书”,点击“Create/Import”,选择“证书”。

点击导入证书

输入证书的密码,点击“创建”

提示证书已成功导入

查看导入的本地证书

终端导入证书
将根证书 RootCA.crt 和证书 user1.p12 导入到终端。

导入根证书 RootCA.crt
双击 RootCA.crt,点击“安装证书”。


证书存入“受信任的根证书颁发机构”


导入个人证书 user1.p12
双击 user1.p12,然后安装证书

输入证书的密码

证书存入“个人”


配置 SSL VPN
1.基本配置
配置接口 IP 和路由


2.创建用户,并将用户加入到用户组。


3.配置 SSL - VPN 门户


4.配置 SSLVPN
服务器证书选择“FGTBJ”,FortiGate 会使用 FGTBJ 证书与终端交互;勾选“需要客户端证书”,那么认证过程中 FortiGate 会要求客户端提供证书。

5.创建策略
当客户端 SSLVPN 拨号成功后,将会使用获取的地址(10.200.1.10-10.200.1.200)访问内部主机,因此内部网络需要增加到 10.200.1.0/24 网段的回程路由指向 FortiGate 或者 可以在策略中开启 NAT,那么源地址将被转换为 FortiGate 接口地址,则不用考虑回程路由。
配置 FortiClient
选择“Remote Access”,点击“配置 VPN”。

选择 SSL VPN,设置连接名,远程网关,SSLVPN 端口,用户名以及选择终端证书,然后点击保存。

配置完成。

FortiClient 拨号测试
输入密码,点击连接。

查看终端获取到的路由

访问内网主机 HTTPS,SSH,RDP 服务都正常

FortiGate 查看 SSLVPN 连接

# get vpn ssl monitor SSL-VPN Login Users: Index User Group Auth Type Timeout Auth-Timeout From HTTP in/out HTTPS in/out Two-factor Auth 0 user1 SSLVPN-Group 1(1) 189 28625 10.1.1.5 0/0 0/0 0 SSL-VPN sessions: Index User Group Source IP Duration I/O Bytes Tunnel/Dest IP 0 user1 SSLVPN-Group 10.1.1.5 175 27388/14075 10.200.1.10
浏览器拨号测试
PC1 使用 chrome 访问 SSLVPN,在弹出的证书选择框中,使用 user1 证书。

跳转到输入账号密码界面。

登录成功。

访问 webserver 成功。

FortiGate 查看 SSLVPN 用户状态。

# get vpn ssl monitor SSL-VPN Login Users: Index User Group Auth Type Timeout Auth-Timeout From HTTP in/out HTTPS in/out Two-factor Auth 0 user1 SSLVPN-Group 1(1) 289 28788 10.1.1.5 0/0 0/0 0 SSL-VPN sessions: Index User Group Source IP Duration I/O Bytes Tunnel/Dest IP