V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ddd270700
V2EX  ›  问与答

给腾讯云的 IP 申请自签证书,出现 SSL_UNRECOGNIZED 错误 [有偿求教]

  •  1
     
  •   ddd270700 · 2 天前 · 894 次点击

    背景: 腾讯云上有一个 taiga 服务,必须要通过 https 访问才能完全可用。但是,我将域名指向腾讯云的时候,提示要备案,厌恶至极。 既然域名不能用,所以,我想尝试一下用 openssl 自签 IP 地址的证书,然后用 Nginx Proxy Manager 做代理访问 taiga 。请注意,如果不挂证书,我已经能用 NPM 反代 taiga 了,但是不是 https 。

    问题来了: 我参照网上的自签方式,给我的 IP 签证书,挂到 NPM ,但是浏览器访问,总是提示:ERR_SSL_UNRECOGNIZED_NAME_ALERT 。水平有限,解决不了。

    酬谢: 请指点,有酬谢。

    第 1 条附言  ·  2 天前
    问题已经解决:我在腾讯云上安装了 NPM ,然后不用域名,直接用 IP 地址反代上面安装的 taiga 服务。这个 taiga 服务很有意思,如果不用 https 访问,那么有些功能是打不开的,可能是基于安全的考虑。
    我在 zerossl 上申请了 IP 地址的证书,但是,最核心的还是有大佬指出其内部代码天然就排斥了 IP 的访问形式。通过注释掉这一行来解决。
    感兴趣的可以围观一下效果: https://42.192.49.249/ ,用户名:v2ex ,密码:v2exer
    15 条回复    2025-02-04 10:58:57 +08:00
    Jianrry
        1
    Jianrry  
       2 天前 via iPhone
    有两种方案,你可以参考一下:

    1. 使用 ip 证书,zerossl 提供付费 ip 证书。

    2. 在另一台服务器使用 nginx 反向代理,指定腾讯云的 ip 地址和域名。
    SUMIMASEI
        2
    SUMIMASEI  
       2 天前
    虽然可以通过自签证书和 IP 地址访问服务,但并不是一个长期解决方案。建议还是尽快完成域名备案。
    superkkk
        3
    superkkk  
       2 天前 via iPhone
    1 用证书链签证书,客户端信任证书链
    2 把服务器放到外国
    3 有便宜的 ip 证书一年大概 100rmb
    flynaj
        4
    flynaj  
       2 天前 via Android
    ERR_SSL_UNRECOGNIZED_NAME_ALERT 这个错误就是自签不受信任,这个只能你自己用。
    ddd270700
        5
    ddd270700  
    OP
       2 天前
    @Jianrry
    我目前困扰的就是把域名指向腾讯云,腾讯云要备案。
    我在国外的 VPS 上已经测试通过了,是可以用的,速度有些慢。
    ddd270700
        6
    ddd270700  
    OP
       2 天前
    @superkkk
    我正在找便宜的 zerossl ip 证书。
    ddd270700
        7
    ddd270700  
    OP
       2 天前
    @flynaj
    我曾认为用自签的 ip 证书挂到腾讯云的 NPM 上,用的时候只是客户端浏览器要麻烦点击操作几下,后来发现,是用不了。
    epiphyllum
        8
    epiphyllum  
       2 天前
    原因:
    Nginx Proxy Manager 的锅,它只考虑了用域名的情况,用 IP 的话默认会被坑:
    在"NPM"的 Github Repo 里面可以找到这样一行配置:
    https://github.com/NginxProxyManager/nginx-proxy-manager/blob/498109addb6f2541082b88cb6ae115939321873c/docker/rootfs/etc/nginx/conf.d/default.conf#L36

    由于上述默认配置,用 https://your_ip/访问会被拒绝 TLS 连接。
    这个问题和证书提供商没有关系。


    解决办法:
    方法 1:直接改容器内配置,把这一行注释掉
    # 假设容器名称是 npm-app-1
    docker exec npm-app-1 sh -c "sed -i 's/^[[:space:]]*listen 443 ssl;/#&/' /etc/nginx/conf.d/default.conf && grep 'listen 443 ssl;' /etc/nginx/conf.d/default.conf"

    方法 2:修改 NginxProxyManager 的源代码,自行构建镜像。

    效果如下图:
    ETiV
        9
    ETiV  
       2 天前 via iPhone
    找“函数计算”类似的功能,把函数开在同一个 VPC 内。然后用函数计算做内网的请求转发,转发这部分只用 http 就行
    ddd270700
        10
    ddd270700  
    OP
       2 天前
    @epiphyllum
    膜拜大佬,我验证一下,如果成功了,再来酬谢。
    jsyzdej
        11
    jsyzdej  
       2 天前 via Android
    我记得 zerossl 提供免费的 ip 证书
    ddd270700
        12
    ddd270700  
    OP
       2 天前
    @epiphyllum
    大佬,你最牛。
    你的办法是可行的。通过你的方法 1 ,我已经在腾讯云上成功配置了 zerossl 的 IP 地址证书给 NPM ,然后用 NPM 反代 taiga [项目管理开元软件] ,实现了所有的功能。
    下面是我的 VX ,请大佬加我,红包奉上。恭祝乙巳年财源滚滚,桃花运不断。
    cmVlZHNpbnRoZXdpbmQ=
    ddd270700
        13
    ddd270700  
    OP
       2 天前
    @jsyzdej 是的,我就是在 zero 上申请的,很方便。
    ysc3839
        14
    ysc3839  
       1 天前
    印象中腾讯云 https 不用 443 端口就不需要备案,可以换别的端口试试
    ddd270700
        15
    ddd270700  
    OP
       1 天前
    @ysc3839
    这个 taiga 软件,如果用了别的端口,比如 11443 ,他的个别功能就不能使用。比如它有一个/admin 目录,用了其他端口,就会出现 CSRF 问题,处理起来非常棘手 [当然,我水平有限] 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1295 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 17:00 · PVG 01:00 · LAX 09:00 · JFK 12:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.