将http迁移到https现在已成了一个趋势,因为相对http,https有着明显的优势,尤其是在安全方面。最近做微信小程序,就遇到了需要使用https协议请求调用后台接口的问题。
那么如何将http迁移到https呢?
一、安装证书
证书是一个二进制文件,里面包含经过认证的网站公钥和一些元数据。证书既有免费的,也有收费的。本文主要介绍利用 Let's Encrypt获取免费证书。
使用 Let's Encrypt 证书,首先需要下载Certbot,下载地址如下:
https://certbot.eff.org/
对于不同的系统和服务器,该平台都有相对应的操作步骤说明。如下:
当然,如果你想使用yum安装,那可以使用如下命令:
yum install -y epel-release
yum install -y certbot
实际上本人一开始就是使用yum进行的安装。下面所说的内容,全是在此基础之上。
安装好certbot后,就开始安装证书了。
首先,在网站根目录下创建一个.well-known的目录。这个目录,在安装证书的时候,certbot会进行访问。如下是在nginx默认的根目录创建.well-known目录。
mkdir -p /usr/share/nginx/html/.well-known
然后,安装证书。如下:
certbot certonly --webroot -w /usr/share/nginx/html -d test.example.com
上面test.example.com处,在你操作时请改为你自己的域名。
在安装的过程中,它会让你输入一些信息,比如邮箱地址,这时你按提示输入就好。根据提示进行操作,一般可以正常生产证书文件。证书文件存放在: '/etc/letsencrypt/live/test.example.com/'下。会有4个文件:
cert.pem
chain.pem
fullchain.pem
privkey.pem
二、配置服务器
证书安装完成后,就要开始配置服务器了,如下是配置nginx的操作:
三、重定向
访问网站时,用户很少直接在地址栏输入https://,更多的时候,可能是直接输入域名。而浏览器默认的是http,因此,为了保证网站的正常访问,最好是将http默认重定向到https。将http重定向到https,可以按如下操作:
nginx的配置
apache的配置
四,注意事项
需要注意的是:Let's Encrypt 的证书有效期为90天,因此,你必须定时更新证书,才能保证https长期正常。解决这个问题,你可以使用crontab定时器,如下:
10 6 * * * /bin/certbot renew --quiet &>/dev/null
到此时,https已经迁移完成。
安全优佳
http://news.secwk.com
长按识别左侧二维码,关注我们