如何在Ubuntu 12.04上部署免费的SSL证书(Let's Encrypt)

Let's Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,它的来头不小,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,目的就是向网站自动签发和管理免费证书,以便加速互联网由HTTP过渡到HTTPS,目前Facebook等大公司开始加入赞助行列。

Let's Encrypt已经得了 IdenTrust 的交叉签名,这意味着其证书现在已经可以被Mozilla、Google、Microsoft和Apple等主流的浏览器所信任,你只需要在Web 服务器证书链中配置交叉签名,浏览器客户端会自动处理好其它的一切,Let's Encrypt安装简单,未来大规模采用可能性非常大。

Let's Encrypt虽然还在测试当中,但是市场需求非常大,已经有非常多的朋友迫不及待地安装并用上了Let's Encrypt。Let's Encrypt向广大的网站提供免费SSL证书,不管是对于网站站长、互联网用户,还是对整个Web互联网,都是非常有利的,它有利于整个互联网的安全。

本篇文章就来为大家讲解一下如何获取Let's Encrypt免费SSL证书,并附上Apache的SSL证书配置方法。

一、 安装Let's Encrypt免费SSL准备


1.Let's Encrypt官网:
官方网站:https://letsencrypt.org/
项目主页:https://github.com/letsencrypt/letsencrypt

2.安装Let's Encrypt脚本依赖环境:(这一部分可以跳过,因为官方提供的Let's Encrypt脚本会自动检测并安装)

二、获取Let's Encrypt免费SSL证书


1.获取Let's Encrypt免费SSL证书很简单,你只需要执行以下命令,就会自动在你的VPS上生成SSL证书和私钥。

如果只想生成证书,则最后一句使用如下命令(貌似我目前只能用下面的命令,用上面的命令会报错):

2.执行上述命令后,会弹出对话框,同意用户协议。

3.接着会提示让你关闭Nginx或者Apache。

4.Let's Encrypt需要用到80和443端口,所以你需要关闭那些占用这两个端口的应用。

5.当你看以下内容时,就表明你的Let's Encrypt免费SSL证书获取成功了。

注意: 目前阿里云的服务器域名解析不支持DNS Certification Authority Authorization (CAA) Resource Record,导致在进行签名的时候返回如下错误信息:

目前还没有解决方法,具体的讨论参考 DNS query timeout #1610

目前根据提交给阿里云的工单,今天2016年1月26日已经正式支持了Let's Encrypt,目前验证,一切正常了。

三、证书续期


Let's Encrypt有多种方法来验证你是否是域名的所有人,而acme-tiny这个小工具用的是最简单的方法,也就是利用http文件验证。
简单来说,就是生成一个验证文件,放在http://www.mobibrw.com/.well-known/acme-challenge/下,Let's Encrypt官方验证这个文件是否存在、内容是否正确。如果一切正确,说明域名是你所有。因此我们下面的脚本中会出现创建,删除.well-known/acme-challenge/这个目录的动作。

1.生成证书自动化请求脚本

里面内容如下:

2.赋予脚本执行权限

3.脚本添加到计划任务,每隔60天执行一次

在文件的最后增加

4.查看是否添加成功

5.重启cron服务

四、需要注意的问题


目前(2022/02/27)最新的1.23.0版本,在生成/更新证书的时候,会提示用户是否全站都迁移到HTTPS。如果不小心同意了这个选项,对于Apache服务器来说,会在配置文件中增加如下内容:

这个配置会覆盖我们在网站目录下的HTTPS相关设置(.htaccess),如果我们配置网站某个目录下的文件可以不通过HTTPS进行访问,那么需要手工移除这些自动生成的配置信息,然后重启Apache服务。

参考链接


Android Studio 1.5.1 配置编译NDK参考文档

Android Studio 1.5.1上面对于NDK的编译进一步简化,只需要在工程的defaultConfig设置中增加如下配置就可以了:

新建的工程中的app目录下的build.gradle中的内容如下:

修改后的配置文件如下:

然后在app->src->main目录下创建jni目录就可以了。

如果此时提示:

则在修改工程目录下的gradle.properties,在文件中新建一行,添加如下:

注意,还需要在local.properties设置NDK的路径

默认情况下,build.gradle中的代码是不能进行调试的,需要增加两个配置项:

修改后的配置文件如下:

一般在debug项中增加提示即可,如果想在release中也支持Debug的话,上面两句话在release中增加即可。修改后的结果如下:

解决WordPress标题中数字英文字符串不能自动换行的问题

在发表文章的时候,如果标题中有长串的数字和英文字符,例如文件的路径、注册表路径、下载地址等,通常不能自动换行,从而造成溢出的部分要么延伸到侧边栏中,要么被隐藏,这都是不正常的。如下图所示:
TitleTooLong

解决这个问题的方法就是要在CSS样式表中加入换行控制代码。

操作方法如下:

1.用FireFox中的Firebug查看页面中标题的源代码
EntryTitleSrc
可以看到,Title部分的标题的源代码对应的是entry-title,字体大小为h2

2.修改对应主题的样式表(style.css),以Twenty Fifteen为例,在外观->编辑->style.css,源代码中搜索entry-title可以发现比较多,如下两处:

我们增加word-wrap:break-word;word-break:break-all;告诉浏览器标题超长之后,主动换行,修改后的结果如下所示:

如此修改之后,如果使用了WP Super Cache,则需要刷新缓存,如果没有使用WP Super Cache则直接刷新页面就可以了。

修改后的页面如下所示:

word_wrap_break_word

注意,只设置word-wrap:break-word;就可以满足需求,建议同时设置word-break:break-all;,效果会更好一些。

对于手机端来说,标题是h1大小的。使用Chrome查看手机端的网页的源代码是view-source:www.mobibrw.com就可以看到手机网页的源代码了。

解决开启 WP Super Cache 缓存时 WP-Postviews 1.71 不计数的问题

WP Super Cache的缓存插件可以有效地对动态网页进行缓存,降低主机资源的使用率,使得网站更加稳定。但是,这个插件也会导致别的插件工作不正常,比如这个统计访问次数的WP PostViews插件。

说下 WP Super Cache 的原理吧,是把所有的页面转化成静态html,然后再通过30X定向,绕后php直接访问静态html来加速,在有新评论和新文章时会更新缓存,而 WP-Postviews 原理是每次访问给meta加1,启用cache后不调用php文件了,所以自然不会计数。于是插件的作者通过ajax来增加计数。

我们以WP PostViews 1.7.1为例。

在PostViews的设置页面中点击允许使用Ajax进行计数统计,如下图:

PostViewsOptions

然后重新生成下缓存,就OK了。

这时候每次点击的时候后台会更新显示数,但是前台不会更新,下面我们来解决这个问题。

可以通过AJAX和DOM操作来解决。把下面的代码添加到wp-postviews.php文件尾部

这段添加到postviews-cache.js文件尾部

默认的调用方法是:

现在替换为

或者

这时候我们发现,文章页是正常计数的而且实时刷新,但是首页还是不行啊,这个没办法了,不过可以通过设置WP Super Cache,不缓存首页,这样就完美解决问题了。

参考链接:


解决开启 WP Super Cache 缓存时 WP-Postviews 不计数的问题

Git常用命令

Git检出使用SSH-KEY认证的服务器上的源代码:(注意,此处SSH-KEY只能使用绝对路径)

Git提交更改

Git提交代码到使用SSH-KEY认证的服务器master分支:(注意,此处SSH-KEY只能使用绝对路径)

参考链接:


git - 简易指南
specify private SSH-key to use when executing shell command with or without Ruby?

repo如何取消本地改动(How to discard changes using repo)

Android源代码中经常出现同步问题,最常见的就是本地无意修改了某些文件,那么,如何取消掉这些更改呢?

执行如下命令:

如果执行完成后,依旧提示某个目录有改动,则切换到有问题的目录,继续执行

完成后,删除所有没有增加到Git中的文件即可。

参考链接:
How to discard changes using repo

Ubuntu 15.10 使用Ubuntu Make简化Android开发环境配置

Ubuntu 15.10 中,已经可以使用Ubuntu Make简化Android开发环境配置了,具体方法如下:

1.安装Ubuntu Make

2.配置Android开发环境

然后根据提示,一步一步操作就可以了。

一会之后,就会发现Android Studio已经安装成功了。

就是这么简单!

Windows下创建Ubuntu的USB系统安装盘

要从U盘运行Ubuntu,需要插入一个至少2G空余空间的U盘。使用USB安装器是将Ubuntu安装到U盘最简单的方式,它由 pendrivelinux.com 提供。下载Pen Drive Linux’s USB安装器后,安装并运行。也可本站下载

从下拉选项中选择Ubuntu桌面版本,或者自行用BT、迅雷等软件下载Ubuntu ISO文件。

image-createausbstickonwindows-1

点击“浏览”然后打开已下载的ISO文件。image-createausbstickonwindows-2

选择一个USB驱动器并点击“创建”,注意,U盘里的数据请备份,“创建”过程会格式化U盘。

image-createausbstickonwindows-3

Ubuntu系统本身附带一个小程序Startup Disk Creator,直接制作可启动U盘Ubuntu系统。本站下载

参考链接:


制作Ubuntu USB可启动系统盘解决Windows问题

java.util.concurrent.TimeoutException: com.android.internal.os.BinderInternal$GcWatcher.finalize() timed out after 10 seconds

最近在查看上传到服务器上的应用崩溃信息的时候,发现两个比较奇怪的崩溃栈,如下:


百思不得其解,最后在网上查到了貌似可以解释这个现象的原因:

参考链接:


Wodpress主题底部显示当前网站备案号

后台备案号的设置是从 WP 3.7 开始的,查看网站根目录的 wp-config.php 文件,一般会看到 define('WP_ZH_CN_ICP_NUM', true); 这个定义,这个就是用来添加后台备案号设置的。如果你的 WP 版本在 3.7 以上,而且 wp-config.php 含有define('WP_ZH_CN_ICP_NUM', true);  就可以在后台 设置 - 常规 中看到配置选项。

icp

这个“ICP备案号”仅对WordPress自带主题有效。

如果使用的是第三方WordPress主题,因此不能享受到 WordPress 这个新添加的小功能实在是让人窝火。不过好在你只需要在自己所用的主题的footer.php中添加一行代码,即可让在WordPress 后台添加的ICP备案号显示出来了。

如果你不希望链接到工信部网站,只添加下面的代码即可。


注意,由于工信部网站地址发生变动,导致上述操作之后,默认主题无法正常跳转到正确的工信部备案网站地址,需要对跳转地址进行修改具体修改方式请参考 解决WordPress 5.2.3后台ICP备案链接不能跳转到工信部网站(www.miitbeian.gov.cn)的问题