linux/openssl

本文介绍了Linux环境下常用的加密技术,包括单向加密、对称加密和非对称加密的方法及应用场景。详细展示了如何使用openssl工具进行文件加密、解密操作,并提供了特征码计算的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在linux中,主要使用openssl和gpg两种方法实现安全机制。

单向加密

单向加密是计算一段数据的特征码,利用特征码对数据完整性进行校验,且输出定长。常见的加密算法有MD5、SHA1。

对称加密

对称加密就是加密和解密使用相同的密钥。常见的算法有DES、AES、3DES。

非对称加密

加密和解密使用的不是一个秘密。常见的算法有DSA、RSA。

openssl

//对称加密
//加密
openssl enc -e -des3 -a -in inputfile -out encryptfile
//解密
openssl enc -d -des3 -a -in encryptfile -out decryptfile

默认情况下,-salt选项开启,盐值随机生成,使用-nosalt关闭此选项。加盐后,相同的明文可以得到不同的密文,密文中包含盐值。-S 指定盐值。

计算文件单向加密的特征码

openssl dgst -sha inputfile

特征码用来检验一个文件的完整性。

<think>我们面临的任务是:卸载当前系统中的特定OpenSSL版本(可能是3.5.0),然后安装一个稳定的OpenSSL版本(如3.0.x),并配置环境变量和pkg-config路径,同时启用FIPS模块。 步骤分解: 1. 卸载当前安装的OpenSSL 3.5.0 2. 安装稳定版OpenSSL(如3.0.15) 3. 配置环境变量(bash和zsh) 4. 配置openssl.pc路径,确保编译工具可以找到 5. 启用FIPS模块 注意:由于OpenSSL通常安装在系统目录(如/usr/local),卸载时需要小心,避免影响系统其他依赖。 ### 步骤1:卸载OpenSSL 3.5.0 由于OpenSSL是通过源码编译安装的,卸载需要手动删除相关文件。假设OpenSSL 3.5.0安装在`/usr/local/openssl-3.5.0`(根据之前输出中的OPENSSLDIR)。 ```bash # 1. 删除安装目录 sudo rm -rf /usr/local/openssl-3.5.0 # 2. 删除可能存在的符号链接 sudo rm -f /usr/local/bin/openssl sudo rm -f /usr/local/bin/c_rehash sudo rm -f /usr/local/bin/openssl3.5.0 # 如果有的话 # 3. 删除man页面 sudo rm -rf /usr/local/share/man/man1/openssl.1 sudo rm -rf /usr/local/share/man/man1/c_rehash.1 # 4. 删除pkg-config文件(如果存在) sudo rm -f /usr/local/lib64/pkgconfig/openssl.pc sudo rm -f /usr/local/lib64/pkgconfig/libcrypto.pc sudo rm -f /usr/local/lib64/pkgconfig/libssl.pc # 5. 清理动态库缓存(如果之前有安装到系统路径) sudo ldconfig ``` ### 步骤2:安装稳定版OpenSSL(以3.0.15为例) ```bash # 下载源码 wget https://www.openssl.org/source/openssl-3.0.15.tar.gz tar -xvf openssl-3.0.15.tar.gz cd openssl-3.0.15 # 配置,指定安装目录(这里我们安装到/usr/local/openssl-3.0.15) ./config --prefix=/usr/local/openssl-3.0.15 --openssldir=/usr/local/openssl-3.0.15 shared zlib enable-fips # 编译并安装 make -j$(nproc) sudo make install # 创建符号链接(可选,如果你想将新版本设置为默认) sudo ln -s /usr/local/openssl-3.0.15/bin/openssl /usr/local/bin/openssl ``` 注意:`enable-fips`选项在编译时启用FIPS支持,但还需要后续步骤来安装FIPS模块。 ### 步骤3:配置环境变量(bash和zsh) 将OpenSSL的bin目录加入PATH,并设置PKG_CONFIG_PATH以便pkg-config能够找到openssl.pc。 #### 对于bash用户(~/.bashrc): ```bash echo 'export PATH=/usr/local/openssl-3.0.15/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/openssl-3.0.15/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc echo 'export PKG_CONFIG_PATH=/usr/local/openssl-3.0.15/lib64/pkgconfig:$PKG_CONFIG_PATH' >> ~/.bashrc ``` #### 对于zsh用户(~/.zshrc): ```bash echo 'export PATH=/usr/local/openssl-3.0.15/bin:$PATH' >> ~/.zshrc echo 'export LD_LIBRARY_PATH=/usr/local/openssl-3.0.15/lib64:$LD_LIBRARY_PATH' >> ~/.zshrc echo 'export PKG_CONFIG_PATH=/usr/local/openssl-3.0.15/lib64/pkgconfig:$PKG_CONFIG_PATH' >> ~/.zshrc ``` 然后执行: ```bash source ~/.bashrc # 或者 source ~/.zshrc ``` ### 步骤4:验证安装 ```bash openssl version # 应该输出 OpenSSL 3.0.15 # 验证pkg-config pkg-config --modversion openssl # 应该输出 3.0.15 ``` ### 步骤5:启用FIPS模块 根据OpenSSL 3.0的文档,需要单独安装FIPS模块。 ```bash # 进入源码目录(如果已经删除,重新解压) cd openssl-3.0.15 # 编译FIPS模块 make -j$(nproc) clean ./config enable-fips make -j$(nproc) # 安装FIPS模块(注意:已经执行过make install,这里只安装FIPS模块) sudo make install_fips # 生成FIPS配置文件 sudo openssl fipsinstall -module /usr/local/openssl-3.0.15/lib64/ossl-modules/fips.so -out /usr/local/openssl-3.0.15/ssl/fipsmodule.cnf # 验证FIPS模块 openssl list -provider -verbose # 应该看到fips模块 # 或者使用命令验证 openssl fipsinstall -verify -module /usr/local/openssl-3.0.15/lib64/ossl-modules/fips.so -config /usr/local/openssl-3.0.15/ssl/fipsmodule.cnf ``` ### 步骤6:配置FIPS模式 有两种方式启用FIPS: 1. 全局配置:在openssl配置文件中设置(/usr/local/openssl-3.0.15/ssl/openssl.cnf) 2. 程序运行时启用 #### 修改openssl.cnf(可选) 在`openssl.cnf`中增加: ```ini # 在[provider_sect]部分添加 fips = fips_sect [default_sect] activate = 1 [fips_sect] activate = 1 ``` #### 环境变量启用(推荐) ```bash export OPENSSL_MODULES=/usr/local/openssl-3.0.15/lib64/ossl-modules export OPENSSL_CONF_INCLUDE=/usr/local/openssl-3.0.15/ssl ``` ### 验证FIPS模式 ```bash openssl md5 /dev/null # 在FIPS模式下,MD5被禁止,应该会报错:digital envelope routines:unsupported ``` ### 注意事项 1. 卸载旧版本时,确保没有其他程序正在使用它。 2. 如果系统中存在多个OpenSSL版本,可以通过环境变量切换。 3. FIPS模块需要定期验证,确保使用官方认证版本。 §§相关问题§§ 1. 如何验证OpenSSL的FIPS模式是否生效? 2. 如何解决多版本OpenSSL共存时的符号冲突问题? 3. OpenSSL FIPS模块的合规性测试方法? 4. 如何为特定应用程序指定OpenSSL版本? 5. 在Docker容器中部署FIPS-enabled OpenSSL的最佳实践?</think>### OpenSSL 版本卸载重新安装指南 根据您的需求,我将指导您完成以下操作: 1. 卸载特定 OpenSSL 版本 2. 安装稳定版 OpenSSL 3. 配置环境变量 4. 启用 FIPS 模块 --- ### 一、卸载指定 OpenSSL 版本 #### 1. 定位安装目录 ```bash # 查看当前 OpenSSL 安装路径 openssl version -d | awk -F'"' '{print $2}' # 输出示例:/usr/local/openssl-3.5.0 ``` #### 2. 卸载操作 ```bash # 停止相关服务 sudo systemctl stop nginx apache2 # 或其他依赖服务 # 删除安装目录 (替换为您的实际路径) sudo rm -rf /usr/local/openssl-3.5.0 # 删除符号链接 sudo rm -f /usr/local/bin/openssl sudo rm -f /usr/local/bin/c_rehash sudo rm -f /usr/local/ssl/bin/openssl # 清理动态库缓存 sudo ldconfig ``` #### 3. 验证卸载 ```bash openssl version # 应显示系统自带版本或报错"command not found" ``` --- ### 二、安装稳定版 OpenSSL (推荐 3.0.x LTS) ```bash # 下载稳定版 (以 3.0.15 为例) wget https://www.openssl.org/source/openssl-3.0.15.tar.gz tar -xvf openssl-3.0.15.tar.gz cd openssl-3.0.15 # 编译安装 (启用 FIPS) ./config --prefix=/usr/local/openssl-3.0.15 \ --openssldir=/usr/local/openssl-3.0.15/ssl \ enable-fips shared zlib make -j$(nproc) sudo make install ``` --- ### 三、配置环境变量 #### 1. Bash 配置 (~/.bashrc) ```bash echo 'export OPENSSL_HOME=/usr/local/openssl-3.0.15' >> ~/.bashrc echo 'export PATH=$OPENSSL_HOME/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=$OPENSSL_HOME/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc echo 'export PKG_CONFIG_PATH=$OPENSSL_HOME/lib64/pkgconfig:$PKG_CONFIG_PATH' >> ~/.bashrc source ~/.bashrc ``` #### 2. Zsh 配置 (~/.zshrc) ```bash echo 'export OPENSSL_HOME=/usr/local/openssl-3.0.15' >> ~/.zshrc echo 'export PATH=$OPENSSL_HOME/bin:$PATH' >> ~/.zshrc echo 'export LD_LIBRARY_PATH=$OPENSSL_HOME/lib64:$LD_LIBRARY_PATH' >> ~/.zshrc echo 'export PKG_CONFIG_PATH=$OPENSSL_HOME/lib64/pkgconfig:$PKG_CONFIG_PATH' >> ~/.zshrc source ~/.zshrc ``` #### 3. 验证配置 ```bash # 检查版本 openssl version # 应输出:OpenSSL 3.0.15 # 检查 pkg-config pkg-config --modversion openssl # 应输出:3.0.15 # 检查路径 which openssl # 应输出:/usr/local/openssl-3.0.15/bin/openssl ``` --- ### 四、启用 FIPS 模块 #### 1. 安装 FIPS 提供者 ```bash cd openssl-3.0.15 sudo make install_fips # 生成 FIPS 配置文件 sudo openssl fipsinstall -module /usr/local/openssl-3.0.15/lib64/ossl-modules/fips.so \ -out /usr/local/openssl-3.0.15/ssl/fipsmodule.cnf ``` #### 2. 配置全局启用 编辑 OpenSSL 配置文件: ```bash sudo nano /usr/local/openssl-3.0.15/ssl/openssl.cnf ``` 添加以下内容: ```ini # 在 [provider_sect] 部分添加 fips = fips_sect [default_sect] activate = 1 [fips_sect] activate = 1 ``` #### 3. 验证 FIPS 模式 ```bash # 检查 FIPS 状态 openssl list -providers -verbose # 测试 FIPS 模式 (应报错) openssl md5 /dev/null # 预期输出:Error: digital envelope routines:unsupported ``` --- ### 五、多版本管理建议 如需保留多个版本,使用符号链接管理: ```bash sudo ln -sf /usr/local/openssl-3.0.15/bin/openssl /usr/local/bin/openssl sudo ln -sf /usr/local/openssl-3.0.15/lib64/pkgconfig/openssl.pc /usr/local/lib64/pkgconfig/ ``` > **重要提示**:生产环境建议使用经过 FIPS 140-3 认证的 OpenSSL 3.0.0+ 版本[^1],避免使用开发版(如 3.5.0)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值