一、为什么网站需要 HTTPS

原笔记对 HTTPS 的总结很直接:

  • 它本质上是基于 HTTP 的
  • 但在传输过程中加入了加密

这意味着如果不用 HTTPS:

  • 浏览器和网站之间传输的数据就是明文

而现在的大多数业务场景里,HTTPS 已经成为默认要求,尤其是:

  • 用户登录
  • 敏感信息提交
  • 需要启用更高版本 HTTP 协议的场景

原笔记也提到:

  • 很多企业默认都在用 HTTPS
  • HTTP/2 也通常建立在 HTTPS 之上

二、部署 HTTPS 一般要准备什么

原笔记把流程概括为三步:

1、准备域名
2、根据域名申请证书
3、在 Web 或 LB 上完成配置

也就是说,真正上线 HTTPS 时最关键的不是“只改一个端口”,而是要同时具备:

  • 域名
  • 证书公私钥
  • 对应的 Nginx 配置

三、单机 HTTPS 部署的基本步骤

原笔记用单台 Web 服务器做了最基础的 HTTPS 部署示例。
先把证书上传到主机,例如:

mkdir -p /etc/nginx/ssl_keys/
unzip 11654958_www.harbor-local.cn_nginx.zip -d /etc/nginx/ssl_keys/
ll /etc/nginx/ssl_keys/

可以看到其中至少包含:

  • .pem 证书文件
  • .key 私钥文件

这两者缺一不可。

四、Nginx HTTPS 配置怎么写

原笔记给出的单机配置如下:

server {
  listen 443 ssl;
  server_name ssl.harbor-local.cn;
  root /app/code/ssl;

  ssl_certificate /etc/nginx/ssl_keys/www.harbor-local.cn.pem;
  ssl_certificate_key /etc/nginx/ssl_keys/www.harbor-local.cn.key;

  error_log /var/log/nginx/ssl-error.log notice;
  access_log /var/log/nginx/ssl-access.log main;

  location / {
    index index.html;
  }
}

这份配置里最关键的变化有三处:

  • listen 443 ssl;
  • ssl_certificate
  • ssl_certificate_key

它们分别表示:

  • 监听 HTTPS 常用端口 443
  • 指定证书文件
  • 指定私钥文件

五、别忘了准备站点目录和首页文件

原笔记同时创建了站点目录和测试首页:

mkdir -p /app/code/ssl
echo ssl.oldboylinux.cn web01 > /app/code/ssl/index.html

然后执行:

nginx -t
systemctl restart nginx

只要语法通过并能成功启动,说明 HTTPS 站点已经具备了最基本的运行条件。

六、为什么 HTTPS 测试还离不开域名解析

原笔记随后提醒:

  • HTTPS 证书和域名是对应的

因此测试时不能只靠裸 IP,而要让域名真正解析到目标主机。
无论是在云解析平台上配置,还是在本地 hosts 里临时加记录,核心都是:

  • 让浏览器用正确域名访问站点

例如:

192.168.1.20 ssl.harbor-local.cn

然后再访问:

https://ssl.harbor-local.cn/

七、命令行如何创建自签名证书

除了使用证书平台下发的文件,原笔记还补充了如何用命令行自己生成证书。

先生成私钥:

openssl genpkey -algorithm RSA -out server.key

再生成自签名证书:

openssl req -x509 -sha256 -newkey rsa:2048 -key server.key -out server.crt -days 36500

这两个命令的作用分别是:

  • 生成 RSA 私钥
  • 基于私钥签发一个自签名 X.509 证书

这种方式很适合:

  • 实验环境
  • 内网测试
  • 理解 HTTPS 证书文件的基本结构

八、小结

HTTPS 入门阶段最重要的,不是先记复杂加密原理,而是先把部署链路理顺:

  • 域名和证书对应
  • Nginx 在 443 上启用 ssl
  • 证书和私钥路径必须正确
  • 站点依然要有正常的网页目录和访问入口

把这条基础链路打通之后,后面再学习 HTTP 跳 HTTPS、集群 HTTPS 和证书监控就会更顺手。