网站内容自动更新(之前看过一篇教你快速撸一个免费HTTPS证书的文章)

优采云 发布时间: 2021-12-20 01:04

  网站内容自动更新(之前看过一篇教你快速撸一个免费HTTPS证书的文章)

  原来的:

  前言

  一直想点https,但是最近碰巧有点空,所以才意识到。看过一篇文章,教你快速领取免费的HTTPS证书文章,使用Certbot管理Let's Encrypt证书。使用前需要安装一堆库,不是很友好。所谓条条大路通罗马,一定有其他方法可以做到。

  经过一番研究,我找到了 acme.sh 库。这个库是用Shell脚本编写的,不需要安装。比较清纯,感觉更适合你。记录过程。

  准备好解析的域名(可以使用http访问)。打开服务器的443端口防火墙。步骤 一、 安装 acme.sh

  curl https://get.acme.sh | sh

  执行此命令后,acme.sh 将安装到 ~/.acme.sh/ 目录

  重新加载 ~/.bashrc

  source ~/.bashrc

  二、生成证书

  acme.sh --issue -d www.your-domin.com --webroot /srv/your-domin.com/

  此命令表示将使用 http 生成证书,/srv// 是您的 网站 根目录。(这个过程中acme.sh会自动生成验证文件放到网站的根目录下,然后自动完成验证,最后自动删除验证文件。)

  三、安装或复制证书到nginx目录

  默认生成的证书放在安装目录:~/.acme.sh/。一般来说,这个目录不能被nginx或Apache直接使用。所以我们需要把证书放在指定的目录下,习惯上放在/etc/nginx/ssl/目录下。Acme 提供了--installcert 来安装证书,只需要指定目标位置,然后证书文件就会被复制到对应的位置。

  首先确保/etc/nginx/ssl/目录存在

  mkdir /etc/nginx/ssl

  复制证书并指定nginx reload命令

  acme.sh --installcert -d www.your-domin.com \

--key-file /etc/nginx/ssl/www.your-domin.com.key \

--fullchain-file /etc/nginx/ssl/fullchain.cer \

--reloadcmd "service nginx force-reload"

  服务nginx force-reload是在acme自动更新时重启nginx使证书生效。执行命令后,可以看到/etc/nginx/ssl/中的文件越来越多。

  四、生成dhparam.pem文件

  openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048

  这一步不是必须的,但最好加上。配置完成后,通过验证。如果这一步没有配置ssl_dhparam,结果分数会降到B,A+最好。

  五、配置nginx

  证书已经安装好了,下一步就是让nginx使用证书了。由于我的服务器有多个站点,目前只有一个站点配置了证书,所以只修改当前站点的conf即可。

  server {

listen 80;

server_name www.your-domin.com;

listen 443 ssl http2 default_server;

listen [::]:443 ssl http2 default_server;

ssl_certificate /etc/nginx/ssl/www.your-domin.com.cer;

ssl_certificate_key /etc/nginx/ssl/www.your-domin.com.key;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_prefer_server_ciphers on;

ssl_dhparam /etc/nginx/ssl/dhparam.pem;

...

}

  ssl_prefer_server_ciphers on; 这种配置可以提高证书的分数。

  ssl_dhparam /etc/nginx/ssl/dhparam.pem; 可以提高证书分数,这个文件是在第四步生成的,如果你还没有这样做,就不用写这句话了。

  nginx -t 验证nginx配置是否正确,然后systemctl restart nginx restart nginx,就可以用它来测试你的站点了。

  六、证书更新

  Let's Encrypt的证书有效期为90天,需要定期重新申请,但是acme已经设置了安装时自动续费,所以这一步不用担心,非常省心。

  下面看一下acme.sh的自动更新:安装acme后,会自动为你创建一个cronjob,每天0:00自动检测所有证书。如果即将到期需要更新,证书会自动更新。

  查看任务

  通过此命令手动更新证书

  acme.sh --cron -f

  七、设置自动软件更新

  目前acme协议和letencrypt CA更新频繁,所以acme.sh也经常更新,保持同步。所以为了省心省力,最好设置自动软件更新,执行以下命令。

  acme.sh --upgrade --auto-upgrade

  其他

  在这个网站中,您可以验证您的证书级别。根据我上面的配置,可以评为A级。

  参考文章

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线