希嗨勒 發表於 2022-5-19 17:53:00

CentOS linux 安装openssl

<h1 class="postTitle">&nbsp;</h1>
<div class="clear">&nbsp;</div>
<div class="postBody">
<div id="cnblogs_post_body" class="blogpost-body blogpost-body-html">
<p><strong>一、安装</strong></p>
<p>1.下载相关openssl包</p>
<p>下载地址:&nbsp;https://www.openssl.org/source/</p>
<p>2.将下载好的压缩包放到&nbsp;<em>/app/server/nginx</em>&nbsp;路径下(根据自己实际需求定义)</p>
<p>3.切换至该路径</p>
<div class="cnblogs_code">
<pre>cd /app/server/nginx</pre>
</div>
<p>4.压缩包解压</p>
<div class="cnblogs_code">
<pre>压缩包解压 :tar -zxvf openssl-3.0.0.tar.gz</pre>
</div>
<p>5.切换到解压后的路劲</p>
<div class="cnblogs_code">
<pre>cd openssl-3.0.0</pre>
</div>
<p>6.查看一下原安装版本</p>
<div class="cnblogs_code">
<pre>openssl version -a</pre>
</div>
<p>7.设置配置</p>
<div class="cnblogs_code">
<pre>./config --prefix=/usr/local/openssl3.0.0 --openssldir=/usr/local/openssl3.0.0 shared zlib</pre>
</div>
<p>①可能出现错误</p>
<p><img alt="" class="medium-zoom-image lazyload" loading="lazy" src="https://img2020.cnblogs.com/blog/1289898/202112/1289898-20211202093857843-543677214.png"></p>
<p>1)安装gcc(编译依赖 gcc 环境)</p>
<div class="cnblogs_code">
<pre>yum install gcc-c++</pre>
</div>
<p>2)安装&nbsp;PCRE pcre-devel (包括 perl 兼容的正则表达式库)</p>
<div class="cnblogs_code">
<pre>yum install -y pcre pcre-devel</pre>
</div>
<p>3)安装zlib(对 http 包的内容进行 gzip)</p>
<div class="cnblogs_code">
<pre>yum install -y zlib zlib-devel</pre>
</div>
<p>&nbsp;</p>
<p>②还可能出现的错误</p>
<p>Cant't locate IPC/Cmd.pm .......</p>
<p>需安装perl-IPC-Cmd包</p>
<p>执行命令</p>
<div class="cnblogs_code">
<pre>yum -y install perl-IPC-Cmd</pre>
</div>
<hr>
<p>&nbsp;</p>
<p>8.编译安装(编译安装完不报错将会安装到&nbsp;/usr/local/openssl3.0.0)</p>
<div class="cnblogs_code">
<pre>make
make install</pre>
</div>
<p>&nbsp;</p>
<p><strong>二、配置链接库</strong></p>
<p>1.在目录/etc/ld.so.conf.d目录下创建一个名为openssl-3.0.0.conf的文件</p>
<div class="cnblogs_code">
<pre>cd /etc/ld.so.conf.d
vim openssl-3.0.0.conf</pre>
</div>
<p>2.输入(i:启用编辑,esc:退出编辑,:wq:保存退出,:q!:不保存退出)</p>
<div class="cnblogs_code">
<pre>/usr/local/openssl3.0.0/lib64</pre>
</div>
<p>3.创建软链接</p>
<div class="cnblogs_code">
<pre>ln -s /usr/local/openssl3.0.0/lib64/libssl.so.3 /usr/lib64/
ln -s /usr/local/openssl3.0.0/lib64/libcrypto.so.3 /usr/lib64/</pre>
</div>
<p>若报已存在(File exist),则进行覆盖</p>
<div class="cnblogs_code">
<pre>ln -sf /usr/local/openssl3.0.0/lib64/libssl.so.3 /usr/lib64/<br>ln -sf /usr/local/openssl3.0.0/lib64/libcrypto.so.3 /usr/lib64/</pre>
</div>
<p>&nbsp;</p>
<p>4.重新加载动态链接</p>
<div class="cnblogs_code">
<pre>ldconfig -v</pre>
</div>
<p>&nbsp;</p>
<p><strong>三、配置环境变量</strong></p>
<p>1.备份旧的配置(/usr/bin/openssl为上个版本安装路径,此处为系统默认路径)</p>
<div class="cnblogs_code">
<pre>mv /usr/bin/openssl /usr/bin/openssl.backup</pre>
</div>
<p>2.创建环境变量文件</p>
<div class="cnblogs_code">
<pre>vim /etc/profile.d/openssl.sh</pre>
</div>
<p>3.写入</p>
<div class="cnblogs_code">
<pre>#Set OPENSSL_PATH
OPENSSL_PATH="/usr/local/openssl3.0.0/bin"
export OPENSSL_PATH
PATH=$PATH:$OPENSSL_PATH
export PATH</pre>
</div>
<p>4.执行openssl.sh 文件,并输出环境变量</p>
<div class="cnblogs_code">
<pre>chmod +x /etc/profile.d/openssl.sh
source /etc/profile.d/openssl.sh
echo $PATH</pre>
</div>
<p>5.检查OpenSSL位置</p>
<div class="cnblogs_code">
<pre>which openssl</pre>
</div>
<p>6.检查系统配置</p>
<div class="cnblogs_code">
<pre>openssl version -a</pre>
</div>
<hr>
<p><strong>2022-03-15</strong></p>
<p>openssl出现拒绝服务漏洞【CVE-2022-0778】</p>
<p>由于证书解析时使用的&nbsp;BN_mod_sqrt()&nbsp;函数存在一个错误,它会导致在非质数的情况下永远循环。可通过生成包含无效的显式曲线参数的证书来触发无限循环。由于证书解析是在验证证书签名之前进行的,因此任何解析外部提供的证书的程序都可能受到拒绝服务攻击。此外,当解析特制的私钥时(包含显式椭圆曲线参数),也可以触发无限循环。</p>
<p>影响范围</p>
<p>OpenSSL版本1.0.2:1.0.2-1.0.2zc</p>
<p>OpenSSL版本1.1.1:1.1.1-1.1.1m</p>
<p>OpenSSL版本&nbsp;3.0:3.0.0、3.0.1</p>
<p>官方修复提交记录:</p>
<p>https://github.com/openssl/openssl/commit/9eafb53614bf65797db25f467946e735e1b43dc9#</p>
<p><strong>解决办法:</strong></p>
<p>openssl3.0.0升级到-&gt;openssl3.0.2</p>
<p>与上述安装步骤一致(将其中的其中openssl3.0.0修改为openssl3.0.2)</p>
<p>其中注意事项:</p>
<ul>
<li>创建软链接时,需进行覆盖</li>
<li>
<div class="cnblogs_code">
<pre>ln -sf /usr/local/openssl3.0.2/lib64/libssl.so.3 /usr/lib64/
ln -sf /usr/local/openssl3.0.2/lib64/libcrypto.so.3 /usr/lib64/</pre>
</div>
</li>
<li>备份时,需将路径修改为上次安装openssl的路径</li>
<li>
<div class="cnblogs_code">
<pre>mv /usr/local/openssl3.0.0 /usr/bin/openssl.backup</pre>
</div>
</li>
<li>升级完毕后,如果使用的nginx做服务分发代理,nginx需重新编译安装,其中openssl依赖路径修改为最新路径(nginx安装可看:CentOS linux安装nginx)</li>
</ul>
</div>
</div><br><br>
来源:https://www.cnblogs.com/chengfo/p/16289535.html
頁: [1]
查看完整版本: CentOS linux 安装openssl