Caddy域名配置与QUIC协议

Posted liujiangAA

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Caddy域名配置与QUIC协议相关的知识,希望对你有一定的参考价值。

1:配置域名和服务器

 因为要支持QUIC协议必须要有自己的域名和安全证书,因此需要有自己的域名服务器,首先自己购买一个域名,然后和阿里云公网之前申请的大陆服务器进行域名绑定,绑定后访问网页的时候显示没有备案,因为大陆的服务器和域名绑定的时候需要备案。备案过程很繁琐,大约需要20个工作日。

       为了方便起见,购买了一周的香港服务器,香港服务器是不需要备案的。

       

  首先将域名和香港服务器进行绑定和解析,如下图 所示:

       

  绑定ip与域名后,显示如下:

       

  在本例实例安全组中配置规则:

     因为QUIC协议走UDP端口,因此规则中除了其他配置规则外,还需要配置UDP协议规则:如下图所示

  

2:服务器上部署Caddy

  然后将caddy服务器部署到服务器上,并且让其在QUIC模式下运行。

  

  其中Caddyfile配置如下和上一章讲到的配置一致,此处省略。

  通过命令可以看到UDP端口处于开启状态,如果没有开启QUIC协议,UDP默认是不开启的,只开启TCP:

  

  

  

3:QUIC客户端支持 

  要在浏览器中运行QUIC协议,首先浏览器必须支持QUIC,目前支持QUIC的浏览器有chrome。

  客户端开启QUIC:

  在浏览器中运行chrome://flags,将Experimental QUIC protocal选项由default改为Enabled,重启浏览器。

  

  运行www.flowerfireegoo.com

  

  

  从上图中可以看出访问域名的时候,服务器走的是caddy服务器。并且caddy默认提供安全证书。

  除此之外,还必须让浏览器强制对于指定域名启用quic 协议。

  在命令行输入如下命令:

  chrome.exe --no-proxy-server --enable-quic --quic-host-whitelist="HOST" --origin-to-force-quic-on=HOST:PORT

  

4:wireshark抓包以及碰到的问题 

  下载抓包软件wireshark,重新运行网站,用wireshark进行抓包,并且过滤quic协议。

  

  

  从上图中,可以看到并没有检测到quic请求。

  在google浏览器中运行chrome://net-internals/#quic如下图所示:

  

  

  

  可以看出google 62版本的浏览器支持的quic协议是39,但是caddy目前支持的最高QUIC协议版本是38,因此不兼容。

5:解决方案

  解决方法:下载低版本的google。

  因此我下了59版本的google,发现其支持caddy QUIC版本,通过命令行启动:

   

  然后通过chrome://flags开启QUIC支持,重新开启服务器,在浏览器中运行www.flowerfireegoo.com

  浏览器打开chrome://net-internals/#quic,刷新网站,如下所示:

  

  通过抓包软件,可以看到走的是QUIC协议:

  

 

 

  

 

 

  

 

 

 

 

 

 

 

 

 

 

  

 

 

   

 

以上是关于Caddy域名配置与QUIC协议的主要内容,如果未能解决你的问题,请参考以下文章

在docker中使用caddy和trojan-go搭建网络代理服务

Nginx 配置 HTTPS(多域名)

Caddy – 方便够用的 HTTPS server 新手教程

Web基础与HTTP协议

Tomcat启用HTTPS协议配置过程

Web基础与HTTP协议