当前栏目
不花钱几分钟让你的站点也支持https
前言
现在,免费SSL证书已经很普遍了,但是,申请和配置SSL证书仍然是一件较为繁琐的事,修改web服务配置在所难免,且不同的web服务配置方法不一样,不具备通用性。本文介绍一种通用的快速配置方法,web服务只需要做很少的改动(只需要修改端口号即可),支持任何web服务,只需要满足以下条件:
- 你的服务器能使用podman或者docker
- 你的站点能通过公网访问
步骤
这里以podman为例(docker用户只需要把podman
命令替换为docker
即可)
-
使用终端登录你的服务器
-
执行
podman --help
命令检查是否已经安装podman,如果提示命令找不到,则使用下面命令安装Debian/Ubuntu 20.10+ 系统:
sudo apt-get -y install podman
Centos系统:
sudo yum -y install podman
其他系统可参照podman文档自行安装:https://podman.io/getting-started/installation
-
如果原web服务的端口号是80,将其改成任意一个非80端口,保证80端口不被占用,这里假设修改后的端口号为8080,服务器内网IP为192.168.1.100
-
执行如下命令:
注意: 下面出现的
www.example.com
替换为你的真实域名。mkdir vhosts mkdir data touch vhosts/www.example.com.toml
编辑
vhosts/www.example.com.toml
文件,输入如下内容,并保存。upstream = ["192.168.1.100:8080"]
-
执行以下命令:
注意:
<YOUR_EMAIL>
替换为你的真实邮箱需要使用sudo执行的原因是绑定80端口需要root权限,如果你的服务器没有这个限制,可以把sudo去掉,以普通用户权限执行即可。
podman run -d --name nginx-proxy --restart always --env AUTO_SSL=on --env AUTO_SSL_EMAIL=<YOUR_EMAIL> -v "$PWD/vhosts":/etc/nginx-proxy/vhosts:ro -v "$PWD/data":/var/nginx-proxy -p 80:80 -p 443:443 kasonyang/nginx-proxy:latest
完成以上步骤后,等待一两分钟即可,输入https://你的域名
查看是否可以正常访问,如果不行,可以使用podman logs nginx-proxy
查看一下是否有报错。
SSL证书时效
申请的SSL证书有效期3个月,每天会自动检查,到期前会自动更新,更新不会中断服务。
后续增加域名
后续如果有更多域名需要启用https,就很简单了。参照步骤4,为新域名在vhosts
目录下创建一个对应的toml配置文件即可。新增文件后,80端口(http)立即可用,443端口(https)需要等待几分钟才能完成生效(申请证书需要时间)。
源码
本文使用的docker镜像开源,获取源码可以戳这个链接: https://github.com/kasonyang/docker-nginx-proxy
相关文章
- TiDB Binlog 组件正式开源
- 使用Visual Studio Code对Node.js进行断点调试
- 推荐!数据可视化的十种优秀JavaScript图表库
- Node.js在复杂集成场景下占据统治地位的五个理由
- 玩转Node.js单元测试
- Node.js中内存泄漏分析
- Angular对React:一场关于Web开发者支持率的史诗对决
- 热点推荐:什么是后端开发?
- 谈谈Spring boot 启动层面的开发
- 使用NodeJS将文件或图像上传到服务器
- 编写React组件的最佳实践
- JavaScript MV*框架最值得关注的七个亮点
- 前端开发指南:如何利用PHP Cake框架构建应用
- 基于React与Vue后,移动开源项目Weex如何定义未来
- NodeJS和C++之间的类型转换
- jQuery中的常用到的三十九个技巧
- 官宣|Google Developers中国网站发布!
- NodeJS和C++之间的类型转换
- .NET Core首例Office开源跨平台组件(NPOI Core)
- 如何写出漂亮的React组件