必须先确认nginx已编译--with-http_ssl_module,否则nginx -t必报“unknown directive 'ssl_certificate'”;需运行nginx -v检查configure arguments,缺失则须源码重编译并替换sbin/nginx,再配证书路径、权限(key为600)及listen 443 ssl等指令。

必须先确认 Nginx 已编译 --with-http_ssl_module,否则所有配置都会在 nginx -t 时报错“unknown directive 'ssl_certificate'”。
检查 nginx 是否内置 SSL 模块
直接执行:nginx -V(注意是大写 V),在输出的 configure arguments: 行里找是否有 --with-http_ssl_module。没有就别往下配了——改配置文件没用,nginx -t 必然失败。
- 如果缺失,需进入原始源码目录重新
./configure并make,再用新生成的objs/nginx覆盖原sbin/nginx - 不要运行
make install,它会覆盖整个安装目录,可能丢掉你已有的模块或配置 - 替换前记得停掉服务:
nginx -s stop,否则新二进制无法加载
上传证书并校验文件权限
证书包解压后通常含两个关键文件:yourdomain_bundle.crt(或 .pem)和 yourdomain.key。它们必须:
- 放在服务器上可读路径,如
/etc/ssl/cert/或/usr/local/nginx/conf/cert/,避免放~或临时目录 -
.key文件权限必须为600:chmod 600 /path/to/yourdomain.key,否则 nginx 启动会拒绝加载并报 “permission denied” - 确保私钥未加密(即不含
DEK-Info头);若生成时加了密码,需先用openssl rsa -in server.key -out server.key去密
配置 listen 443 + ssl_certificate 指令
在 server 块中启用 HTTPS,不能只改注释,要确保以下三要素同时存在且路径准确:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
listen 443 ssl;—— 注意必须带ssl参数,仅写listen 443;不会启用 TLS -
ssl_certificate指向证书公钥文件(.crt或.pem),不是 CSR 或中间证书单独文件 -
ssl_certificate_key指向私钥文件(.key),路径必须与ssl_certificate一一对应
示例片段:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/cert/example.com_bundle.crt;
ssl_certificate_key /etc/ssl/cert/example.com.key;
# 其他 ssl_* 配置可选,但这两行缺一不可
}
常见连通性失败点:443 端口与防火墙
即使配置全对、nginx 启动成功,curl https://example.com 仍超时,大概率卡在系统层:
- 云服务器(如阿里云、腾讯云)必须在**安全组**中放行 TCP 443 端口,控制台操作,不是 Linux 本机命令
- 本地防火墙(如 firewalld)也要开:
firewall-cmd --permanent --add-port=443/tcp && firewall-cmd --reload - 用
ss -tlnp | grep :443或netstat -tlnp | grep :443确认 nginx 进程确实在监听 443,而非只监听 80
域名解析和 ICP 备案(中国内地)属于前置条件,但一旦 DNS 解析到正确 IP 却打不开 HTTPS,优先查这三项:模块、权限、端口。










