linux 给nginx安装ssl证书,并强制使用https协议访问

 

环境centos7,影响不大。

 

停止服务(如何停,看我其他博文)

如果不停止而先去改配置文件后面会麻烦一些(别问我为什么知道),因为停服务的好像会校验nginx.conf文件,不正确的话不能停下来。

 

改配置文件

linux 给nginx安装ssl证书,并强制使用https协议访问_第1张图片

 


 

强制跳转使用https

error_page  497 https://$host:$server_port$uri?$args;

 

有两种方法,一种地址重写,第二种当然是我这样捕捉错误,再重写咯。其中用到的$host 这样的,都是ng的内置变量。我这里就用到了$host  $server_port  $args 三个变量

 


 

重点,怎么获取证书

两种,买或者自己做。

其中ssl的钥匙和证书我都放在的conf/cert/中。

买的有贵的,也有免费试用的,就看自己咯。反正我是自己做的。

自己做的一个弊端呢,就是第一次访问的时候,浏览器认为不安全。

linux 给nginx安装ssl证书,并强制使用https协议访问_第2张图片

 

自制证书呢,可以使用openSSL工具。

参考:

https://blog.csdn.net/gengxiaoming7/article/details/78505107

https://www.cnblogs.com/lihuang/articles/4205540.html

 

 

调整完配置文件

核验文件的合法性

./home/deployer/nginx/sbin/nginx -t -c /home/deployer/nginx/conf/nginx.conf        //验证配置文件的合法性

 

一般这会会提示ssl模块缺失,这个问题在windows上是不会出现的,唯独linux版的nginx有这步操作。当然也可以查看现有的ng服务器是否安装了ssl模块。

./home/deployer/nginx/sbin/nginx -V

 

找到你的安装包,进入。可直接运行configure  添加ssl模块,生成新的nginx文件。

./configure --with-http_ssl_module --prefix=/home/deployer/nginx

 

然后输入命令make,千万不要用make install,这个命令是初次安装ng时用的

这会在安装包的obj文件夹中生成一个新的nginx文件(不是我懒不写名字,而是它就叫这名字)

在运行configure一定要加prefix并加上你现安装好的ng路劲,不然会用默认路径,到时这个文件就不能用了。(被坑过)

 

然后在备份的情况下,就可以将刚才那个新的nginx文件(明显比以前的大上几M),替换掉/home/deployer/nginx/sbin 中的ng文件了。

再次验证配置文件应该就会提示success了。

./home/deployer/nginx/sbin/nginx -t -c /home/deployer/nginx/conf/nginx.conf        //验证配置文件的合法性

然后启动ng就,完成了。

 

lucky dog to you.

 

你可能感兴趣的:(nginx)