先说一下
上一篇讲了怎么在Centos8下安装Nginx,但是Nginx默认只能使用http访问,不仅不安全还无法支持谷歌Pwa特性。今天来说一下怎么给nginx安装ssl证书并启用https访问。
此次教程使用Centos8系统 Nginx版本为1.17.8,请确认安装Nginx的时候已经安装了SSL模板。
准备
要安装ssl呢,就需要先为站点申请一个ssl证书,推荐去阿里云申请,个人免费版一次最大免费时长一年。
申请过程就不写了,相信大多数人都会,不会的呢官方有教程文档。
证书下发成功之后,点击右边的下载,选择Nginx类型,然后再点击一次下载。
解压下载下来的压缩包,打开文件夹,里面应该会有一个pem后缀的文件和一个key后缀的文件。为了方便等会用,把它重命名一下,我这里重命名的是ssl,怎么方便怎么来。
开始
使用SSH登录上服务器,cd到nginx的安装目录,新建一个用来存放证书的文件夹。并把证书上传到这个文件夹里面去(不知道怎么上传的可以用阿里云的对象存储,先上传到对象存储再用wget命令下载到文件夹里面)。上传完之后使用ls命令查看一下,确定目录里面有这两个文件。
1 | cd /usr/local/nginx/ |
修改Nginx的配置文件,先给原来的80端口做一个跳转,使其跳转到Https。这里的yourname填写你自己的域名 一定要是你自己的域名 别直接复制粘贴上去
1 | server { |
跳转配置好之后,再来配置配置ssl证书和开启ssl。
这里一定要把前面的#符号删掉,不然配置不会生效。
yourname还是写你的域名。
ssl on前面如果你的nginx版本大于1.5,就得在前面加一个#号把它注释掉,不然会报错。nginx版本小于1.5的请忽略。
ssl_certificate和ssl_certificate_key后面都是写你的证书文件的位置,别写错了,一个是pem后缀,一个是key后缀。如果和我证书放置的文件夹不一样,那么一定要写你自己的。
1 | # HTTPS server |
查看
1 | nginx -t |
先输入nginx -t查看你配置文件是否可用,出现successful表示可用。
如果出现nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:37则表示nginx安装的时候没有安装ssl模块,重新安装后再试。
在输入nginx -s stop停止nginx服务
接着输入nginx启动服务,在浏览器地址栏输入你的域名并回车,如果在网址的旁边出现一把小锁的话就说明ssl配置成功,已经启用Https了。 (忘了说,一定要先去云服务控制台放行443端口,不然无法访问(ง •_•)ง)

