在 Linux 上把 OpenSSL 集成到 Nginx,通常有两种含义,我分别说明,你按需求对号入座:
Nginx 默认就会使用系统 OpenSSL,不需要“额外集成”,只需要:
# Debian / Ubuntu
apt update
apt install nginx openssl libssl-dev
# CentOS / Rocky / Alma
yum install nginx openssl openssl-devel
nginx -V
输出中会有:
built with OpenSSL 1.1.1k 25 Mar 2021
说明已集成。
生成证书:
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;
}
}
如果你需要 新版本 OpenSSL(如 3.x),系统自带的太旧,就要静态编译。
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
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
/usr/local/nginx/sbin/nginx -V
应显示:
built with OpenSSL 3.2.1
✅ 安装开发包:
apt install libssl-dev
# 或
yum install openssl-devel
✅ OpenSSL ≥ 1.1.1,Nginx ≥ 1.15
ssl_protocols TLSv1.2 TLSv1.3;
| 场景 | 做法 |
|---|---|
| 普通 HTTPS | 直接用系统 Nginx + OpenSSL |
| 新版 OpenSSL | 编译 Nginx 时 --with-openssl |
| 只需证书 | openssl 生成即可 |
如果你告诉我:
我可以给你精确的命令。