惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
Y
Y Combinator Blog
博客园 - Franky
D
Docker
B
Blog RSS Feed
M
MIT News - Artificial intelligence
雷峰网
雷峰网
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
宝玉的分享
宝玉的分享
S
SegmentFault 最新的问题
GbyAI
GbyAI
Recent Announcements
Recent Announcements
Martin Fowler
Martin Fowler
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MyScale Blog
MyScale Blog
B
Blog
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
Vercel News
Vercel News
The Cloudflare Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Google DeepMind News
Google DeepMind News

龙天小筑

Stable Diffusion Webui无显卡安装 - 龙天小筑 Stable Diffusion Webui无显卡安装 - 龙天小筑 Stable Diffusion Webui无显卡安装 | 龙天小筑 Stable Diffusion Webui无显卡安装 | 龙天小筑 诸城印象2022-嵊州 诸城印象2022-嵊州 - 龙天小筑 诸城印象2022-嵊州 | 龙天小筑 诸城印象2022-嵊州 | 龙天小筑 COVID-19抗疫备忘 COVID-19抗疫备忘 - 龙天小筑 COVID-19抗疫备忘 | 龙天小筑 COVID-19抗疫备忘 | 龙天小筑 诸城印象2022—珠海 诸城印象2022—珠海 - 龙天小筑 诸城印象2022—珠海 | 龙天小筑 诸城印象2022—珠海 | 龙天小筑 LNMP环境下WordPress站点健康状态问题清零 LNMP环境下WordPress站点健康状态问题清零 - 龙天小筑 LNMP环境下WordPress站点健康状态问题清零 | 龙天小筑 LNMP环境下WordPress站点健康状态问题清零 | 龙天小筑 越狱iOS安装TikTok踩坑指南 越狱iOS安装TikTok踩坑指南 - 龙天小筑 越狱iOS安装TikTok踩坑指南 | 龙天小筑 越狱iOS安装TikTok踩坑指南 | 龙天小筑 再次启用SSL 再次启用SSL - 龙天小筑 再次启用SSL | 龙天小筑 RSA/3DES及加解密 RSA/3DES及加解密 - 龙天小筑 RSA/3DES及加解密 | 龙天小筑
再次启用SSL | 龙天小筑
最后编辑:2021-11-11作者: 这个作者貌似有点懒,什么都没有留下。 站内专栏 · 2021-11-11 · via 龙天小筑

看着浏览器网址前面有个小锁,还是让人安心许多啊。

之前主机上装了宝塔,于是开启过SSL。但是宝塔的架构似乎是基于Python,而且作为廉价VPS用户。多余的宝塔面板带来的性能损失某些时候是不可忍受的——每天总有一点时间网站有问题,监控宝每天都要发几条警报。所以换到阿里云的轻量服务器的同时,换回了标准LNMP。于是SSL也就随之关闭,继续裸奔。

这几天搞RSA,觉得SSL还是有必要的,于是前天写完文章就开始搞SSL。WP提供了“Really Simple SSL”插件,号称可以一键开启SSL。然而插件运行过程中的逻辑需要访问Web根目录的上一级目录,感觉在大部分VPS上这个都是不允许的越权。所以无论我怎么手动建立目录,RSSSL都没办法完成建立目录那一步。

回到LNMP官网,发现LNMP里面已经带了SSL脚本,试了一下发现也有些坑。鉴于LNMP官网的信息稍有些滞后,我这里整理下我目前遇到的坑。以下信息基于LNMP 1.8,在2021年双十一有效——限定时间是因为有些BUG是跟时间相关的。开源软件的老问题:版本兼容性似乎并不是某些开发者所在乎的事情。

LNMP的SSL安装从1.5以后基本没什么变化,基本教程可以参考LNMP官网的这篇文章。但是有一些细节需要补充:

首先,lnmp dnsssl xx 这条指令是新建网站且添加SSL,现有网站添加SSL需要使用lnmp ssl add指令。这个在每个版本的发布页里面有写:

LNMP一键安装包 V1.8 正式版

已存在虚拟主机添加SSL:lnmp ssl add
通过DNS API方式生成证书并创建虚拟主机:lnmp dns {cx|dp|ali|…}
只通过DNS API方式生成SSL证书:lnmp onlyssl {cx|dp|ali|…}

LNMP的SSL脚本基于ACME.sh脚本实现,这是一个国人写的可以从 Letsencrypt生成免费的证书的脚本。这个脚本在执行时,如果是基于域名认证的,需要提供域名的API key和token,也就是教程里写到的需要做两个export。此外在近期ACME.sh似乎做了升级,默认的SSL证书生成提供方从 Letsencrypt切换到了ZeroSSL。这就造成了第一个问题:ZeroSSL需要使用邮箱注册一个账号。但LNMP里面带的ACME.sh并没有设置账号,导致申请时会提示如下信息:

Using CA: https://acme.zerossl.com/v2/DV90
No EAB credentials found for ZeroSSL, let's get one
acme.sh is using ZeroSSL as default CA now.
Please update your account with an email address first.

这个解决方案很简单,LNMP将acme.sh安装在/usr/local/acme.sh,只要在这个目录下的account.conf内添加一行:

ACCOUNT_EMAIL='xxx@xxx.com'

随后需要注意的是,在LNMP的SSL脚本执行时,输入域名那里有些让人迷惑。如果你想为自己的网站申请SSL,注意如下的坑:

  • 在ZeroSSL上支持泛域名解析,但不支持www子域名直接申请。因此直接申请为*.dragongod.net建立SSL证书就可以;
  • 由于添加的另一个域名不能与主域名有交叉。所以申请为dragongod.net和*.dragongod.net同时建立SSL的话会报错;
  • 只为dragongod.net申请SSL证书的话,可以申请通过,但浏览器打开时会有警告,因为证书是为dragongod.net生成的,但打开的网站是www.dragongod.net。所以会有不符合的警告;

如果还是希望用Letsencrypt,那么可以执行一次:

acme.sh --set-default-ca --server letsencrypt

这将会修改account.conf,将默认SSL服务提供方修改为 Letsencrypt。使用 Letsencrypt时需要注意的是它似乎不支持泛域名解析,所以直接为www子域名申请即可。

LNMP内开启SSL之后,稍微等一会儿,再到Wordpress后台去看Really Simple SSL,就会提示SSL已开启,还有些其他的警告或者设置需要完成,按照提示进行优化和设置,可以避免一些常见的SSL开启后的问题,确保正常开启SSL。

另外,在使用acme.sh时,如果因为(手贱)测试生成了多个证书,记得在弄完以后bash里看一下:

acme.sh --list

不需要的证书可以删除,不占用公共资源也是一种美德。

acme.sh --remove -d example.com