URenko / Accesser

🌏一个解决SNI RST导致维基百科、Pixiv等站点无法访问的工具 | A tool for solving SNI RST
GNU General Public License v3.0
872 stars 77 forks source link

希望支持civitai.com #134

Closed phlinsia closed 1 year ago

phlinsia commented 1 year ago

我试验的版本为Accesser v0.8.0。 按Wiki的指引,测试发现civitai.com无法通过以下方式连接,判断并非单纯的DNS污染。

curl https://civitai.com --resolve "civitai.com:443:104.18.22.206" -v
curl https://civitai.com --resolve "civitai.com:443:104.18.23.206" -v

接着,我尝试在pac文件中添加了如下语句: "civitai.com": 1 访问civitai.com,accesser报错:

2023-07-26 07:04:46 DEBUG    Accesser: 127.0.0.1:2252 say: CONNECT civitai.com:443 HTTP/1.1
2023-07-26 07:04:47 DEBUG    Accesser: [ 2252] DNS: civitai.com -> 104.18.22.206
2023-07-26 07:04:47 DEBUG    Accesser: [ 2252] server_hostname=''
2023-07-26 07:04:47 ERROR    asyncio: Task exception was never retrieved
future: <Task finished name='Task-44' coro=<handle() done, defined at accesser\__init__.py:90> exception=SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:992)')>
Traceback (most recent call last):
  File "accesser\__init__.py", line 123, in handle
  File "asyncio\streams.py", line 48, in open_connection
  File "asyncio\base_events.py", line 1106, in create_connection
  File "asyncio\base_events.py", line 1139, in _create_connection_transport
  File "asyncio\sslproto.py", line 574, in _on_handshake_complete
  File "asyncio\sslproto.py", line 556, in _do_handshake
  File "ssl.py", line 979, in do_handshake
ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:992)

搜索发现 [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] 是一个证书问题,我不知道该怎么解决。 在 #132 中似乎在 [alter_hostname] 加入同公司没被墙的域名解决了问题。但我只是依样画葫芦,找不到同公司的其它域名,也不清楚背后的原理,所以未能试验成功。 希望后续能提供对civitai.com的支持。

Kenxu2022 commented 1 year ago

civitai使用了cloudflare的CDN,而cloudflare要求SNI严格与域名匹配,所以用这个法子是行不通的😂

phlinsia commented 1 year ago

原来如此!感谢回复!

URenko commented 1 year ago

wiki:

如果没有合适的server_name(例如Cloudflare),应当考虑前面提到的更好的技术(ECH、HTTP/3)。