V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yuanfnadi
V2EX  ›  程序员

nginx 对于 https 重定向的问题

  •  
  •   yuanfnadi · 2017-08-14 13:35:12 +08:00 · 5547 次点击
    这是一个创建于 2658 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我现在的博客域名是 blog.diamondyuan.com 。然后证书是单域名的 blog.diamondyuan.com.
    然后我把*.diamondyuan.com 都解析到了同一个主机。
    ```
    server {
    listen 443 ssl;
    server_name *.diamondyuan.com;
    rewrite ^ https://blog.diamondyuan.com$request_uri? permanent;
    }

    ```
    15 条回复    2017-08-15 09:05:56 +08:00
    yuanfnadi
        1
    yuanfnadi  
    OP
       2017-08-14 13:35:56 +08:00
    nginx 的配置如上。
    现在用 chrome 访问会先报警一次,说是证书不对。然后点击继续访问才能成功跳转。
    yuanfnadi
        2
    yuanfnadi  
    OP
       2017-08-14 13:37:02 +08:00
    此服务器无法证明它是 uuu.diamondyuan.com ;其安全证书来自 blog.diamondyuan.com 。出现此问题的原因可能是配置有误或您的连接被拦截了。继续前往 uuu.diamondyuan.com (不安全)
    点击继续后能成功跳转到 diamondyuan.com.
    请问除了申请*.diamondyuan.com 的证书以外,还有什么好方法吗。
    wizardoz
        3
    wizardoz  
       2017-08-14 13:38:31 +08:00
    http 跳转到 https,要不然应该没有办法。
    yuanfnadi
        4
    yuanfnadi  
    OP
       2017-08-14 13:40:57 +08:00
    @wizardoz 我 http 已经全部跳转到 https 了。
    server {
    listen 80;
    server_name *.diamondyuan.com;
    return 301 https://$host$request_uri;
    }

    只是 xxx 跳转到 blog 会先遇到 chrome 的一次警告。
    虽然一般没人会输入 xxx
    xolor
        5
    xolor  
       2017-08-14 13:41:28 +08:00
    uuu.diamondyuan.com 申请一个证书呀。
    yuanfnadi
        6
    yuanfnadi  
    OP
       2017-08-14 13:44:08 +08:00
    @xolor 纠结了一下,给 www 申请了一个。其他的警告就警告吧。
    wizardoz
        7
    wizardoz  
       2017-08-14 13:46:05 +08:00
    @yuanfnadi 我的意思是 http://*.diamondyuan.com 直接跳转到 https://blog.diamondyuan.com 啊。如果要先到 https://uuu.diamondyuan.com 这时候就算服务端返回 302,浏览器也觉得这个返回不安全啊。我觉得如果这个问题被你绕过去了,那就是浏览器的一个大 BUG
    BOYPT
        8
    BOYPT  
       2017-08-14 13:48:17 +08:00
    如果这也能给你绕过去,https 还有什么存在的意义?
    alairs
        9
    alairs  
       2017-08-14 13:48:30 +08:00
    我说说我的办法,我原来是 alair.cn ,现在是 unixetc.com 申请证书时包含 www.alair.cn alair.cn unixetc.com www.unixetc.com,然后才能在 nginx 中将其他三个 301 到 unixetc.com
    blankme
        10
    blankme  
       2017-08-14 13:51:05 +08:00
    换个思路:

    设置 CNAME 记录,把*.diamondyuan.com alias 到 blog.diamondyuan.com
    yuanfnadi
        11
    yuanfnadi  
    OP
       2017-08-14 13:53:50 +08:00
    @wizardoz 有道理。问题解决了。
    不去管输入 https://xxx.diamondyuan.com 的人了。
    我一开始弄混了。
    wizardoz
        12
    wizardoz  
       2017-08-14 14:05:16 +08:00
    @blankme 改 CNAME 记录应该是行不通的,它最后只是得到了最终 IP,对于浏览器来说,域名还是 www 的域名,证书还是 blog 的证书,它还是要报错的。
    kmdgeek
        13
    kmdgeek  
       2017-08-14 19:19:09 +08:00 via Android
    @yuanfnadi 你需要的是一个 *.diamondyuan.com 的泛域名证书。Let's Encrypted 好像明年开始提供泛域名证书。
    lookas2001
        14
    lookas2001  
       2017-08-15 08:04:43 +08:00 via Android
    @kmdgeek 求新闻出处,没找到。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   923 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:16 · PVG 06:16 · LAX 14:16 · JFK 17:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.