包管理器安装是最便捷的方式,适用于大多数日常场景,无需手动编译,系统会自动处理依赖关系。
# 更新软件包列表
sudo apt update
# 安装OpenSSL及开发库(开发库包含头文件,用于编译依赖OpenSSL的程序)
sudo apt install openssl libssl-dev
# CentOS/RHEL 7及以下使用yum,8及以上使用dnf
if command -v dnf &> /dev/null; then
sudo dnf install openssl openssl-devel
else
sudo yum install openssl openssl-devel
fi
# 更新软件包数据库并同步
sudo pacman -Syu
# 安装OpenSSL
sudo pacman -S openssl
# 更新软件包列表
sudo zypper refresh
# 安装OpenSSL
sudo zypper install openssl openssl-devel
验证安装:
安装完成后,运行以下命令检查版本,确认安装成功:
openssl version
# 正常输出示例:OpenSSL 3.0.13 30 Jan 2024
若系统包管理器提供的OpenSSL版本过旧,或需要启用额外功能(如特定加密算法),可选择源码编译安装。
# Debian/Ubuntu
sudo apt install build-essential checkinstall zlib1g-dev -y
# CentOS/RHEL
sudo yum groupinstall "Development Tools" -y
sudo yum install gcc gcc-c++ make zlib zlib-devel perl-core -y
# Fedora
sudo dnf groupinstall "Development Tools" -y
sudo dnf install gcc gcc-c++ make zlib zlib-devel perl-core -y
访问OpenSSL官网(https://www.openssl.org/source/)下载所需版本(如3.0.13),然后解压:
# 替换版本号为所需版本(如3.0.13)
VERSION=3.0.13
wget https://www.openssl.org/source/openssl-$VERSION.tar.gz
tar -xzvf openssl-$VERSION.tar.gz
cd openssl-$VERSION
# 指定安装路径(避免与系统版本冲突),启用共享库和zlib压缩
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
# 查看配置是否正确(可选)
cat Makefile | grep prefix
# 编译(-j参数指定并行编译线程数,加速过程,如-j4表示4线程)
make -j$(nproc)
# 安装(需root权限)
sudo make install
# 备份原有openssl二进制文件(可选,防止冲突)
sudo mv /usr/bin/openssl /usr/bin/openssl.bak
# 添加新版本路径到环境变量
echo 'export PATH=/usr/local/openssl/bin:$PATH' | sudo tee /etc/profile.d/openssl.sh
echo 'export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH' | sudo tee -a /etc/profile.d/openssl.sh
# 使环境变量生效
source /etc/profile.d/openssl.sh
# 更新动态链接库缓存
echo "/usr/local/openssl/lib" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig
# 检查版本,确认使用新安装的版本
openssl version
# 输出应包含自定义安装路径(如/usr/local/openssl)
若需使用OpenSSL生成自签名证书或配置Web服务器(如Nginx、Apache),可参考以下步骤:
# 创建证书目录
mkdir -p ~/ssl_certs
# 生成私钥(2048位RSA)和自签名证书
openssl req -x509 -newkey rsa:2048 -keyout ~/ssl_certs/private.key -out ~/ssl_certs/certificate.crt -days 365 -nodes
# 输入证书信息(如国家、组织、域名等,Common Name需与网站域名一致)
编辑Nginx配置文件(如/etc/nginx/sites-available/default),添加以下内容:
server {
listen 443 ssl;
server_name yourdomain.com; # 替换为实际域名
ssl_certificate /home/youruser/ssl_certs/certificate.crt; # 证书路径
ssl_certificate_key /home/youruser/ssl_certs/private.key; # 私钥路径
ssl_protocols TLSv1.2 TLSv1.3; # 启用TLS 1.2及以上协议
ssl_ciphers HIGH:!aNULL:!MD5; # 使用强加密套件
# 其他配置(如root、index等)
}
# 重启Nginx使配置生效
sudo systemctl restart nginx
注意事项:
.key)需严格保密,权限设置为600(仅所有者可读);