ssl.SSLError: [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1007) 问题现象 语音合成功能突然不能用了,查看后台log发现TTS_BertVits2API的请求一直失败,报错为ssl握手失败。 我使用的是免费的原神角色语音合成,打开其网页地址:https://v2.genshinvoice.top ,发现在浏览器中就会报不安全证书的警告。 问题排查 加verify=False跳过证书校验:失败 考虑到目标网址的证书异常,我在请求中给加了个verify=False,再跑,错误依旧。 查看当前环境 降级urllib3到1.23: 搞定 问题解决。 屏蔽告警 由于https://v2.genshinvoice.top 的证书有问题,即使在浏览器上访问也会告警,用urllib3去请求同样会出现一个告警。 如果你觉得这个告警烦人,可以用这个方式屏蔽掉。
Web
一、前言 小落同学原先没有做多用户,想改版一下可以支持多用户,所以需要改造原来的websocket API接口目标示例的请求如下:ws://x.rg4.net/ws/b7e14e7c1a1d42019d866166c81119d1?llm=chatgpt&character_id=2&chatmode=text&token= OK,那让我们来试试。 二、让Django支持websocket 在 Django 中启用 WebSocket 通常需要借助第三方库,因为 Django 自身的框架并不直接支持WebSocket。一个流行的选择是使用 Django Channels,这是一个为 Django 提供异步能力的扩展,包括 WebSocket 支持。 以下是如何在 Django 项目中启用 WebSocket 的基本步骤: 1. 安装 Django Channels 2. 更新 Django 设置 在你的 Django 项目的 settings.py 文件中,你需要添加 Channels 到你的 INSTALLED_APPS 列表中,并设置 注意:’xiaoluo.asgi.application’ 应该替换为你的 Django 项目的实际名称和 ASGI 应用程序的路径。 3. 创建 ASGI 应用程序: […]
关于letsencrypt 官网:https://letsencrypt.org文档:https://letsencrypt.org/zh-cn/docs/文档2:https://eff-certbot.readthedocs.io/en/latest/using.html#certbot-commands 安装certbot 获取证书 命令 中间需要你在你的域名解析里加一个类型为TXT的域名,域名的名字为:_acme-challenge,txt的值为certbot提供给你的一段字串。 设置成功后回车,certbot会自动校验,校验通过了会提示你,生成证书成功,并告知你证书保存的路径。 部署证书 如果你用了宝塔,那你可以将生成的证书内容填到宝塔的SSL配置那里。 以我申请到的证书及路径为例: 部署完成后,可以考虑让nginx重新加载一下 问题
[TOC] 一、前言 1。我的Django APP(omserver)有在settings.py里启用csrf_token middleware 2。在我的所有form里都有加{% csrf_token %}标签代码里有两种方式的POST,1)有form: 直接将整个form serialize(),然后 ajax submit 2)没有form: 3。在开发环境跑所有功能都OK。 4。开发环境和部署环境的一个差别1)开发环境访问后台是直接连接后台的django地址:http://localhost:8000/omserver2)部署环境访问后台是跟前端共用了一个域名:https://x.rg4.net ,然后这个域名再通过nginx反向代码分别跳转到前台(http://localhost:3000)和后台(http://localhost:8000/omserver) 二、各种尝试 尝试1:怀疑是不是过nginx后,cookie丢失?nginx反向路由加一些头 结果:没用,403依旧。 尝试2:怀疑csrf token没传到django?在我的app里加一个 middleware,拦截所有的request,并将其内容打出来以确认 django有没有收到前端传过来的csrf token 1)先在我的app omserver下创建一个middleware.py,然后加入以下代码 2)将这个middleware加入到settings.py 结果:django有收到前端传过来的csrf token,但就是403 这里打印出来的csrfmiddlewaretoken值,与我在前面javascript ajax post时打印出来的值是一毛一样的,为什么报错? 尝试3:分析csrf.py代码,将校验过程打印出来 1)拿到检验错误原因为:{“detail”:”CSRF Failed: Origin checking failed – https://x.rg4.net does not match any trusted origins.”}2)重新修改settings.py,将前面禁用掉的csrf middleware重新打开 同时在settings.py里加入 这个时候报错变成了 注:中间有碰到一个新问题,刷新前端界面报错 […]
最近每次登录上自己的ECS,都屡屡发现这么一个消息,一开始以为是别人搞错了(我这么一个小破服务器不可能会有人来恶意攻击),想想可能过两天就不会有了,没放在心上。 没想到持续了几个星期,一直都这样。 无奈之余,我就下了狠心把这个IP给ban了。 BUT。。。。。。Turned out it’s the IP address from my office……Found that I was banned to access to my ECS from my office. 无奈之作,canceled the iptables rule. So who is trying to crack my ECS? If you really need it, I can hand over my ECS login password to […]
Prevent bad bots from crawling your website Bad bots here, I mean bot like AhrefsBot, which sucked all my VPS resources out, including but not limited to CPU usage up to 30%. So I decided to block it from crawling my website for now. Tried the following two steps, and […]
Found some features were missing after upgraded my blog to the latest version, WordPress v4.0, such as blogrolls. Tried to find it all over the dashboard, but got no luck. So I turned to the almighty Google, finally got the solution, and it’s really easy. All you need to do […]
I was using PageLines’s Platform theme for over 3 years, I really liked it. It’s simple, fast, and easy to use. The only problem is Platform theme does not mobile friendly, it’s sucked when you visit my blog by your smart phone. And this became the root reason of my […]
I was having problem while updating one of my plugin weeks ago, telling me that Could not create directory. /home/<>/public_html/wp-content/plugins/download-manager Plugin install failed. or Unable to locate WordPress Content directory (wp-content).
Weeks ago, I upgraded my blog to WordPress 3.8. After that, I found that if I dont use GoAgent to break the GFW, it took me about 1 minute to show the home page. After did some more check, I confirmed that its all because WordPress 3.8, and its latest […]