使用简单方法解决SNI阻断问题

使用简单方法解决SNI阻断问题

SNI阻断技术简单介绍

TLS 是一个伟大的技术,它确保了网络传输的内容不被中间人篡改。现在越来越多的网站正在使用 HTTPS(即 HTTP over TLS)来保护网页内容。与此同时,TLS 设计中的一个缺陷,却使得阻断 TLS 连接变得可控。

在建立新的 TLS 连接时,客户端(如浏览器)发出的第一个握手包(称为 Client Hello)中,包含了想要访问的域名信息(称为 SNI,Server Name Indication)。某些服务器(比如 CDN)会同时支持多个域名,在加密传输之前,它需要知道客户端访问的是哪个域名。于是 SNI 必须以明文的方式传输。并且由于浏览器并不知道服务器是否需要 SNI,浏览器会对所有的 TLS 握手都加入 SNI。

于是,大家都懂的。根据黑名单,某些防火墙对于 TLS 连接可以进行精确地阻断。

阅读更多
在中国国内使用Google reCAPTCHA 2/3 验证码的方法

在中国国内使用Google reCAPTCHA 2/3 验证码的方法

我看版本2的有人说了,我简单的说一下版本3的使用和集成

国内使用reCAPTCHA只需要将 www.google.com 替换成 www.recaptcha.net,即可在国内使用 recaptcha 的服务。
https://www.google.com/recaptcha/api.js 替换成 https://www.recaptcha.net/recaptcha/api.js,https://www.google.com/recaptcha/api/siteverify 替换成 https://www.recaptcha.net/recaptcha/api/siteverify。

浏览器界面请使用以下方法使用

1
2
3
4
5
6
7
8
9
10
11
<script src="https://www.recaptcha.net/recaptcha/api.js?render=客户端代码"></script>
<script>
//验证reCAPTCHA是否载入
grecaptcha.ready(function () {
console.log("reCAPTCHA载入成功")
});
//生成特征验证码
grecaptcha.execute('客户端代码', {action: 'homepage'}).then(function(token) {

});
</script>
阅读更多
使用 acme.sh 申请 Let's Encrypt 泛域名SSL证书详细教程

使用 acme.sh 申请 Let's Encrypt 泛域名SSL证书详细教程

使用 acme.sh 申请 Let’s Encrypt 泛域名SSL证书详细教程

acme.sh

acme.sh是一个实现了 acme 协议的脚本,可以从 Let’s Encrypt 生成免费的SSL证书

本文只给出配合解析商 API 申请泛域名证书的过程教程,acme.sh还有很多很强大的功能例如配合 Nginx 或者 Apache 等自动申请证书,请自行查看 github 项目 wiki 发掘

阅读更多