系統環境:OpenWrt 19.07.1
硬件:極路由1S
一、路由器刷機
在OpenWrt官方網站選擇適合自己路由器的固件,然后刷機。
我用的極路由1s的芯片是MT7620,型號為HC5661,所以選擇如下固件:
二、安裝openconnect
putty連接路由器,輸入以下命令:
opkg update opkg install luci-proto-openconnect openconnect
三、openconnect設置
1、OpenWrt 官方的設置說明:

openconnect2.PNG
2、在interface中建立一個新接口,根據官方說明,最好命名為ocvpn,協議選擇OpenConnect(CISCO AnyConnect)。

openconnect3.PNG
3、OpenWrt 圖形界面設置如下:

openconnect1.PNG
注:如果你填寫的是用戶名和密碼,則不需要填寫用戶證書和用戶密鑰。
四、附加說明:
1、VPN server sha1 是服務器公開的驗證信息,可以通過以下命令獲取:
在linux終端中輸入以下命令(用你自己的vpn server地址和端口取代vpn.example.com:443):
openssl s_client -connect vpn.example.com:443 -showcerts 2>/dev/null </dev/null | awk '/-----BEGIN/,/-----END/ { print $0 }' | openssl x509 -noout -fingerprint -sha1 | sed 's/Fingerprint=//' | sed 's/://g'
2、你可能需要用到證書分離:
p12(或者pfx)文件里一般存放有CA的根證書,用戶證書和用戶的私鑰
假設我們有一個test.p12文件,在安裝了openssl的linux終端上執行以下命令:
提取用戶證書:
openssl pkcs12 -in test.p12 -clcerts -nokeys -out cert.pem
提取私鑰:
openssl pkcs12 -in test.p12 -nocerts -out key.pem
根據OpenWrt的要求,必須清除秘鑰中的密碼
openssl rsa -in key.pem -out newkey.pem
3、將pem文件用SCP程序上傳到路由器的/etc/openconnect目錄下,官方要求pem文件要命名為:user-cert-vpn-ocvpn.pem和user-key-vpn-ocvpn.pem。
或者直接將其base64編碼(用記事本打開pem文件即可獲取)粘貼到圖片所示的輸入框中。