温馨提示×

linux openssl怎么集成nginx

小樊
38
2026-10-16 06:49:31
栏目: 云计算

在 Linux 上把 OpenSSL 集成到 Nginx,通常有两种含义,我分别说明,你按需求对号入座:


一、让 Nginx 使用系统的 OpenSSL(最常见)

Nginx 默认就会使用系统 OpenSSL,不需要“额外集成”,只需要:

1. 安装 OpenSSL 和 Nginx

# Debian / Ubuntu
apt update
apt install nginx openssl libssl-dev

# CentOS / Rocky / Alma
yum install nginx openssl openssl-devel

2. 验证 Nginx 使用的 OpenSSL 版本

nginx -V

输出中会有:

built with OpenSSL 1.1.1k  25 Mar 2021

说明已集成。

3. 配置 HTTPS(使用 OpenSSL)

生成证书:

openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout /etc/nginx/ssl/nginx.key \
  -out /etc/nginx/ssl/nginx.crt

Nginx 配置:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;

    location / {
        root /usr/share/nginx/html;
    }
}

二、编译 Nginx 时指定自定义 OpenSSL(高级)

如果你需要 新版本 OpenSSL(如 3.x),系统自带的太旧,就要静态编译。

1. 下载 OpenSSL

cd /usr/local/src
wget https://www.openssl.org/source/openssl-3.2.1.tar.gz
tar zxvf openssl-3.2.1.tar.gz
cd openssl-3.2.1

./config --prefix=/usr/local/openssl
make && make install

2. 下载并编译 Nginx

cd /usr/local/src
wget https://nginx.org/download/nginx-1.25.3.tar.gz
tar zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3

./configure \
  --prefix=/usr/local/nginx \
  --with-http_ssl_module \
  --with-openssl=/usr/local/src/openssl-3.2.1 \
  --with-openssl-opt="enable-ssl3"

make && make install

3. 验证

/usr/local/nginx/sbin/nginx -V

应显示:

built with OpenSSL 3.2.1

三、常见问题

Q1:Nginx 编译报错找不到 ssl

✅ 安装开发包:

apt install libssl-dev
# 或
yum install openssl-devel

Q2:想支持 TLS 1.3

✅ OpenSSL ≥ 1.1.1,Nginx ≥ 1.15

ssl_protocols TLSv1.2 TLSv1.3;

四、总结

场景 做法
普通 HTTPS 直接用系统 Nginx + OpenSSL
新版 OpenSSL 编译 Nginx 时 --with-openssl
只需证书 openssl 生成即可

如果你告诉我:

  • Linux 发行版(Ubuntu / CentOS / 银河麒麟等)
  • Nginx 是否已安装
  • 是否必须指定 OpenSSL 版本

我可以给你精确的命令。

0 踩