当前位置:首页>Linux>Linux进阶 | Nginx 服务安装与配置(七):HTTPS 与证书配置实战

Linux进阶 | Nginx 服务安装与配置(七):HTTPS 与证书配置实战

  • 2026-09-02 20:14:20
Linux进阶 | Nginx 服务安装与配置(七):HTTPS 与证书配置实战
前一篇我们实现了:
  • upstream 负载均衡
  • 多节点集群部署
但如果你的网站还是:
http://example.com
在生产环境几乎是不可接受的。
现代互联网的基本要求是:全站 HTTPS
这一篇,我们彻底讲清:
✔ HTTPS 原理简述
✔ 自签名证书生成
✔ Nginx SSL 配置
✔ 强制 HTTP 跳转 HTTPS
✔ 常见 SSL 错误排查

一、HTTPS 到底解决什么问题?

HTTP 是明文传输。
问题:
  • 数据可被窃听
  • 可被篡改
  • 无法验证服务器身份
HTTPS 本质是:HTTP + SSL/TLS 加密层
它实现:
  • 数据加密
  • 身份认证
  • 防篡改
在架构中通常由Nginx作为 HTTPS 终端,后端应用继续使用 HTTP。

二、生成自签名证书(测试环境)

生产环境应使用权威 CA 证书,这里先做测试。
生成私钥:
openssl genrsa -out server.key 2048
生成证书请求:
openssl req -new-key server.key -out server.csr
生成自签名证书:
openssl x509 -req-days365-in server.csr -signkey server.key -out server.crt
最终得到:
server.key   私钥
server.crt   证书
建议存放:
mkdir /etc/nginx/sslmv server.* /etc/nginx/ssl/

三、配置 HTTPS 服务

编辑配置文件:
vim /etc/nginx/conf.d/https.conf
写入:
server {  listen 443 ssl;  server_name secure.local;  ssl_certificate     /etc/nginx/ssl/server.crt;  ssl_certificate_key /etc/nginx/ssl/server.key;  ssl_protocols TLSv1.2 TLSv1.3;  ssl_ciphers HIGH:!aNULL:!MD5;  location / {    root /data/www/site1;    index index.html;  }}
测试并重载:
nginx -tnginx -s reload
浏览器访问:https://secure.local
如果提示“不安全”,是因为自签名证书未被信任(测试环境正常)。

四、强制 HTTP 跳转 HTTPS

生产环境通常要求:所有 HTTP 自动跳转到 HTTPS
添加一个 80 端口 server:
server {  listen 80;  server_name secure.local;  return 301 https://$host$request_uri;}
解释:
301:永久重定向
$host:当前域名
$request_uri:原始路径
这样用户访问:http://secure.local/test
会自动跳转:https://secure.local/test

五、推荐增强型 SSL 配置

可以增加:
ssl_session_cache shared:SSL:10m;ssl_session_timeout 10m;ssl_prefer_server_ciphers on;
作用:
  • 提高握手效率
  • 优化性能
  • 增强安全性

六、生产证书获取方式

生产环境通常使用:
  • 企业 CA 证书
  • 或免费证书服务(如 Let's Encrypt)
  • 自动签发工具常用:
  • certbot
部署流程:
  • 域名解析到服务器
  • 申请证书
  • 自动写入 Nginx 配置
  • 定期自动续签

七、常见 SSL 错误排查

1️⃣ 浏览器无法访问 443
检查端口:
ss -lntp | grep 443
检查防火墙:
firewall-cmd --add-service=https --permanentfirewall-cmd --reload
2️⃣ nginx 启动失败
执行:
nginx -t
常见错误:
证书路径错误
私钥与证书不匹配
3️⃣ 证书链不完整
生产证书需要:
fullchain.pemprivkey.pem
否则浏览器会报信任错误。

八、HTTPS 性能影响大吗?

很多人担心:加密会不会影响性能?
现代 CPU + TLS 优化下:
性能损耗极低,可忽略不计,而安全收益巨大。
生产环境必须启用 HTTPS。

九、本篇核心能力升级

现在你已经具备:
✔ 自签名证书生成能力
✔ Nginx HTTPS 配置能力
✔ 强制跳转配置
✔ SSL 错误排查能力
这已经达到:可上线公网服务的基础标准
下一篇,也是本系列收官篇:
👉 生产环境优化与安全加固
👉 隐藏版本号
👉 限流防刷
👉 日志切割
👉 常见 502/性能瓶颈分析
从“能部署”升级为“能稳定运行”。
继续跟着系列,你已经接近真正的生产级运维能力。

最新文章

随机文章