Let's Encrypt,免费好用的 HTTPS 证书

文章目录

很早之前我就在关注 Let's Encrypt 这个免费、自动化、开放的证书签发服务。它由 ISRG(Internet Security Research Group,互联网安全研究小组)提供服务,而 ISRG 是来自于美国加利福尼亚州的一个公益组织。Let's Encrypt 得到了 Mozilla、Cisco、Akamai、Electronic Frontier Foundation 和 Chrome 等众多公司和机构的支持,发展十分迅猛。

申请 Let's Encrypt 证书不但免费,还非常简单,虽然每次只有 90 天的有效期,但可以通过脚本定期更新,配好之后一劳永逸。经过一段时间的观望,我也正式启用 Let's Encrypt 证书了,本文记录本站申请过程和遇到的问题。

我没有使用 Let's Encrypt 官网提供的工具来申请证书,而是用了 acme-tiny 这个更为小巧的开源工具。以下内容基本按照 acme-tiny 的说明文档写的,省略了一些我不需要的步骤。

ACME 全称是 Automated Certificate Management Environment,直译过来是自动化证书管理环境的意思,Let's Encrypt 的证书签发过程使用的就是 ACME 协议。有关 ACME 协议的更多资料可以在这个仓库找到。

首先创建一个目录,例如 ssl,用来存放各种临时文件和最后的证书文件。进入这个目录,创建一个 RSA 私钥用于 Let's Encrypt 识别你的身份:

接着就可以生成 CSR(Certificate Signing Request,证书签名请求)文件了。在这之前,还需要创建域名私钥(一定不要使用上面的账户私钥),根据证书不同类型,域名私钥也可以选择 RSA 和 ECC 两种不同类型。以下两种方式请根据实际情况二选一。

1)创建 RSA 私钥(兼容性好):

阅读全文

APK无源码调试

这年头,apk全都是加密啊,加壳啊,反调试啊,小伙伴们表示已经不能愉快的玩耍了。静态分析越来越不靠谱了,apktool、ApkIDE、jd GUI、dex2jar等等等等已经无法满足大家的需求了。那么问题就来了,小伙伴们真正需要的是什么?好的,大家一起呐喊出你内心的欲望吧,我们的目标是——“debug apk step by step”。

先来说说那些不靠谱的工具,就是今天吭了我小半天的各种工具,看官上坐,待我细细道来。

阅读全文

crontab 定时任务

通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。

分 时 日 月 星期 要运行的命令

向cron进程提交一个crontab文件之前,首先要设置环境变量EDITOR。cron进程根据它来确定使用哪个编辑器编辑crontab文件。9 9 %的UNIX和LINUX用户都使用vi,如果你也是这样,那么你就编辑$HOME目录下的. profile文件,在其中加入这样一行

然后保存并退出。不妨创建一个名为 cron的文件,其中是用户名,例如, davecron。在该文件中加入如下的内容。

保存并退出。注意前面5个域用空格分隔。

在上面的例子中,系统将每隔1 5分钟向控制台输出一次当前时间。如果系统崩溃或挂起,从最后所显示的时间就可以一眼看出系统是什么时间停止工作的。在有些系统中,用tty1来表示控制台,可以根据实际情况对上面的例子进行相应的修改。为了提交你刚刚创建的crontab文件,可以把这个新创建的文件作为cron命令的参数

现在该文件已经提交给cron进程,它将每隔1 5分钟运行一次。同时,新创建文件的一个副本已经被放在/var/spool/cron目录中,文件名就是用户名(即dave)。

使用-l参数列出crontab文件

可以使用这种方法在$HOME目录中对crontab文件做一备份

这样,一旦不小心误删了crontab文件,可以用上一节所讲述的方法迅速恢复。

如果希望添加、删除或编辑crontab文件中的条目,而EDITOR环境变量又设置为vi,那么就可以用vi来编辑crontab文件

保存并退出。

阅读全文

Ubuntu 上安装 Weblate

首先安装必要的依赖:

然后就到了安装 Weblate 的步骤,pip 是 python 世界的 Composer,requirements.txt 就是 composer.json

创建数据库。官方文档没说 charset 的设置,而 Weblate 在创建表的时候是不指定 charset 的,很有可能表创建好的时候charset 是 lantin1 导致翻译中文的时候,中文进不了库,特别坑

weblate/settings_example.py 其实就是 app/config/parameters.yml.dist

设置一下数据库

以及 Time zone 设置,这就不多说了。

接下来是 UWSGI 的设置。UWSGI 是类似 PHP-FPM 的服务,设置也差不多:

Nginx 的设置,完全官网配置:

创建数据库表结构,类似 doctrine:schema:create 命令;然后还需要初始化一下 locales,相当于导入默认语言分类数据到库

这也是比较坑的一点,官网文档也没说,虽然不知道这个 Whoosh 目录是干嘛的,而且看上去不太可能这么蠢Weblate 不会自动创建,但是 Weblate 就真的等着你去创建这个目录。

这个时候,就可以启动 weblate 项目了,当然,一定要注意文件权限的问题!!

如果不出意外,访问 localhost 应该可以看到 Weblate 的界面了:

screenshot weblate

然后咱们去后台创建翻译项目。不过目前后台还没有帐号呢,我们先来创建一个超级帐号:

输入完帐号、密码、邮箱后,登录到后台。

按照官方文档的指导,点击 project 后点右上角的新增按钮。不用多说了,输入内容一看就明白。

阅读全文