温馨提示×

OpenSSL在Linux如何配置

小樊
36
2026-08-13 21:13:03
栏目: 云计算

在 Linux 上配置 OpenSSL 通常涉及 安装、编译、系统路径、证书、库文件应用程序调用 几个层面。下面按常见使用场景给你一份实用配置指南。


一、检查是否已安装 OpenSSL

openssl version

常见输出:

OpenSSL 1.1.1f  31 Mar 2020

二、安装 OpenSSL(Linux 常见发行版)

1️⃣ Ubuntu / Debian

sudo apt update
sudo apt install openssl libssl-dev

2️⃣ CentOS / Rocky / AlmaLinux

sudo yum install openssl openssl-devel
# 或(新版本)
sudo dnf install openssl openssl-devel

三、手动编译安装新版本(推荐用于升级)

适用于需要新特性或修复 CVE 的场景

1️⃣ 下载源码

cd /usr/local/src
wget https://github.com/openssl/openssl/releases/download/openssl-3.2.1/openssl-3.2.1.tar.gz
tar -zxvf openssl-3.2.1.tar.gz
cd openssl-3.2.1

2️⃣ 编译安装

./Configure --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
make -j$(nproc)
sudo make install

3️⃣ 配置系统使用新版本

echo "/usr/local/openssl/lib64" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig
sudo ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl

验证:

openssl version

四、OpenSSL 配置文件说明

配置文件位置

/etc/ssl/openssl.cnf
# 或
/usr/local/openssl/openssl.cnf

查看当前配置路径

openssl version -d

示例:修改默认证书路径

[ CA_default ]
dir = /etc/ssl
certs = $dir/certs
crl_dir = $dir/crl
new_certs_dir = $dir/newcerts

五、配置 SSL/TLS 证书(常用)

1️⃣ 生成私钥

openssl genrsa -out server.key 2048

2️⃣ 生成 CSR

openssl req -new -key server.key -out server.csr

3️⃣ 自签证书

openssl x509 -req -days 365 -in server.csr \
-signkey server.key -out server.crt

4️⃣ 查看证书

openssl x509 -in server.crt -text -noout

六、系统证书信任配置(CA 证书)

Debian / Ubuntu

sudo cp your-ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

RHEL / CentOS

sudo cp your-ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust

七、让程序使用指定 OpenSSL

方法 1:环境变量

export LD_LIBRARY_PATH=/usr/local/openssl/lib64:$LD_LIBRARY_PATH

方法 2:编译时指定

./configure --with-openssl=/usr/local/openssl

八、常见问题排查

问题 解决方案
openssl:command not found 安装 openssl
版本不生效 ldconfig / 检查 PATH
程序仍用旧库 ldd 查看依赖
证书不受信任 update-ca-certificates

查看动态库依赖:

ldd $(which openssl)

九、常见安全建议 ✅

  • 生产环境 不要使用自签证书
  • 禁用 TLS 1.0 / 1.1
  • 定期升级 OpenSSL(关注 CVE)
  • 使用 OpenSSL 3.x(长期支持)

如果你有更具体的需求(比如 Nginx / Apache / MySQL / Docker / 交叉编译 / 国密),告诉我,我可以给你针对性的配置方案。

0