统信UOS上为Nginx配置HTTPS需五步:一、获取证书(自签名或CA签发)并设私钥权限;二、apt安装Nginx并验证SSL模块;三、可选DEB包安装指定版本;四、编辑配置启用443端口监听、证书引用及80重定向;五、开放防火墙443端口并重载服务。

如果您已在统信UOS上成功安装Nginx,但尚未启用HTTPS访问,则说明SSL/TLS加密通道尚未建立。以下是为Nginx配置HTTPS的多种可行路径,涵盖证书获取、文件部署与服务生效全过程:
一、获取并准备SSL证书文件
HTTPS依赖有效的X.509证书与对应私钥,需确保二者具备正确权限且路径可控。自签名证书适用于内网验证,CA签发证书用于公网可信访问。
1、生成自签名证书(测试用):sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx.key -out /etc/ssl/certs/nginx.crt
2、若使用CA证书,将获得的.crt(或.pem)与.key文件统一存放至/etc/ssl/certs/和/etc/ssl/private/目录
3、严格设置私钥权限:sudo chmod 600 /etc/ssl/private/nginx.key,防止非root用户读取
二、通过apt安装Nginx并启用SSL模块
统信UOS官方源提供的Nginx默认已编译启用--with-http_ssl_module,无需额外编译,但需确认其存在性以避免配置失败。
1、更新软件包索引:sudo apt update
2、安装Nginx:sudo apt install nginx -y
3、验证SSL模块是否内置:nginx -V 2>&1 | grep -o with-http_ssl_module,输出该字符串即表示支持
4、启动并设为开机自启:sudo systemctl start nginx && sudo systemctl enable nginx
三、通过DEB包安装指定版本Nginx(含完整SSL支持)
当需使用主线版(mainline)或特定补丁版本时,可绕过系统源限制,直接安装预编译DEB包,确保SSL相关指令与TLSv1.3等新特性可用。
1、下载适配统信UOS架构(amd64)的Nginx DEB包:wget https://nginx.org/packages/mainline/debian/pool/nginx/n/nginx/nginx_1.25.3-1~jammy_amd64.deb
2、安装包并修复依赖:sudo dpkg -i nginx_*.deb && sudo apt --fix-broken install -y
3、检查监听状态:sudo ss -tlnp | grep ':443\|:80',确认无端口冲突
4、启用服务:sudo systemctl daemon-reload && sudo systemctl start nginx
四、配置Nginx启用HTTPS监听与证书引用
需在server块中明确声明443端口监听、证书路径及安全协议策略,同时建议保留80端口并重定向至HTTPS以强制加密访问。
1、编辑站点配置文件:sudo nano /etc/nginx/sites-enabled/default
2、在文件末尾添加HTTPS server块(替换your_domain.com为实际域名或IP):server { listen 443 ssl; server_name your_domain.com; ssl_certificate /etc/ssl/certs/nginx.crt; ssl_certificate_key /etc/ssl/private/nginx.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; location / { root /var/www/html; index index.html; } }
3、添加HTTP到HTTPS重定向规则:server { listen 80; server_name your_domain.com; return 301 https://$server_name$request_uri; }
4、保存退出后执行语法检测:sudo nginx -t
五、开放防火墙443端口并重载Nginx服务
统信UOS默认启用firewalld,ufw可能未激活;须确认当前使用的防火墙类型,并放行HTTPS标准端口,否则外部请求将被静默丢弃。
1、检查当前防火墙状态:sudo firewall-cmd --state(若返回running则为firewalld)
2、如使用firewalld,放行443/tcp:sudo firewall-cmd --add-port=443/tcp --permanent && sudo firewall-cmd --reload
3、如确认使用ufw,则执行:sudo ufw allow 'Nginx Full' 或 sudo ufw allow 443
4、重载配置使HTTPS生效:sudo systemctl reload nginx

















