怎么将网站从 HTTP 协议免费升级到 HTTPS

HTTPS 解决方案:我个人最推荐的就是Let's Encrypt ,Let's Encrypt 是一个免费、简单、自动化、安全可靠的 HTTPS 解决方案。下面我们来介绍如何在服务器安装 SSL 证书,

安装 SSL 证书

1.首先访问 https://certbot.eff.org/ 选择自己的软件环境:

看到操作指南:

$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository universe
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot python-certbot-nginx

安装过程中,该直接回车回车,该选Yes输入Y回车。安装完成后,执行如下命令:

sudo certbot --nginx

执行这个命令时,Certbot 会先让你输入邮箱和同意协议,同意之后会自动检测 nginx.conf 下面的配置,把所有站点配置都列出来并让你选择哪个域名开启 HTTPS(输入列表编号,多个用空格分开):

2.输入编号后回车,我这里只有一个域名,输入1回车,Certbot 就会为你下载证书并更新对应的站点配置信息了。然后,还会让你选择是否在通过 HTTP 协议访问应用时强制重定向到 HTTPS,1 表示不重定向,2 表示重定向,我选择了重定向:

我的文章服务器是nginx:重启是 运行 service nginx reload 重启 Nginx,

或者配置完, nginx -s reload 重启即可

自动更新证书

由于 Let's Encrypt 默认的有效期是 90 天,所以如果你的应用需要在生产环境长期提供服务,还要在证书到期之后更新证书,我们可以通过 certbot renew 命令来更新证书,你可以通过如下命令来测试该命令是否生效:

sudo certbot renew --dry-run

可以使用定时任务,每个月定时更新

0 0 1 * * certbot renew
5 0 1 * * service nginx restart