时间:2021-06-06 08:45:46 | 栏目:Nginx | 点击:次
前言
HTTP 和 HTTPS
我们日常生活中,常见的网址大致分为2种:
一种是基于 http 协议,如:http://www.baidu.com
一种是基于 https 协议,如:https://www.baidu.com
现在很多网站出于安全的考虑,会把网站的域名访问从 http 已经升级为 https,如果你不知道 http 和 https 的概念,不妨先看看下面这篇文章:HTTP和HTTPS有什么不同
SSL 证书
那么我们如何将 http 升级为 https 呢?
我们要升级 http 为 https,首先需要一个 SSL 证书。 SSL 你可以想象为本科毕业证,有个这个本科毕业证,就能证明你是本科生,就都能去申请本科生门槛的招聘。当然,证书可以由不同院校颁发,比如清华本科毕业证和普通三本院校的本科毕业证,这两者的含金量肯定是有不同的。SSL证书也一样,也有不同发签发机构。
配置方式
当有了域名和SSL证书后,我们就可以将域名网址升级为 https 了,我们常用的做法是在 Nginx 中配置域名的 SSL 证书。
具体过程
开始访问
(1)下面我以自己的网站,配置我的个人网站 SSL 证书,将我的网站升级为SSL。
我访问自己网站下的一张图片( http://www.zyqok.cn/fj.jpg ),这是一个 http 访问。
(2)然后我们改为 https 访问,发现是访问不了的。
下面我们正式开始,将网站改为 https 的请求访问。
服务器安装Nginx
首先,我们需要在服务器上安装 Nginx 环境,如果你服务器已经有Nginx了,那么这一步可以跳过,如果未安装Nginx,不妨参照
获取 SSL 证书
由于我服务器是阿里云买的,所以阿里会送几个免费的SSL证书,下面以阿里云的获取 SSL 证书过程进行说明。
如果你不是阿里云客户,那么这一步可以跳过,然后自行百度 “SSL证书” 到相关厂商购买,或者百度 “免费SSL证书” 。
(1)登录阿里云,然后找到 【SSL证书】一栏,点击( 因为我已经开通过了该功能,所以你的位置可能和我的位置不一样,自己去面板找 )。
(2)来到这个面板后,点击【购买证书】。
(3)选择免费型,然后购买
(4)当你完成购买后,就会在页面出现一条对应记录,然后点击【证书申请】。
(5)然后写好你需要升级的域名,比如我要把我的个人网站 http://www.zyqok.cn 升级为 https://www.zyqok.cn
那么此时的域名就填 zyqok.cn,然后填写好其他信息,点击下一步,然后这个证书就会向上面提交,进入审核状态。
(6)当你的申请通过之后,你就可以下载你的SSL证书了,我们点击右下角【下载】
(7)继续选择 Nginx 后面的【下载】
(8)下载完成后,我们就可以得到一个SSL证书的压缩包
上传SSL证书到服务器
(1)我们先将证书压缩包解压,然后可以得到如下两个文件。
(2)我们将这两个文件通过 FTP 工具,上传到服务器上,并放在 Nginx 配置文件所在的同级目录下。
修改配置并重启
(1)打开你的 Nginx.conf 配置文件,然后将你的443和80端口的 server 信息配置如下:
更多详细步骤可以查看阿里云的文档:Nginx/Tengine服务器安装SSL证书
# 直接访问 https server { charset utf8; listen 443; root /opt/local; server_name www.zyqok.cn; ssl on; ssl_certificate 3067072_zyqok.cn.pem; ssl_certificate_key 3067072_zyqok.cn.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; } # http 跳转 https server { listen 80; server_name zyqok.cn; rewrite ^/(.*) https://www.zyqok.cn permanent; }
(2)注意蓝色方框的内容是你的域名和 SSL 证书相关文件。
(3)然后重启你的 Nginx 服务
进入nginx 的 sbin 目录下,输入下面命令,重启 nginx 服务
./nginx -s reload
(4)如果是阿里云的服务器,别忘了开放 80 端口和 443 端口,不然访问不了
不会配置的可以参考这篇文章:阿里云安全规则配置
再次访问
(1)直接 https 进行访问(443端口),可以看到是OK的
(2)然后 http 访问(80端口),他会自动跳转到 https,也是OK的。
至此,你已经学会了 SSL 证书配置!谢谢阅读!