為什麼每次使用 AnyConnect 連線都會出現錯誤訊息「Connection attempt has failed due to server certificate problem.」?

當您在 GNU/Linux 環境下嘗試啟動 AnyConnect 進行 VPN 連線時,如出現以下畫面,您將無法連接至 VPN 伺服器:

此問題在於 AnyConnect 因路徑問題缺少部份檔案而無法正常運作,但您也許已經安裝必要的套件或檔案。建議可以使用以下方式進行除錯與修正:

1. 使用 strace 指令檢查缺少的檔案

# strace /opt/cisco/vpn/bin/vpn status 2>&1 | grep such | grep "/usr/lib"
open("/usr/lib/libsmime3.so", O_RDONLY) = -1 ENOENT (No such file or directory)

2. 使用 locate 指令找尋缺少的檔案所在

# locate libsmime3.so
/lib/libsmime3.so

3. 使用 ln 指令修正所需檔案的路徑

# ln -s /lib/libnss3.so /usr/lib/
# ln -s /lib/libnspr4.so /usr/lib/
# ln -s /lib/libplc4.so /usr/lib/
# ln -s /lib/libsmime3.so /usr/lib/
# ln -s /lib/libsoftokn3.so /usr/lib/
# ln -s /lib/libfreebl3.so /usr/lib/
# ln -s /lib/libnssdbm3.so /usr/lib/

4. 注意事項

目前已知 Fedora 有此問題,因新版 nss 套件安裝至 /lib 目錄下而非 /usr/lib。除了安裝 nss 套件及參考上述步驟,另外可透過安裝 nss-devel 來修正此問題:

# yum install nss-devel

5. 參考文件