Ubuntu18.04安装Openssl-1.1.1
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。

参考资料
Ubuntu18.04安装Openssl-1.1.1的更多相关文章
- Ubuntu18.04安装mysql5.7
Ubuntu18.04安装mysql5.7 1.1安装 首先执行下面三条命令: # 安装mysql服务 sudo apt-get install mysql-server # 安装客户端 sudo a ...
- Ubuntu18.04安装RabbitMQ
Ubuntu18.04安装RabbitMQ 2018年06月10日 19:32:38 dmfrm 阅读数:2492 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...
- ubuntu18.04 安装mysql不出现设置 root 帐户的密码问题(装)
ubuntu18.04 安装mysql不出现设置 root 帐户的密码问题 https://blog.csdn.net/NeptuneClouds/article/details/80995 ...
- ubuntu18.04 安装hadoop 2.7.3+hive 2.3.4
1. 安装hadoop 详细请参见本人的另外一片博文<Hadoop 2.7.3 分布式集群安装> 2. 下载hive 2.3.4 解压文件到/opt/software -bin.tar.g ...
- Ubuntu18.04安装Virtualenv虚拟环境
在Ubuntu18.04安装Virtualenv虚拟环境 [实验环境]: 在这台电脑上已经安装了python3 [安装参考] 1.查看是否已安装virtualenv virtualenv --vers ...
- Ubuntu18.04安装thunderbird并设置中文
Ubuntu18.04安装thunderbird并设置中文 安装thunderbird sudo apt-get install thunderbird 安装中文包 sudo apt-get inst ...
- Ubuntu18.04安装Docker, centos7安装Docker
Ubuntu18.04安装Docker 第一种方法从Ubuntu的仓库直接下载安装: 安装比较简单,这种安装的Docker不是最新版本,不过对于学习够用了,依次执行下面命令进行安装. $ sudo a ...
- Ubuntu18.04安装和配置Java JDK11并卸载自带OpenJDK
卸载自带的OpenJDK方法: 在终端执行命令:sudo apt-get remove openjdk* Ubuntu18.04安装JDK11.0.2 前面步骤一样,可参考:https://www.c ...
- Ubuntu18.04 安装 oh-my-zsh
目录 Ubuntu18.04 安装 oh-my-zsh 目录 安装zsh 安装curl 安装oh-my-zsh 使用zsh替换bash 修改终端主题和配色 修改终端配置 隐藏用户和主机名 效果图 Ub ...
- Ubuntu18.04 安装MySQL(Linux)解决登陆权限问题及Navicat for mysql 中文乱码问题
一.MySQL(Linux)解决登陆权限问题 Ubuntu18.04 安装mysql或者mariadb之后,发现普通用户和远程都没有权限连接. ERROR 1045: Access denied fo ...
随机推荐
- HDFS Users Guide
Purpose This document is a starting point for users working with Hadoop Distributed File System (HDF ...
- scrollView + tableview 上下滑动失效
scrollView + tableview 上下滑动失效 控制器添加的 要加到子控制器,不然被销毁了 [self addChildViewController:chatVC];
- 360电影主页和详情页爬去入Mysql库链表读取--lowbiprogrammer
import requests,os,jsonfrom lxml import etreefrom pymysql import *class Movie(object):def __init__(s ...
- kubernetes应用的各种访问方式
1. 通过 Pod 的 IP 地址访问应用 1.1 Pod 的IP地址 每个Pod 都会被分配一个IP地址,比如下面这儿pod的IP地址是 10.1.79.11. root@kub-node-0:/h ...
- easyui DataGrid表体单元格跨列rowspan
最近做项目用到了jquery easyui,其中一组DataGrid做的报表是给客户大领导看的,客户要求报表样式跟他们原有系统的一模一样(如下图1). DataGrid样式好调,只是城市名称单元格跨行 ...
- ConcurrentLinkedQueue
我们要实现一个线程安全的队列有两种实现方式,阻塞算法.非阻塞算法.使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁) 或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环 ...
- MySQL找出锁等待
1.服务器级别的锁等待 可以通过show processlist看到等待锁的线程id,但是无法知道究竟哪个线程持有锁 可以通过mysqladmin debug 相关等待锁的线程以及谁持有锁可以在错误日 ...
- gh-ost安装
下载 : https://github.com/github/gh-ost/releases/tag/v1.0.28 先安装Go语言: sudo yum install golang 将gh-ost文 ...
- String.getBytes()未设置字符集导致打印的pdf乱码
如果不设置字符集会选择系统字符集,系统也没设置,会选iso-8859-1 导致汉字乱码,成为?
- find the safest road(弗洛伊德)
http://acm.hdu.edu.cn/showproblem.php?pid=1596 #include <iostream> #include <stdio.h> #i ...