项目需求
通过openconnect client源码编译出windows环境下32位client。使用版本:openconnect v7.08
编译环境及方式
操作系统:Fedora-Server 25
编译方式:cross-compiling
准备工作
升级系统,安装系统组件:
#yum update -y
yum install -y gcc wget pcre-devel tar net-tools \
openssl openssl-devel curl-devel bind-utils git dh-autoreconf
安装依赖包:
To build OpenConnect from its source code, you will need the following libraries and tools installed:
- libxml2
- zlib
- Either OpenSSL or GnuTLS
- pkg-config
And optionally also:
– p11-kit (for PKCS#11 support)
– libp11 (also needed for PKCS#11 support if using OpenSSL)
– libproxy
– trousers (for TPM support if using GnuTLS)
– libstoken (for SecurID software token support)
– libpskc (for RFC6030 PSKC file storage of HOTP/TOTP keys)
– libpcsclite (for Yubikey hardware HOTP/HOTP support)
- 安装openconnect client依赖包命令如下:
yum install -y gnutls gnutls-utils gnutls-devel p11-kit libp11 libproxy \
trousers libstoken libxml2-devel libpskc
- 下载包:libstoken the download page
for example:
tar -zxvf stoken-0.91.tar.gz
cd stoken-0.91/
./configure
make install & make
- 下载包:libpcsclite
git clone git://anonscm.debian.org/pcsclite/PCSC.git
cd PCSC
./bootstrap
./configure
make
- Building for Windows is fairly trivial. On a Fedora box, just:
yum install mingw32-gnutls mingw32-libxml2
开始安装
- 下载 vpnc-script.下载地址
放到目录:/etc/vpnc/ 下
-
上传openconnect v7.08 源码包到/usr/local/openconnectclient下,执行如下命令:
tar -zxvf openconnect-7.08.tar.gz
cd openconnect-7.08/
./configure --with-vpnc-script=/etc/vpnc/vpnc-script
mingw32-configure
make
编译完成后会报错,如下图:
libtool: error: Could not determine the host path corresponding to
libtool: error: '/usr/local/openconnectclient/openconnect-7.08/.libs'
libtool: error: Continuing, but uninstalled executables may not work.
libtool: error: Could not determine the host path corresponding to
libtool: error: '/usr/i686-w64-mingw32/sys-root/mingw/lib:/usr/i686-w64-mingw32/sys-root/mingw/bin:/usr/local/openconnectclient/o
penconnect-7.08/.libs'libtool: error: Continuing, but uninstalled executables may not work.
make[2]: Leaving directory '/usr/local/openconnectclient/openconnect-7.08/tests'
......
不过不影响openconnect.exe 的生成。
- 把目录/usr/local/openconnectclient/openconnect-7.08/.libs下文件:openconnect.exe和libopenconnect-5.dll 拷贝出来;再把目录/usr/i686-w64-mingw32/sys-root/mingw/bin下所有dll文件拷贝出来,和刚才两个文件放在一起。还有vpnc-script-win.js 也放到该文件夹下。如下图:
- 执行测试成功
note 1:
安装包:libpcsclite
./bootstrap has a error :
[root@localhost PCSC]# ./bootstrap
+ test -f Makefile
+ rm -rf '*.cache' '*.m4' config.guess config.log config.status config.sub depcomp ltmain.sh
+ autoreconf --verbose --install
Errno architecture (x86_64-linux-thread-multi-4.6.4-301.fc24.x86_64) does not match executable architecture (x86_64-linux-thread-mult
i-4.10.0-0.rc4.git0.2.fc26.x86_64) at /usr/lib64/perl5/Errno.pm line 11.Compilation failed in require at /usr/share/autoconf/Autom4te/XFile.pm line 76.
BEGIN failed--compilation aborted at /usr/share/autoconf/Autom4te/XFile.pm line 76.
Compilation failed in require at /usr/bin/autoreconf line 44.
BEGIN failed--compilation aborted at /usr/bin/autoreconf line 44.
是个系统BUG,点击查看
note 2:
–with-vpnc-script=/etc/vpnc/vpnc-script
官方文档让带vpnc-script ,在linux下用windows的vpnc-script-win下载地址
,执行命令:./configure –with-vpnc-script=/etc/vpnc/vpnc-script-win.js 。
编译成功后也是可以连接ocserv。