1.查看版本
Ubuntu的版本是18.04。使用openssl version
命令查看openssl版本,可以看到Ubuntu自带了openssl-1.1.0版本,因此安装新版本需要替换旧版本。
2.下载openssl
打开openssl官网的下载页面可以看到最新的软件包,下载openssl-1.1.1b.tar.gz。放到Ubuntu系统中。
3.解压和安装
-
使用命令
tar -xzvf openssl-1.1.1b.tar.gz
解压。 -
使用
cd openssl-1.1.1b
进入目录,并且使用./config
生成MakeFile,不加任何参数,默认的安装位置为:/usr/local/bin/openssl
。
-
使用
make
进行编译 -
不放心的话可以使用
make tset
检查一下(可选步骤) -
使用
sudo make install
进行安装,这里一定要选择root用户的权限执行。
4.备份与替换
- 到上一步openssl就算安装好了,但是还无法使用,需要通过软链接的方式将新旧版本就行替换,依次运行下列命令。
sudo mv /usr/bin/openssl /usr/bin/openssl.old //将旧版本的openssl进行备份
sudo ln -s /usr/local/bin/openssl /usr/bin/openssl //将新版本的openssl进行软链接
cd /etc/ //进入etc目录
su //下一步一定要切换到root用户
echo "/usr/local/lib" >> ld.so.conf //将openssl的安装路径加入配置中
ldconfig //重新加载配置
-
使用
openssl version
查看,已经安装好。
-
如果需要更换版本的话(一般也不会),修改软链接的名称即可,参照:
sudo mv /usr/bin/openssl /usr/bin/openssl.new
sudo mv /usr/bin/openssl.old /usr/bin/openssl
5.安装依赖库
-
openssl安装结束之后,需要安装依赖库才能够进行编程,使用
sudo apt-get install libssl-dev
安装依赖库,可以看到同时也下载了libssl-doc。
-
由于下载的依赖库比较旧,我们在前面安装的openssl包中已经安装了新版本的库,因此需要将新旧库进行替换,仍然要做上一步的原因是尽量把能自动配置安装的东西安装好,只需要手动替换新的东西。下面是新旧库的对比(上面为新):
-
依次使用以下命令进行替换:
sudo mv /usr/include/openssl /usr/include/openssl.old //将旧版本进行备份
sudo ln -s /usr/local/include/openssl /usr/include/openssl //将新版本进行软链接
6.测试
编写一个测试代码test_openssl.c:
#include <stdio.h>
#include <openssl/evp.h>
int main(){
OpenSSL_add_all_algorithms();
return 0;
}
然后用下面的命令编译:
gcc -o to test_openssl.c -L/usr/local/openssl/lib -lssl -lcrypto -ldl -lpthread
执行./to;echo $?
,结果打印0。