linux 上安装软件通常有两种办法:

  • 从软件包仓库安装
  • 源码编译安装

第一种方式很简单,一条命令就搞定。

# debian系列
apt install openssl
# centos系列
yum install openssl

但是上面的方法无法配置参数,有些功能必须要手动编译才能开启。比如enable-tlsext,开启这个参数让 openssl 支持 SSL SNI(一个 IP 绑定多个证书)。步骤如下:

  1. 下载源码包

有些版本的 openssl 不支持enable-tlsext参数,目前 1.0.2r 版本是支持的。

wget https://www.openssl.org/source/openssl-1.0.2r.tar.gz
  1. 卸载自带 openssl

注意可能会连带卸载很多依赖于 openssl 的软件。

sudo apt remove openssl
  1. 解压
tar -zxf openssl-1.0.2r.tar.gz
  1. 配置
cd openssl-1.0.2r
sudo ./config shared enable-tlsext --prefix=/usr/local/openssl --openssldir=/usr/lib/openssl
  1. 编译安装
make
sudo make install
  1. 配置环境变量

编辑/etc/environment,注意要以:分割

输入source /etc/environment让环境变量生效,即安装完成。