使用域名远程访问家庭路由Openwrt / LEDE,并添加SSL证书,启用HTTPS访问
前期准备
- 软路由已经配置好,且内网能访问。
- 域名一个,用于绑定访问路由,域名服务商推荐选择阿里云,也可以其他家的但是需要把DNS放到cloudflare。
- 阿里云或者cloudflare账号一个。
阿里云方案
- 登录阿里云后台,滑到右上角头像 点击AccessKey 管理
- 开始使用子用户 AccessKey
- 创建用户,仅勾选-编程访问启用 AccessKey ID 和 AccessKey Secret,支持通过 API 或其他开发工具访问
- 页面提示若开通编程访问,请及时保存 AccessKey 信息,页面关闭后将无法再次获取信息,所以我们必须把AccessKey ID和AccessKey Secret保存好。
- 在刚才这个页面选中账号,添加权限AliyunDomainFullAccess-管理域名的权限
- 举例:我要把需要用 lede.我的域名.com访问路由,
登陆到openwrt/lede,在阿里DDNS里分别填入
- Access Key ID //刚才保存的
- Access Key Secret //刚才保存的
- WAN-IP来源 - WAN
- 主域名 - 你的域名,我的域名.com
- 子域名 - 域名前缀,lede
- 在路由设置 网络 - 防火墙 - 端口转发里添加WAN口的8280到本地路由地址的80端口
- 启用保存,浏览器输入
http://lede.我的域名.com:8280
测试访问。
Cloudflare方案
- 登录cloudflare按照步骤添加你的域名
- 右上角点击我的个人资料
- 在API令牌的tab里的API密钥下找到Global API Key,查看和复制。
- 举例:我要把需要用 lede.我的域名.com访问路由,
登录路由,在动态DNS里分别填入
- 查询主机名 - lede.我的域名.com
- IP 地址版本 - IPv4 地址
- DDNS 服务提供商 [IPv4] - cloudflare.com -v4
- 域名 - lede@我的域名.com //注意这里是@,不是.
- 用户名 - cloudflare用户名
- 密码 - 刚才复制的Global API Key
- 使用 HTTPS - 勾选
- CA 证书路径 - IGNORE
- 在路由设置 网络 - 防火墙 - 端口转发里添加WAN口的8280到本地路由地址的80端口
- 等待解析
- 启用保存,浏览器输入
http://lede.我的域名.com:8280
测试访问。
SSL安全连接
此步骤可根据你的实际情况,选择跳过或者开启。
使用SSH软件或者WinSCP编辑/etc/config/uhttpd
以Xshell为例,下载 填下邮箱等信息免费下载非商业板,并安装好软件
- 名称 - 随意填
- 协议 - SSH
- 主机 - 路由本地地址或者绑定的域名
- 端口 - 22
- 登录用户和密码 - 你的路由登录信息
- 登录成功后,在终端输入
vi /etc/config/uhttpd
- 按照下方格式添加SSL端口
config uhttpd 'main'
list listen_http '0.0.0.0:80'
list listen_http '[::]:80'
list listen_https '0.0.0.0:443' #ssl端口
list listen_https '[::]:443' #ssl端口
option redirect_https '1'
option home '/www'
option rfc1918_filter '0'
option max_connections '100'
option cert '/etc/cert/cert.crt' #证书路径
option key '/etc/cert/cert.key' #证书路径
option cgi_prefix '/cgi-bin'
list lua_prefix '/cgi-bin/luci=/usr/lib/lua/luci/sgi/uhttpd.lua'
option network_timeout '30'
option http_keepalive '20'
option tcp_keepalive '1'
option ubus_prefix '/ubus'
option script_timeout '360'
option max_requests '50'
list index_page 'cgi-bin/luci'
在阿里云里创建一个免费的证书
- 阿里云搜索ssl,点击ssl证书
证书购买页面
- 域名类型 - 单个域名
- 证书类型 - DV域名级SSL
- 证书等级 - 免费版
- 证书品牌 - GeoTrust
- 选择Apache下载
- 解压后得到3个文件,其中chain.crt没用。
- 把public.crt文件改为cert.crt,key文件改为cert.key
上传这两个文件到
/etc/cert/
目录(可以使用WinSCP),下载- 安装
- 文件协议 - SFTP
- 主机名 - 路由地址或域名地址(远程),端口22
- 用户名密码 - 路由登录信息
- 在etc文件新建cert文件夹
- 把文件直接本地拖到cert里即可
在路由设置 网络 - 防火墙 - 端口转发里添加WAN口的8443到本地路由地址的443端口
重启uhttpd服务,在路由器启动项里手动点击重启,或者SSH输入
service uhttpd restart
或者直接重启路由器
访问 https://lede.你的域名.com:8443
即可远程访问你的路由