https 支持的一次实践
https 在 2020 年应该已经是 web 服务必须的选择了。
那么如何从 http 迁移到 https 也是一个比较重要的问题。
这个问题理论上可以通过两个层次的方案去解决:
- 一种方案是在服务框架解决,这样的好处是代码中需要添加一些修改;
- 另一种方案是在 server 部署时 nginx 层进行解决,这种方法完全不侵入代码。
当然如果项目相当硬核使用的自研框架,且有特别的原因不想上一个 nginx,那就另当别论了。
这两种方案中,最简单直接的当然是套一层 nginx :不侵入代码,server 端开发无感知;同时在如今前后端分离的大势下,nginx 已经是部署的必要工具,写一个配置文件就能解决。本文也是关于这种方案的实践。
核心目的: 让 server 实现 https 支持,且当 http 访问时自动重定向到对应的 https请求。
这个目的分解为两个问题:
- server 实现 https 支持
- 重定向 http 到 https
实现 https 支持
找到一个合适的证书签发机构
本文白嫖的是 zerossl 90天一签的 ssl。
下载证书
下载证书到合适的目录,对证书进行处理以适应 nginx 的使用。
写 nginx conf 文件
最重要的部分,此部分也是本文的核心。将会从 nginx 的适用条件和文件功能进行介绍,并编写合适的 conf 文件以实现支持 https 的目的。
组织合适的部署方式
2020了,当然会选用容器去部署啦。那如何根据我的需求组织几个服务的容器组织方式?
遇到的问题:
重定向 http 到 https
(待填坑)