Ubuntu 使用自定义OpenSSL构建OpenVPN

Ubuntu 使用自定义OpenSSL构建OpenVPN,ubuntu,gcc,openssl,openvpn,Ubuntu,Gcc,Openssl,Openvpn,我正在尝试用最新的openssl-1.0.1h构建openvpn-2.3.4。我从sources/usr/openssl-1.0.1h编译了openssl,前缀为/opt/customopenssl。然后我用下一行配置了openvpn源: /configure--prefix=/opt/custom openvpn OPENSSL\u SSL\u LIBS=“-L/usr/OPENSSL-1.0.1h/”OPENSSL\u SSL\u CFLAGS=“-I/usr/OPENSSL-1.0.1h/

我正在尝试用最新的openssl-1.0.1h构建openvpn-2.3.4。我从sources/usr/openssl-1.0.1h编译了openssl,前缀为/opt/customopenssl。然后我用下一行配置了openvpn源:

/configure--prefix=/opt/custom openvpn OPENSSL\u SSL\u LIBS=“-L/usr/OPENSSL-1.0.1h/”OPENSSL\u SSL\u CFLAGS=“-I/usr/OPENSSL-1.0.1h/include/OPENSSL/”OPENSSL\u CRYPTO\u LIBS=“-L/usr/OPENSSL-1.0.1h/”OPENSSL\u CRYPTO\u CFLAGS=“-I/usr/OPENSSL-1.0.1h/include/OPENSSL/”

make
make install
都通过了,没有错误,但当我检查版本时,我得到了

openssl version
OpenSSL 1.0.1h Jun 5 2014 // <-------
openvpn --version
OpenVPN 2.3.4 Jun 4 2014
OpenSSL version 1.0.1f Jan 6 2014 // <------
openssl版本

OpenSSL 1.0.1h 2014年6月5日/错误是编译器使用了Ubuntu版本的共享对象。原因是上面的命令中有一些错误。因此,我的配置的最终版本:

./configure --prefix=/opt/custom-openvpn OPENSSL_SSL_LIBS="-L/usr/openssl-1.0.1h/ -lssl" OPENSSL_SSL_CFLAGS="-I/usr/openssl-1.0.1h/include/" OPENSSL_CRYPTO_LIBS="-L/usr/openssl-1.0.1h/ -lcrypto" OPENSSL_CRYPTO_CFLAGS="-I/usr/openssl-1.0.1h/include/"
多亏了jww和

我用了这个:

./configure --prefix=/opt/openvpn-2.3.6 PKG_CONFIG_LIBDIR="/opt/openssl-1.0.2/lib/pkgconfig/"
--使输出snnipet

gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../src/compat    -I/opt/openssl-1.0.2/include   -I/opt/openssl-1.0.2/include      -g -O2 -MT base64.o -MD -MP -MF .deps/base64.Tpo -c -o base64.o base64.c
mv -f .deps/base64.Tpo .deps/base64.Po
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../src/compat    -I/opt/openssl-1.0.2/include   -I/opt/openssl-1.0.2/include      -g -O2 -MT buffer.o -MD -MP -MF .deps/buffer.Tpo -c -o buffer.o buffer.c
mv -f .deps/buffer.Tpo .deps/buffer.Po
gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../src/compat    -I/opt/openssl-1.0.2/include   -I/opt/openssl-1.0.2/include      -g -O2 -MT clinat.o -MD -MP -MF .deps/clinat.Tpo -c -o clinat.o clinat.c
OpenVPN启动输出:

$ sudo /opt/openvpn-2.3.6/sbin/openvpn --config server-no-auth.conf 
Wed Feb  4 09:40:23 2015 OpenVPN 2.3.6 x86_64-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Feb  4 2015
Wed Feb  4 09:40:23 2015 library versions: OpenSSL 1.0.2 22 Jan 2015, LZO 2.08
Wed Feb  4 09:40:23 2015 ******* WARNING *******: all encryption and authentication features disabled -- all data will be tunnelled as cleartext
Wed Feb  4 09:40:23 2015 TUN/TAP device tun0 opened
Wed Feb  4 09:40:23 2015 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Wed Feb  4 09:40:23 2015 /sbin/ifconfig tun0 172.16.1.1 pointopoint 172.16.1.2 mtu 1500
Wed Feb  4 09:40:23 2015 UDPv4 link local (bound): [undef]
Wed Feb  4 09:40:23 2015 UDPv4 link remote: [undef]

您可能正在运行时加载Ubuntu版本的共享对象。尝试为
openvpn
设置
LD\u库路径。或者,重新编译OpenVPN并设置
rpath
。或者,重新编译OpenVPN,但使用OpenSSL库的静态版本。我从机器上完全删除了openssl,然后出现了一些错误。下面是我自己答案中的固定版本,请看,这个答案现在似乎过时了。我采纳了这个建议,结果奏效了。