这周一直在想办法优化网站速度,ping域名时发现其指向的IP竟然在不断跳动,而且对应的地区都指向了新加坡。
有点奇怪,因为网站的主机已迁移到香港,一查才发现是Cloudflare Cdn的锅。
对于境外网站,能白嫖Cf的cdn似乎很划算。但cf在国内并没有服务器(只为企业提供),甚至连香港地区都没有。如此来看cdn反而成了减速器,遂立即关闭代理,再次ping时,响应图已经一片绿,时间达到了50ms上下。
随之而来问题是,关闭了cf代理后,cf签发的证书就失效了。现在想重新申请,竟一时没找到对应的指令。这篇文章将为一年后准备。
申请证书
阿里云
因为买了阿里云的轻量应用,因此最先想到了在阿里云上申请证书。据页面介绍,阿里云每年可以提供20张免费SSL证书的申请,并且支持一键部署功能(OSS、ECS、CLB等,但没有轻量应用)
按提示填上域名,几分钟后证书即申请成功。此后下载Nginx对应的服务器类型,得到pem、key两种格式。它们需要自行上传至服务器。
Certbot
免邮箱自动安装
cd;snap install --classic certbot #安装certbot
fuser -k 80/tcp;
certbot certonly --standalone --register-unsafely-without-email --agree-tos -d demo.ripplelog.xyz #使用80端口申请证书
已经连上终端的话,就不必再打开阿里云。使用certbot是一个很方便的选择
安装Certbot-域名解析至主机ip-防火墙放行80端口-申请
成功后通过sftp访问对应地址即可看到证书与私钥
手动安装
手动安装的优点,可能是兼容性更好。
同样使用上方代码安装certbot
sudo certbot certonly --manual --preferred-challenges=dns-01 # 进入手动模式
进入手动模式后,根据提示输入域名-邮箱-同意协议
手动申请需要再DNS托管商处添加一条TXT记录
以上循环两次后证书即可申请成功
再次续约时,以上步骤都会省略,一行代码即可搞定!
ACME
curl https://get.acme.sh | sh #安装ACME
apt install socat #安装socat
~/.acme.sh/acme.sh --register-account -m xxxx@xxxx.com #输入邮箱注册账号
~/.acme.sh/acme.sh --issue -d mydomain.com --standalone #为域名申请证书
acme本质上与certbot一样,从 let‘s encrypt 生成免费的证书
成功后,根据路径找到证书与私钥
部署证书
这一步将证书部署到Nginx服务器上。
cd /etc/nginx/ssl #vultr nginx默认位置
cd /usr/local/nginx/ssl #阿里云轻量 nginx默认位置
systemctl status nginx #确认已经安装了Nginx,并且运行正常
systemctl status nginx #修改配置后需要重启Nginx
使用Sftp将证书与私钥移到nginx的ssl文件夹中,修改上级文件中wordpress.conf的相关配置
替换为部署的证书与私钥名称
保存-重启nginx,此时证书部署完成。
如果重启nginx时报错,一定是配置打错了字~