IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    重磅,Tailscale的Derp服务器原生支持自签发证书

    ysicing (i@ysicing.me)发表于 2025-04-05 21:32:58
    love 0

    重磅,Tailscale 的 Derp 服务器原生支持自签发证书

    最近比较忙,鸽了很久 😄。如题的功能已经出了比较长的时间了。本篇文章简单讲讲有啥新的调整。

    背景

    在官方支持之前,大家普遍通过修改源码来支持的,也有不少大佬提供相关镜像。可能大家会有疑问,为啥会有这类需求?受限于部分网络环境下 LetsEncrypt 是被禁用的;还有一些场景,使用域名的方式需要 ICP 许可,跨云 IDC 会比较麻烦。

    开源作者讨论 tailscale#issues/11776
    相关 PR tailscale#pull/15208

    新版本好处

    • • 不需要域名
    • • 不需要 ICP 许可/接入
    • • 不需要证书

    新版本部署

    编译或下载二进制

    如果你有 Go 的环境,可以使用如下命令

    go install tailscale.com/cmd/derper@latest
    

    当然也可以使用我编译好的二进制文件

    wget https://c.ysicing.net/oss/tiga/linux/amd64/derper
    

    将相关二进制复制到 /usr/bin/derper, 并赋予执行权限

    cp -a derper /usr/bin/derper
    chmod +x /usr/bin/derper
    

    手动签发 IP 证书

    示例是你的 derper 公网 ip

    export DERP_IP="1.1.1.1"
    mkdir /etc/derper
    openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout /etc/derper/${DERP_IP}.key -out /etc/derper/${DERP_IP}.crt -subj "/CN=${DERP_IP}" -addext "subjectAltName=IP:${DERP_IP}"
    

    手动启动 derper

    derper --hostname="1.1.1.1"  -certmode manual -certdir /etc/derper
    

    启动完成会提示如下信息

    2025/04/05 20:00:25 Using self-signed certificate for IP address "1.1.1.1". Configure it in DERPMap using: (https://tailscale.com/s/custom-derp)
      {"Name":"custom","RegionID":900,"HostName":"1.1.1.1","CertName":"sha256-raw:970d3fae5ccd1480ad5e1017597c91f33d4bf0ef5bbeb5f54a2c20c0156ca081"}
    

    然后可以打开浏览器访问这个网址看看,需要放行 80,443,3478, 其中 3478 是 UDP 端口。

    配置 ACL

    方便显示,格式化如下:

    {
        "RegionID": 910,
        "RegionCode": "yxvm",
        "RegionName": "yxvm",
        "Nodes": [
            {
                "Name": "yxvm",
                "RegionID": 910,
                "HostName": "46.x.x.x",
                "IPv4": "46.x.x.x",
                "CertName":"sha256-raw:8a81f6658a7e1830fbaf363b72427f975d1f033d1616bf603cec3defa7e52391",
                "InsecureForTests": true 
            }
        ]
    }
    

    保存之后,使用 tailscale netcheck 测试

    * DERP latency:
            - yxvm: 118.8ms (yxvm)
    

    总结

    如果你之前就使用自签证书的话,更新一下二进制就行



沪ICP备19023445号-2号
友情链接