第三节课,将讲解证书部署之Nginx部署的情况。
首先会了解到如何去拿到的证书以及Nginx证书的详细安装。这部分会有实操视频来进行演示,其次会讲到Nginx配置的参数以及如何使用Nginx的文件实现全站的加密跳转。
- 登录控制台,找到SSL证书,比方说使用已经免费申请到的证书。
- 点击下载,下载证书的申请安装包。安装包下有Apache、IIS、Nginx、Tomcat等一系列文件。
- 打开Nginx。每人Nginx证书下面都会有两个文件。第一个文件是证书代码,域名+_bundle.crt。第二个文件是私钥代码,域名+.key。这些文件是已经给大家生成,所以说大家不用去管任何的东西,只需要去把它下载到本地,然后进行解压。
- 拿到的两段的证书的代码后,需要将证书代码和私钥放到同一个文件,比如放到/usr/local/nginx/conf文件下面。这个文件地址是可以自己定义的,比方说我们将证书去做上传的操作,如果说觉得用Shell上传比较麻烦,那么可以去使用Xftp去做证书的上传。先打开Xftp的页面,找到的usr/local,在这里强调,这个地址不是固定的,大家可以去根据自己的需要来去更改它。如果我们不想放到usr,那就随便选比方说选root,不过我们还是不建议大家去把这些东西放在root。比方说新建文件夹ssl,然后将解压后的证书进行上传,看一下上传的情况。在Xshell中输入cd ssl,回车,输入ls,可以看到两个文件已经上传到了服务器。
- 上传成功之后,我们需要去修改Nginx的配置。修改的大体的情况就如视频中展示的ppt所写的一样。其中每一个参数都有自己固定的意义。接下来在讲解配置中,会边配置边讲解这些参数到代表的什么意思。如果服务器是新的,我们需要进入root文件中,在Xshell中输入cd /root,回车,输入ls,回车,输入yum install nginx来安装Nginx。安装完之后就可以拿到公网IP来看一下是否安装成功。在网页中输入公网IP,如果提示500的错误是因为我们没有去启动。启动需要在Xshell中输入nginx,启动后再刷新就可以看到Welcome to nginx的欢迎页,那么这就代表Nginx安装成功,然后我们需要去配置一下SSL。在这之前,我们先来看一下我们的域名有没有做解析,假如我们没有做任何操作,跳转到域名的时候会有错误提示,虽然域名可以访问到Nginx的主页面,但是它没有去做SSL加密,所以会看到提示网站的连接不安全。
- 我们使用Xftp,配置文件应该在nginx/conf.d,如果文件没有内容,则我们直接修改nginx.conf文件。将文件下载到本地,使用编译器打开文件,其中第一段的server{}部分是核心的服务器配置模块,因此我们需要去改掉这块的内容。因为文件内有TLS,也就是证书部署的版本,所以直接使用这个版本即可。接下来我们去配置第一段server{},我们修改其中的root,比如原本的root是/usr/share/nginx/html,找到路径中的index.html,并使用我们自己写好的index.html替换它,再一次访问我们的域名,会发现新的index.html已经上传到了我们的配置文件。配置这些基础的东西如果成功,那么我们就可以开始去配置SSL证书的部分。
- 在视频中的图片示例中,可以看到第一个listen,一般是用443的端口。这个端口可以通过安全组去设置将443的端口开放,开放之后,可以去修改本地的配置文件。首先把TLS部分内的server{}注释全都去掉,修改完成,看一下这些内容到底是什么意思。第二个listen后的两个封号(::)代表是支持的IPv6,如果不支持可以将这行删掉,直接去listen 443。server_name一般是填写证书的服务名称,专业一些可以填一下私钥,但是一般这块可以不用填,不用填它也依然是可以去访问的。ssl_certificate_key是服务器的私钥,这个路径我们填成绝对路径,比方说上传到root的ssl,在填写了/root/ssl后填上私钥的名称,即/root/ssl/+私钥。然后还需要改证书的路径,即ssl_certificate,同样的我们需要填写绝对路径。证书的路径和证书的私钥修改完成后,我们就已经完成了比较重要的两个部分。其次的话还有SSL开启这个参数,如果没有的话,就自己加一个,ssl on;。还有其它的一些内容,比方说使用协议、加密套件,这里就不为大家去做过多的介绍,大概可以自己去看一下。
- 将已经修改完成的SSL文件进行上传,上传到/etc/nginx根目录下,上传完后需要检验一下配置文件是否有误。我们在Xshell中输入nginx -t,回车。如果看到两段,第一个代表证书配置是正确的,第二个代表它测试通过。
- 配置文件正确后,重启一下。在Xshell中输入nginx -s reload去重启一下Nginx的服务器。
- 刷新页面。页面显示绿色,即链接是安全的。同样也说明证书是有效的。点击证书,可以去看一下颁发给域名的证书的情况,在证书的详细信息内有证书的版本、颁发者、有效期、公钥。
这样我们就完成了SSL配置中的一大半内容,但是有些同学会说,我目的并不是去手动输https,我想让它自动跳转。那么这里也给大家提供一个方法,大家可以去用rewrite直接加到server里面,然后进行重定向。比方说我们需要去重定向ftp,那么我们就在ftp server里面加上重写的规则,rewrite ^(.*) https://$host$1 permanent 。这样就是直接去跳转到ftp的host里面。完成之后保存,然后进行上传。同样我们只要修改Nginx的服务器,那么就一定要去做校验,然后进行重启。完成后刷新看一下效果,这时候我们直接访问域名,它会直接去跳到https。以上就是全站跳转的操作。只需要去在配置文件上面加一条重写的规则,这样我们从80端进到的服务就会直接跳转到https的访问。
Nginx还有几个配置参数,我们去看一下。
- listen 443。它代表访问端口号。
- ssl on。它是来启用SSL的功能的参数。
- ssl_certificate。它是证书文件。
- ssl_certificate_key。它是私钥文件。证书文件和私钥文件后面跟的是相对或者绝对路径。这边我们会推荐大家把路径写死,直接定位到绝对路径。
- ssl_protocols。它是使用的协议。
- ssl_ciphers。它是配置加密套件,它的写法遵循openssl的标准。
希望大家对本次课程提供一些比较简单的意见,可以在我们课程下方的留言里面提出来,我们会及时进行查看,并且反馈。