使用域名远程访问家庭路由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即可远程访问你的路由

最后修改:2021 年 02 月 16 日
如果觉得我的文章对你有用,请随意赞赏