调试笔记-系列文章目录
调试笔记-20240530-Linux-在 OpenWRT-23.05 上为 nginx 配置 HTTPS 网站
文章目录
- 调试笔记-系列文章目录
- 调试笔记-20240530-Linux-在 OpenWRT-23.05 上为 nginx 配置 HTTPS 网站
- 前言
- 一、调试环境
- 操作系统:OpenWrt 23.05.3
- 调试环境
- 调试目标
- 二、调试步骤
- 安装 nginx Web 服务器
- 创建 www.tanghui.fun 网站
- 创建 www.tanghui.fun.locations 配置文件
- 在 LuCI 上设定网站 SSL 证书
- 生成 SSL 证书
- 配置 HTTPS 服务
- 重启 nginx 服务,测试 HTTPS
- 补充信息
- 三、应用场景
- 构建 HTTPS 服务器
- 网站开发测试环境
- 四、参考资料
- 总结
前言
本文记录在 OpenWRT-23.05 上为 nginx 配置 HTTPS 网站的步骤。
实验使用的电脑如下:
CPU:
Intel Core Processor (Broadwell, no TSX, IBRS)
操作系统:
OpenWrt 23.05.3 r23809-234f1a2efa
一、调试环境
操作系统:OpenWrt 23.05.3
调试环境
- 云主机,已安装 OpenWrt
参考【安装笔记-20240528-Linux-在 Vultr 云服务器上安装测试 OpenWRT】
调试目标
- 配置好 HTTPS 网站,并且使用公共签名 SSL 证书,浏览器访问网站时无安全警告。
二、调试步骤
安装 nginx Web 服务器
opkg update
opkg install nginx-full
创建 www.tanghui.fun 网站
uci add nginx server
uci rename nginx.@server[-1]=www_tanghui_fun
uci add_list nginx.www_tanghui_fun.listen='80'
uci add_list nginx.www_tanghui_fun.listen='[::]:80'
uci set nginx.www_tanghui_fun.server_name='www.tanghui.fun'
uci set nginx.www_tanghui_fun.client_header_timeout='10s'
uci add_list nginx.www_tanghui_fun.include='conf.d/www.tanghui.fun.locations'
uci commit nginx
创建 www.tanghui.fun.locations 配置文件
/etc/nginx/conf.d/www.tanghui.fun.locations
location / {
root /www/root/www.tanghui.fun;
index index.html;
}
在 LuCI 上设定网站 SSL 证书
1、登录 LuCI 控制页面,选择 “Services” -> “ACME certs”
2、输入配置名称后,选择 “Add”,进入配置的编辑页面
3、配置完成后,通过命令行控制台查看,是否建立新的 SSL 密钥生成目录
生成 SSL 证书
1、在命令行控制台执行以下命令:
service acme restart
出现以上画面,表示 SSL 证书生成成功,输入以下命令验证:
ls -lia /etc/acme/www.tanghui.fun/
ls -lia /etc/ssl/acme/
配置 HTTPS 服务
1、配置 nginx 服务器,开启 SSL 连接
uci add_list nginx.www_tanghui_fun.listen='443 ssl'
uci add_list nginx.www_tanghui_fun.listen='[::]:443 ssl'
uci set nginx.www_tanghui_fun.ssl_certificate='/etc/nginx/conf.d/www.tanghui.fun.crt'
uci set nginx.www_tanghui_fun.ssl_certificate_key='/etc/nginx/conf.d/www.tanghui.fun.key'
uci set nginx.www_tanghui_fun.ssl_session_cache='shared:SSL:32k'
uci set nginx.www_tanghui_fun.ssl_session_timeout='64m'
uci commit nginx
2、建立 HTTPS 服务的证书文件的软连接
ln -sf /etc/ssl/acme/www.tanghui.fun.key /etc/nginx/conf.d/www.tanghui.fun.key
ln -sf /etc/ssl/acme/www.tanghui.fun.fullchain.crt /etc/nginx/conf.d/www.tanghui.fun.crt
ln -sf /etc/ssl/acme/www.tanghui.fun.fullchain.crt /etc/nginx/conf.d/www.tanghui.fun.ca.crt
重启 nginx 服务,测试 HTTPS
1、重启 nginx 服务,输入以下命令:
service nginx restart
2、在 Windows 主机浏览器中输入以下网址:
https://[服务器域名]/
补充信息
1、如果没有设置 Webroot 路径,默认 acme.sh 在 /var/run/acme/challenge/ 中创建验证信息,可以在当前服务器根目录中建立符号连接,完成验证。执行以下命令:
mkdir -p /www/root/www.tanghui.fun/.well-known
mkdir -p /var/run/acme/challenge/.well-known/acme-challenge
ln -sf /var/run/acme/challenge/.well-known/acme-challenge /www/root/www.tanghui.fun/.well-known/acme-challenge
再运行 acme 服务,执行以下命令:
service acme restart
三、应用场景
构建 HTTPS 服务器
网站开发测试环境
四、参考资料
1、Get a free HTTPS certificate from LetsEncrypt for OpenWrt with ACME.sh
2、acme.sh 中文说明
总结
本文介绍了在 OpenWRT-23.05 上为 nginx 配置 HTTPS 网站的步骤,并给出了解决所遇问题的方法。