月度归档:2024年05月

全站上了HTTPS

既然改了个版,那么趁此机会把SSL证书也上了吧,这也是以前一直想做但却一直没做的事。

之前弄SSL证书,基本就是阿里云或腾讯云,但是现在阿里云的免费SSL证书已经从一年时长变成了三个月,非常麻烦不说,还经常忘。虽然腾讯云还支持一年,但是既然有这个趋势,还是早换了好。

这次用的是自动证书管理环境(ACME)。ACME(Automatic Certificate Management Environment)协议是由互联网安全研究组织Let’s Encrypt开发的一种协议,用于自动化管理SSL/TLS证书的获取和续期。现在不仅支持Let’s Encrypt,还支持ZeroSSL等证书颁发机构。ACME协议通过与证书颁发机构(CA)进行通信,实现证书的自动化管理,消除了手动配置和更新证书的繁琐步骤。以下是ACME协议的主要特点和流程:

主要特点

  1. 自动化:ACME协议能够自动化地完成域名验证、证书申请、颁发和续期的全过程,减少了人工干预。
  2. 安全性:ACME使用加密通信和域名验证机制,确保证书颁发过程的安全性。
  3. 开放性:ACME协议是开源的,任何人都可以实现和使用它,与任何支持ACME的证书颁发机构进行交互。
  4. 兼容性:许多常见的Web服务器和应用程序已经支持ACME协议,如Apache、Nginx等。

工作流程

  1. 注册账户:客户端向证书颁发机构(CA)注册一个账户,用于后续的认证和证书管理。
  2. 域名验证:客户端向CA提出证书请求,并提供需要保护的域名。CA会向该域名发送验证请求(如HTTP-01或DNS-01挑战),以确认域名的所有权。
  3. 验证成功:如果客户端能够正确响应CA的验证请求,则证明了其对该域名的控制权,验证成功。
  4. 证书颁发:验证成功后,CA会向客户端颁发SSL/TLS证书。
  5. 证书安装:客户端将获取到的证书安装到Web服务器上,使其能够提供加密的HTTPS服务。
  6. 证书续期:在证书即将过期时,客户端会自动向CA请求证书续期,重复域名验证和证书颁发的流程。

这么搞完后,基本就高枕无忧了,只要服务器不停机,HTTPS就永远在线!

网站改了个版

其实有这个想法很久了,但由于人的惰性,一直没有行动。最近正好有些时间,就顺手把这事做了。

网站改版,前前后后花了几天的时间,看似没什么功能,但的的确确是花了很多的工夫。经过几天的折腾,终于形成了现在的样子,总算是能看了。此时,再切换到以前的旧版,简直可以用“辣眼睛”来形容。之前那版真的是草草行事的产物,搜索没有,标签没有,配色难看,图片是网上找的……总之就是没走心。现在,新主题基本上做到整站原创。想用心设计好一个网站,还是要花些时间的。

最初建这个网站,是想着能接点活,赚点钱,但是现实很残酷,这个网站从建站到现在,接的单子寥寥无几,很多的项目都是从其它途径接到的。现在,这个网站基本上也就剩下了案例展示功能,但上传的案例也不全,还有很多需要整理,需要搭建环境,然后截图,比较麻烦,就没弄,也不想弄了,感觉意义不是很大。

后续可能会把这个网站转成技术站点,用来记录和分享编程技术,方便自己查询的同时,如果能帮助到一两个人,也算没枉费这番辛苦。

WordPress禁用指定endpoints,防止用户信息泄露

WordPress 在4.7.0版本之后将REST API插件集成到默认功能之中。REST API为WordPress的使用者提供了一个方便快捷的管理接口。在WordPress 4.7.0版本中,存在着一个越权漏洞,成功的利用这个漏洞,可以绕过管理员权限查看WordPress上所有发布过文章的用户信息列表。

虽然现在用的不是4.7.0这个版本,但是为了确保安全,最好还是把这两个rest api接口禁用掉吧。

禁用代码如下:

// 禁用用户端点,同时确保其他 REST API 功能正常
add_filter('rest_endpoints', function ($endpoints) {
    if (isset($endpoints['/wp/v2/users'])) {
        unset($endpoints['/wp/v2/users']);
    }
    if (isset($endpoints['/wp/v2/users/(?P<id>[\d]+)'])) {
        unset($endpoints['/wp/v2/users/(?P<id>[\d]+)']);
    }
    return $endpoints;
});