Nginx 域名SSL证书配置(网站 http 升级为 https)

 更新时间:2019年12月22日 15:02:55   作者:sunnyzyq  
这篇文章主要介绍了Nginx 域名SSL证书配置(网站 http 升级为 https),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

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 证书配置!谢谢阅读!

相关文章

最新评论