安装配置 AnyConnect 证书登录

终于受不了每次科学上网都要输一遍密码了。于是下决心再折腾一遍 AnyConnect 的证书登录。最后,写了个脚本以便下次『一键安装』。

因为以前搞定了密码登录,所以安装 ocserv 和客户端 AnyConnect 的步骤就可以省了。

好消息是,CentOS 7 上已经有 ocserv 的安装源了。所以,一般只需要执行下面的命令就可以安装 ocserv 了。

$ sudo yum install ocserv

这里有几篇参考文章:

下面的内容主要涉及服务端的证书生成和配置。

证书配置非常繁琐,主要是因为概念理不清楚,密钥、模板、签名、密码、证书、PKCS12 等等,太多概念需要理解;然后,操作步骤太多、参数繁杂。

本文并不打算讨论以上种种。这些都由下面的『一键安装脚本』搞定。脚本内容也不在此详细解释,只略记一下脚本的使用步骤。

  1. 下载脚本/etc/ocserv 或你服务器上 ocserv 服务的配置文件路径下;
  2. 给脚本加上可执行权限:

    $ chmod +x setup-anyconnect.sh
    
  3. 执行:

    $ ./setup-anyconnect.sh for soli on solicomo.com
    

    其中 soli 改成你自己想要的名字,solicomo.com 改成你服务器的域名或者 IP 。

    可以重复执行此命令给多个用户生成证书。只需改一下 soli 为其他名字即可。

  4. 配置 ocserv

    以上脚本会在当前路径下生成一个 pki 目录,下面有几个子目录和文件。

    假设当前路径为 /etc/ocserv,打开 ocserv 的配置文件 ocserv.conf 并修改如下配置项:

    server-cert = /etc/ocserv/pki/server/server-cert.pem
    server-key = /etc/ocserv/pki/server/server-key.pem
    ca-cert = /etc/ocserv/pki/ca/ca-cert.pem
    crl = /etc/ocserv/pki/server/crl.pem
    

    和证书相关的就这四项,其他配置项及防火墙配置请参见上面的『参考文章』。

  5. 下载并安装客户端证书

    pki/client/soli/soli-cert.p12 (其中的两个 soli 换成你自己的名字)通过邮件或其他方式发送到手机,并安装。

    这一步『参考文章』里也有说明,网上也很容易搜到如何把服务证书设置为『信任』。

至此,AnyConnect 的证书登录就应该可用了。(如果还不行,可以在文后留言交流。)

还有个问题就是,如果这台服务器上的 ocserv 有很多人共用,并且某天想把其中的一个人剔除出去,该怎么办呢?

这个脚本也能帮你搞定。假设你不再想为 luna 这个用户提供服务了。只需执行以下命令:

$ ./setup-anyconnect.sh revoked luna on solicomo.com

同样的,把 solicomo.com 替换成你自己的服务器域名或 IP 。然后就等着 ocserv 重新加载配置文件即可。

Creative Commons License Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution 4.0 International license .