在 Linux 上安装 AnyConnect
在 Linux 上安装 AnyConnect 比想象中的还要复杂很多。

AnyConnect 在 Linux 上的安装并不是很方便,这篇文章将会介绍如何在 Linux 上安装以及配置 AnyConnect,以及一些常见问题的解决方法。

安装 AnyConnect

您可以从任意源下载并安装 AnyConnect,以 root 权限执行压缩包中的 vpn_install 可执行程序即可安装 AnyConnect。

解决证书错误问题

出于某些原因,AnyConnect 的默认 CA 证书库完全无法使用,所以我们用 Linux 自带的 CA 证书库来代替 AnyConnect 的证书库。

1
2
sudo mv /opt/.cisco/certificates/ca ca.backup  # 备份证书库
sudo ln -sf /etc/ssl/certs/ /opt/.cisco/certificates/ca  # 将系统证书库软链接到 AnyConnect

导入用户证书

Linux 上的 AnyConnect 无法读取 PKCS12 或 P12 证书,并且 Linux 也没有证书库,所以我们需要将私钥和公钥从 P12 证书中提取出来并放置在 AnyConnect 目录下。注意公钥和私钥名称必须相同, 如果公钥名称是 user.pem,那么私钥名称必须是 user.key

从 PKCS12 证书中提取公钥

其中 k4yt3x@flexio.org.p12 为输入 P12 证书,/opt/.cisco/certificates/client/k4yt3x@flexio.org.pem 为输出公钥。

1
openssl pkcs12 -in k4yt3x@flexio.org.p12 -out /opt/.cisco/certificates/client/k4yt3x@flexio.org.pem -nokeys

从 PKCS12 证书中提取私钥

其中 k4yt3x@flexio.org.p12 为输入 P12 证书,/opt/.cisco/certificates/client/private/k4yt3x@flexio.org.key 为输出私钥。

1
openssl pkcs12 -in k4yt3x@flexio.org.p12 -out /opt/.cisco/certificates/client/private/k4yt3x@flexio.org.key -nocerts -nodes

最后修改于 2019-04-09