使用acme.sh签发并使用Let’s Encrypt的EC证书

acme.sh是一个国人编写的、基于ACME协议的第三方的Let’s Encrypt证书管理工具.使用它签发EC证书较为简单.

1.使用Webroot模式签发证书

  1. 此方法依赖于运行中的http服务器(e.g. Apache httpd/Nginx),运行脚本前不要停止http服务器.
  2. Web根目录要对你当前登陆ssh的用户可写,因为acme.sh要在-w指定的目录下创建.well-known/文件夹并在其中创建文件,以验证域名所有权
  3. 可以通过多个-d指定多个域名,签发多域名证书
  4. ★重要:如使用此方法签发多域名证书,上一条所述的多域名在http服务器的vHost中必须设置相同的Web根目录,且为-w所指定的路径.一般而言,如同时签发domain.tld和www.domain.tld时可以这样做;而domain.tld和mail.domain.tld则不能,因为其不在同一个vHost下。

2.使用Standalone模式签发证书

  1. 对于单域名或多个Web目录相同的域名也可这样签发证书.
  2. 运行前务必停止[包括但不限于http服务器]的任何监听80端口的服务;如不确定80端口是否被占用,可使用netstat -lp|grep 80查看.
  3. 无需使用-w指定Web根目录.
  4. 所有由-d指定的多域名都需要解析到运行acme.sh的主机.

另注:-k能指定的所有公钥类型:

  1. -k {2048|3072|4096} 使用2048/3072/4096位的RSA密钥对.
  2. -k {ec-256|ec-384} 使用256/384位的EC密钥对.

继续阅读“使用acme.sh签发并使用Let’s Encrypt的EC证书”

“矫情”

七八年前,小学时的事,回忆或许并不很完整。

记得我上小学的时候学生间流行三种文具,但其实都并不实用

  1. 自带(Built in)密码锁的日记本(在女生中更常见)
  2. 多功能铅笔盒(在男生中更常见)
  3. 具有十几种颜色的『多色圆珠笔』

班里有个女生用这种带密码锁的日记本,并坚信其具有高安全性。

某日我碰巧看见她的”Highly Secured Diary”,发现其密码锁实际上只有6个按键,每个按键只有两种状态——”按下”和”未按下”,并且密码不能更改。换言之,这个日记本的密码仅有26=64种可能性,偷窥者只需要『暴力破解』即可无痕迹地偷窥其日记。

我向她提出这一点,她并不相信,并告诉我:

超市的导购都说了这本子绝对安全……

随后我用3分钟演示了『成功的暴力破解』,却没想到她却开始大吵大闹,说”我偷看她日记了”什么的,实际上我仅是解开了密码锁而并没有翻开那日记本丝毫。后来她向班主任”哭诉”此事,说什么”我恶意获取她的密码且其不能更改”云云,无病呻吟的功夫简直了得!

她的”哭诉”导致我几乎被班主任怒斥一下午,她的申诉老师全当真,不加丝毫考证;而我的辩解则全被当作”撒谎”……

2017,不知这博客还会继续存在与否

离2017年2月14日——这个博客建立三周年已经不到一个月了,虽然准确些说是2月16日*1

三年间博客上将

  1. 未公开的文章
  2. 没写完的文章
  3. WordPress安装时就存在的文章(世界,你好!)
  4. 已发表的文章

一并计入其中共有104篇,如果除去上述前三者恐怕还不足100篇。

我不得不扪心自问,我建立这个博客后对它投入了多少时间与精力,又有几何真正用于写作,书写这个博客建立初衷中所提到的那些东西——生活见闻与内心感想?

而发表的文章起初(2014年初)还以生活见闻为主,再后来重心逐渐偏向技术类,这在我的博客的介绍页面(关于小站)中也有所提及:

2014年6月 ……同月,博客主要内容开始由在校与日常生活转为技术话题.同时开始尝试修改CSS与学习PHP.

我的博客不应该作为一个技术型社区或是某软件Manual或Document的替代品,诚然我也并无这般水平。

有人说『互联网精神』之一是共享,我的个人博客中尽是这些内容,很正常,很好。我对此持不同观点——如上文所属,技术指南应该参见官方的Documents,因为这永远是相对全面且更新及时的,至少相比我发表的文章中所描述的『搭建生产环境的过程』是这样的。

也许因为从2016年6月底我的一系列关于大学、未来与前途的错误决断*2,让我的世界充满各种阴暗与负面的事物,且我不打算将我的博客当作发泄『负能量』的垃圾堆,也许这是这个博客里本应存在的东西出现的频率走低甚至完全不复存在的原因。

同时,这也暴露了我投入到这个博客上的时间具体的去向,2016年10月弃用虚拟主机而转用Personally-Managed的VPS,得到更多选择自由的同时也变得更加time-sucking。投入到博客的时间,具体言之,投入到了如下方面:

  1. 对付进行破坏行为(发表垃圾广告评论/暴力破解密码)的无聊人士*3
  2. 优化Web服务,e.g.:
    • 在Qualys SSL Labs上取得A+评价
    • 部署HTTPS Public Key Pinning(失败,且由于HSTS的存在让部分用户在清除缓存前无法访问)
    • 建立Gravatar的镜像
    • ……
  3. 折腾各种在虚拟主机上无法体验的新鲜事物(e.g. PHP7.1)

博客存在的目的便是写作,或是记录。时间近乎全都投入到技术领域,博客意义何在?若无法重拾初衷,此博客便无存在之意义了。


*1.2月16日:2014年2月14日我购入主机与域名,但因域名信息填写不完整而无法解析,故博客真正建成是在2014年2月16日。
*2.关于大学、未来与前途的错误决断:简而言之就是高考志愿填报失误所带来的一些列后续影响。
*3.此类无聊人士的行为是我在2016年10月不得不将博客搬家到VPS的原因,在博客因故再次搬家中有所提及。

Apache as reverse proxy

我们经常使用Nginx作为反向代理,而事实上Apache也一样可以.但配置似乎更繁琐一些.

由于在某些网络下Gravatar的SSL服务不可用,且部署本站点的VPS运行Ubuntu+Apache HTTP Server,因而决定使用Apache来搭建Gravatar镜像

提示:以下操作仅适用Ubuntu或其他Debian系的发行版,不适用任何RedHat系的发行版(e.g. RHEL、Fedora、CentOS);另需准备所用域名的SSL证书.


1.Reverse Proxy的搭建

启用Proxy相关的Module

建立并编辑配置文件

继续阅读“Apache as reverse proxy”

提取大学老师提供的『带壳』PPT

警告:请勿将本文中所介绍之方法用于侵犯著作权等违法或违背道德的行为,技术无罪,在合理合法之范围中运用你掌握的技术!

我所就读院校的高数老师下发给我们的课件PPT是EXE格式,运行后会自动调用打包的Microsoft PowerPoint Viewer来阅览幻灯片。学校方面采用此方法,显然意在阻止学生将其修改后(尤其是去除校徽等版权相关标识)二次传播。

但作为『智能设备时代』的学生,课件在Android机或是Mac OS X上无法阅览——后者尚可用虚拟机解决,前者则毫无办法。向老师索要*.ppt格式的原文件,老师也并不同意……所以只得自己动手丰衣足食。

于是我便进行了如下尝试:

  1. 直接将*.exe的程序重命名为*.zip并提取(失败)
  2. 用HxD从该文件中找出解压密码(失败)
  3. 用DiskPulse监视磁盘动作,从临时文件中提取(失败)
  4. Dump出该程序运行后的内存,用HxD提取(失败)
  5. 通过Windows的文件权限管理使其创建的临时文件无法删除,进而提取(成功)

继续阅读“提取大学老师提供的『带壳』PPT”