====== 31 CentOS5 TLS1.2 ======
The OpenSSL version on CentOS5 is openssl-0.9.8e-34.el5_11.
Since this version does not support TLS1.2, you may encounter the following error when using curl or wget...
error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
===== OpenSSL Version Check =====
# openssl version
OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
===== Solution =====
Install a newer OpenSSL
# yum install gcc gnutls-devel
==== OpenSSL ====
# wget https://www.openssl.org/source/openssl-1.0.2r.tar.gz
# tar zxvf openssl-1.0.2r.tar.gz
# cd openssl-1.0.2r
# ./config shared enable-ssl2 enable-ssl3 --prefix=/opt/openssl-1.0.2r
# make
# make install
# /opt/openssl-1.0.2r/bin/openssl version
OpenSSL 1.0.2r 26 Feb 2019
=== Set PATH ===
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -s /opt/openssl-1.0.2r/bin/openssl /usr/bin/openssl
echo '/opt/openssl-1.0.2r/lib' > /etc/ld.so.conf.d/openssl.conf
=== Load Libraries ===
# ldconfig
==== Wget ====
Supports tls1.1 and tls1.2 from version 1.16.1 or higher
wget http://ftp.gnu.org/gnu/wget/wget-1.16.1.tar.gz
tar -xzvf wget-1.16.1.tar.gz
cd wget-1.16.1
export PKG_CONFIG_PATH=/opt/openssl-1.0.2r/lib/pkgconfig/
※ If you don't execute this, it will read the pkgconfig of the old openssl.
./configure --with-ssl=openssl --prefix=/opt/wget-1.16.1 --with-libssl-prefix=/opt/openssl-1.0.2r/lib
make && make install
=== Check Libraries ===
libssl.so.1.0.0 => /opt/openssl-1.0.2r/lib/libssl.so.1.0.0 should be included
ldd /opt/wget-1.16.1/bin/wget
bash
Copy code
linux-vdso.so.1 => (0x00007fff5cdfd000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x0000003d02c00000)
libssl.so.1.0.0 => /opt/openssl-1.0.2r/lib/libssl.so.1.0.0 (0x00002b3a5baa8000)
libcrypto.so.1.0.0 => /opt/openssl-1.0.2r/lib/libcrypto.so.1.0.0 (0x00002b3a5bd1a000)
libz.so.1 => /lib64/libz.so.1 (0x0000003d00400000)
libidn.so.11 => /usr/lib64/libidn.so.11 (0x00000036ef000000)
librt.so.1 => /lib64/librt.so.1 (0x0000003d01000000)
libc.so.6 => /lib64/libc.so.6 (0x0000003cff400000)
/lib64/ld-linux-x86-64.so.2 (0x0000003cff000000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003cff800000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003cffc00000)
=== Specify CA Certificates ===
CA certificate: [[50_dialy:2014:01:29]]
# /opt/wget-1.16.1/bin/wget --no-check-certificate http://curl.haxx.se/ca/cacert.pem
# mv /etc/pki/tls/certs/ca-bundle.crt /etc/pki/tls/certs/ca-bundle.crt.org
# mv cacert.pem /etc/pki/tls/certs/ca-bundle.crt
echo 'ca-certificate =/etc/pki/tls/certs/ca-bundle.crt' >> /opt/wget-1.16.1/etc/wgetrc
=== Set PATH ===
which wget
/usr/bin/wget
mv /usr/bin/wget /usr/bin/wget.org
ln -s /opt/wget-1.16.1/bin/wget /usr/bin/wget
==== Curl ====
cd /usr/local/src
wget https://curl.haxx.se/download/curl-7.58.0.tar.gz
tar xzvf curl-7.58.0.tar.gz
cd curl-7.58.0
./configure --enable-libcurl-option --with-ssl=/opt/openssl-1.0.2r/ --prefix=/opt/curl-7.58.0
make
make install
/opt/curl-7.58.0/bin/curl --version
curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.0.2r zlib/1.2.3
Release-Date: 2018-01-24
=== Set PATH ===
# which curl
/usr/bin/curl
# mv /usr/bin/curl /usr/bin/curl.org
# ln -s /opt/curl-7.58.0/bin/curl /usr/bin/curl
$ curl -L -O [URL]
{{tag>tls openssl TLS1.2}}