OpenSSL 是一个开源项目,其组成主要包括一下三个组件:
openssl:多用途的命令行工具
libcrypto:加密算法库
libssl:加密模块应用库,实现了ssl及tls
OpenSSL 可以实现秘钥证书管理、对称加密和非对称加密 。
OpenSSL 中包含了绝大多数密码算法,在 1.1.1 版本后支持了国密算法SM2、SM3以及SM4。
资源
官网:https://www.openssl.org/source/
openssl源码:https://gitcode.net/mirrors/openssl/openssl/-/tree/master
OpenSSL的升级
查看版本号
openssl version
或者
ssh -V
目标:升级到1.1.1版本
查看已有openssl的安装目录
which openssl
下载指定版本的openssl
使用官网下载
下载源码,使用官网:https://www.openssl.org/source/
使用wget工具
下载指定版本,如1.1.1:
wget http://www.openssl.org/source/openssl-1.1.1q.tar.gz
如果该命令报错:ERROR: cannot verify www.openssl.org's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’: Issued certificate has expired.
执行如下语句:
wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1q.tar.gz
编译
下载C相关
yum install -y zlib
yum install –y zlib-devel
yum install –y gcc
解压
tar -zxvf openssl-1.1.1q.tar.gz
编译
cd openssl-1.1.1q
./config --prefix=/usr/local/openssl shared zlib
make depend
make && make install
备份当前openssl:
mv /usr/local/openssl /usr/local/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
配置使用新版本
OpenSSL和OpenSSH
OpenSSL是密码学库,主要设计目的是加密网络数据流(应用层和传输层).
OpenSSH是SSH协议的实现, 实现过程中,需要用到密钥交换算法,对称/非对称加密算法,Mac算法,随机数算法。OpenSSL提供两个库libssl和libcrypto,OpenSSH使用的是libcrypto中实现的上述算法。
OpenSSH是远程登录的首选连接工具。它加密所有流量,以消除窃听,连接劫持和其它攻击。包含SSH、SCP、SFTP等命令。
ssh协议
Secure Shell,安全外壳协议,简称ssh,是一种建立在应用层基础上的安全协议,通过对密码进行加密传输验证,可在不安全的网络中对网络服务提供安全的传输环境,实现ssh客户端和ssh服务器端的连接,所以ssh是基于C/S结构的。
对对对