问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

为飞牛OS基于FRP的内网穿透开启HTTPS加密

创作时间:
作者:
@小白创作中心

为飞牛OS基于FRP的内网穿透开启HTTPS加密

引用
CSDN
1.
https://blog.csdn.net/u013062709/article/details/145523513

在家庭或小型办公环境中,NAS(网络附加存储)设备通常只在局域网内使用。但随着远程访问需求的增加,越来越多的用户希望通过公网访问NAS。然而,公网访问也带来了安全和隐私问题。本文将详细介绍如何为飞牛OS基于FRP的内网穿透开启HTTPS加密,以确保数据传输的安全性。

安全隐患

首先,几乎所有的教程在设置时都选的是TCP或HTTP,而没有选择HTTPS,这相当于让个人数据在网络上"裸奔"。其次,注册passnat后需要阅读用户协议,其中包含了重要的安全提示。例如,如果在NAS中保存了敏感照片或影音资源,没有加密的情况下,这些数据可能被监管系统扫描到,导致账号被封甚至面临法律风险。

因此,无论是为了防止被监管系统扫描个人隐私,还是防止被不法分子恶意抓包,加密都是非常重要的。

准备工作

查阅passnat官网文档可知,源站如果支持https,只需简单配置一下。对于飞牛OS用户来说,这是一个好消息,因为飞牛OS原生支持http和https。为了安全起见,建议在飞牛OS中开启强制https。

具体操作步骤如下:

  1. 进入【系统设置】
  2. 选择【安全性】
  3. 进入【端口设置】
  4. 点击【高级设置】
  5. 勾选【强制HTTPS连接】
  6. 建议同时勾选【重定向80与443端口】,这样可以更方便地使用域名访问。

生成证书

方法一:使用飞牛OS的证书(推荐)

安装飞牛OS时系统会自动生成一个证书,这个证书每个人都是不一样的,可以放心使用。

具体操作步骤如下:

  1. 进入【系统设置】
  2. 选择【安全性】
  3. 进入【证书】
  4. 选择【fnOS】
  5. 点击【下载】

注意: 下载的证书包含证书本身以及证书密钥,后续只用到证书,密钥文件一定要妥善保存,一旦泄露就等于把大门钥匙给了别人,建议用完就删。

方法二:自签名证书(适合喜欢折腾的人)

生成自签名根证书

  1. 安装openssl(Linux系统一般自带,Windows系统可以从官网下载)
  2. 打开命令行,进入openssl目录
  3. 生成根证书密钥:
    openssl genrsa -out myca.key 2048
    
  4. 生成根证书:
    openssl req -new -x509 -nodes -key myca.key -sha256 -days 730 -out myca.crt -subj "/C=CN/CN=My Root CA/O=MyRootCA"
    

生成服务器根证书

  1. 生成服务器密钥:
    openssl genrsa -out server.key 2048
    
  2. 生成签署请求文件:
    openssl req -new -sha256 -key server.key -subj "/C=CN/O=MyRootServer/OU=MyServer/CN=改成你的passnat域名" -out server.csr
    
  3. 设置证书扩展信息:
    subjectAltName = @alt_names
    [alt_names]
    DNS.1 = www.example.com
    DNS.2 = example.com
    DNS.3 = *.example.com
    IP.1 = 192.168.xxx.xxx
    
  4. 使用根证书签署服务器证书:
    openssl x509 -req -in selfserver.csr -CA myca.crt -CAkey myca.key -CAcreateserial -out server.crt -days 365 -extfile ./123.txt
    

飞牛OS添加根证书

  1. 进入【系统设置】
  2. 选择【安全性】
  3. 进入【证书】
  4. 选择【新增证书】
  5. 描述随便填,比如我的证书
  6. 证书选择 server.crt
  7. 私钥选择 server.key
  8. 确认保存

至此,飞牛OS的所有设置全部完成。

添加根证书

无论你使用的是飞牛OS的证书还是自签名证书,方法都是一样的。

客户端添加证书

Windows设备添加自签名根证书

最简单的方法:

  1. 双击打开 myca.crt(如果是从飞牛OS导出的证书,请选择对应的crt文件)
  2. 点击【安装证书】
  3. 选择【当前用户】
  4. 选择【将所有证书都放入下列存储】
  5. 选择【受信任的根证书颁发机构】
  6. 完成

手机、平板等添加自签名根证书

不同手机可能不一样,一般是:

  1. 进入【系统设置】
  2. 选择【安全】
  3. 选择【加密与凭据】
  4. 选择【安装证书】

但是手机上的证书问题目前无解,因为安卓7.0及以上版本,用户安装的证书不会被系统当做可信证书,需要用ROOT权限安装才行。

passnat设置

主要设置如图(此处省略具体图片,但应包含在原文中)

更多细节以及飞牛OS相关配置请参考其他教程,本文不再赘述。

公网访问

完成以上设置,并且在飞牛OS中部署好frpc客户端以后你就可以进行公网访问了,域名就是passnat给你的那个域名,如果一切顺利的话你的浏览器不会弹出任何警告,点击证书也可以看到这就是我们签发的证书。

如果你直接在地址栏输入域名出现以下情形:
这是因为浏览器默认用http访问,解决方法很简单,就是指定使用https协议,在域名前加上 https://,这样浏览器就会用https访问了。

遇到的问题

openssl下载速度慢

别问,懂的都懂,你要学会【上网】

windows下提示 Can’t open xxx, Permission denied

以管理员身份运行powershell

执行命令提示 Can’t load XXX/.rnd into RNG

Can't load /home/user/.rnd into RNG
random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:88:Filename=/home/user/.rnd

在那个目录(比如我这里就需要在 /home/user/)中生成一个 .rnd 随机文件即可

cd /home/user/
openssl rand -writerand .rnd

其实脸滚键盘随便输入一大堆乱起八糟的东西然后重命名成 .rnd 也行,这里只是需要一个随机的东西做种子确保安全性,这里需要“一大堆”乱七八糟的东西,至少要1KB以上吧

已添加证书,但是chrome打开仍然提示

此服务器无法证实它就是 XXXX - 它的安全证书没有指定主题备用名称。这可能是因为某项配置有误或某个攻击者拦截了您的连接

其实就是本文的“设置证书扩展信息”章节
请参考https://www.cnblogs.com/bxmm/p/18583262

公网使用域名访问没问题了,但是局域网使用ip访问会提示不安全

网肯定会提示,因为我们的证书是针对域名签发的,而不是ip地址签发的。

解决方法很简单:

  1. 签证书时把局域网ip也加进去
  2. 忽略(家庭局域网嘛,自己家里的路由器能有什么问题呢?)

本文原文来自CSDN,作者:u013062709

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号