ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Linux -- openssl更新安装

Linux -- openssl更新安装 方法1(推荐)cd/usr/locatl/srcwgethttps://mirrors.cloud.tencent.com/openssl/source/openssl-1.1.1w.tar.gz# 腾讯云镜像ls-lhopenssl-1.1.1w.tar.gz# 验证下载结果# 安装tar-xzfopenssl-1.1.1w.tar.gzls-dopenssl-*# 查看解压后的目录名mvopenssl-Openssl-1.1.1w openssl-1.1.1w# 手动重命名cdopenssl-1.1.1w# 进入源码目录后就可以按照之前的步骤继续编译安装了./config--prefix/usr/local/openssl--openssldir/usr/local/openssl shared zlibmake-j$(nproc)makeinstall# 编译安装完成后别忘了验证一下/usr/local/openssl/bin/openssl version# 如果输出 OpenSSL 1.1.1w就表示安装成功了。# 从新编译python/configure--prefix/usr/local/python3\--with-openssl/usr/local/openssl\--with-openssl-rpathautomakemakeinstall# 验证/usr/local/python3/bin/python3-cimport ssl; print(ssl.OPENSSL_VERSION)###好了虚拟环境需要从新构建venv自己更新后 ssl证书是空的# 检查ssl证书/usr/local/python3/bin/python3-cimport ssl; print(ssl.get_default_verify_paths())# 输出 cafile是None,表示https不可用!!!DefaultVerifyPaths(cafileNone,capath/usr/local/openssl/certs,openssl_cafile_envSSL_CERT_FILE,openssl_cafile/usr/local/openssl/cert.pem,openssl_capath_envSSL_CERT_DIR,openssl_capath/usr/local/openssl/certs)# CentOS 系统本身就有一份完整的 CA bundle只需要把它链到 OpenSSL 期望的位置# 1. 确认系统的 CA bundle 存在ls-l/etc/pki/tls/certs/ca-bundle.crt# 2. 软链接过去ln-sf/etc/pki/tls/certs/ca-bundle.crt /usr/local/openssl/cert.pem# 3. 继续检查/usr/local/python3/bin/python3-cimport ssl; print(ssl.get_default_verify_paths())# 期望看到cafile/usr/local/openssl/cert.pem# 4. 实际发 HTTPS 请求/usr/local/python3/bin/python3-cimport urllib.request; print(urllib.request.urlopen(https://www.baidu.com).status)# 期望输出200方法2Python版本需要和openssl的版本需要相对匹配在Python3.7之后的版本依赖的openssl必须要是1.1.1或1.0.2之后的版本而CentOS7安装的openssl1.0.2k无法其满足要求这将会导致在使用pip命令在线安装库文件时出错。因此需要升级openssl最好是安装完openssl再重新编译安装python3。一、安装新版openssl3.1.4使用yum命令安装相关依赖没有这一步后面安装python很可能会出错pip问题也未能得到解决。yum groupinstallDevelopment Toolsyum-yinstallzlib-devel zlib perl* yum-yinstallgcc zlib-develbzip2bzip2-devel readline-devel sqlite sqlite-devel openssl openssl-devel xz xz-devel libffi-devel libuuid-devel perl-core epel-release tk-devel ncurses-libs gdbm-devel libdbi-devel python-backports-lzma更新系统已安装软件yum-yinstall下载OpenSSL这里选择安装openssl3.1.4也可以安装其他版本源代码可在https://www.openssl.org/source/下载先切换到/usrlocal/src目录下在使用wget下载源代码下载完成后提取openssl3.1.4.tar.gz文件并切换到openssl-3.1.4目录cd/usr/local/src/wgethttps://www.openssl.org/source/openssl-3.1.4.tar.gztar-xzvfopenssl-3.1.4.tar.gzcdopensl-3.1.4编译、安装openssl3.1.4目录为参考自己可指定目录安装–prefix自定义目录./config--prefix/usr/local/openssl--openssldir/usr/local/openssl--sharedzlib编译源代码make安装前测试最后输出结果有pass说明无错误可安装maketest开始安装makeinstall配置链接配置openssl的共享库使openssl二进制文件从/usr/local/openssl/lib目录加载库文件。切换到/etc/ld.so.cof.d目录下创建新的配置文件openssl-3.1.4.confcd/etc/ld.so.conf.d/vimopenssl-3.1.4.conf 按i然后复制下面并黏贴openssl库路径目录保存退出按Esc然后键入单引号中的内容 ’ :wq’最后按Enter回车 /usr/local/openssl/lib64重载动态链接/usr/local/ssl/lib目录下的openssl库已经被加载了ldconfig-v备份旧的软连接mv/bin/openssl /bin/openssl.bakmv/usr/bin/openssl /usr/bin/openssl.bakmv/usr/include/openssl /usr/include/openssl.bakmv/usr/local/bin/openssl /usr/local/bin/openssl.bakmv/usr/lib64/libssl.so.1.0.2k /usr/lib64/libssl.so.1.0.2k.bakmv/usr/lib64/libcrypto.so.1.0.2k /usr/lib64/libcrypto.so.1.0.2k.bak创建新的软连接不存在链接跳过即可ln-s/usr/local/openssl/bin/openssl /usr/bin/opensslln-s/usr/local/openssl/include/openssl /usr/include/opensslln-s/usr/local/openssl/bin/openssl /usr/local/bin/opensslln-s/usr/local/openssl/lib64/libcrypto.so.3 /lib/libcrypto.so.3ln-s/usr/local/openssl/lib64/libcrypto.so.3 /lib/libcrypto.so.6ln-s/usr/local/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3ln-s/usr/local/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3ln-s/usr/local/openssl/lib64/libssl.so /usr/lib64/libssl.soln-s/usr/local/openssl/lib64/libcrypto.so /usr/lib64/libcrypto.so如果链接已存在无法创建可以考虑备份或删除 #查看软链接符号链接指向的目标文件readlink-f软链接名称#备份mv软链接名称 软链接名称.bak#删除rm-rf软链接名称修改目录权限chmod-R755/usr/local/openssl/配置库文件搜索路径echo/usr/local/openssl/lib64/etc/ld.so.conf重新配置动态链接器的缓存-v 输出详细信息/sbin/ldconfig-v为openssl创建新的环境文件vim/etc/profile.d/openssl.sh将下面的配置信息黏贴到openssl.sh文件中然后保存退出#Set OPENSSL_PATHOPENSSL_PATH/usr/local/openssl/binexportOPENSSL_PATHPATH$PATH:$OPENSSL_PATHexportPATH赋予openssl.sh文件执行权限不然将无法执行chmodx /etc/profile.d/openssl.sh加载openssl环境并检查PATH bin目录source/etc/profile.d/openssl.shecho$PATH检查openssl文件whichopenssl查看openssl是否为刚才安装的3.1.4版本openssl version-a
返回列表