Nginx配置ssl,实现https访问

大家都知道现在如果你访问一个网站,如果是http开头的访问,状态栏地址会显示不安全,如下图

 

 

 但如果是https访问,会显示安全,如下图

 

 

 原因:

HTTP(超文本传输协议)被用于在Web浏览器和网站服务器之间,以明文方式传递信息,不提供任何方式的数据加密,因此使用HTTP协议传输隐私信息(如:银行卡号、密码等支付信息)非常不安全。

为了解决这一安全缺陷,网景公司设计了SSL(Secure Sockets Layer)协议,在HTTP的基础上加入了SSL(Secure Sockets Layer)协议,SSL依靠SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。从而诞生了HTTPS(安全套接字层超文本传输协议)。

简单来说,HTTPS协议="SSL+HTTP协议"构建的可进行加密传输、身份认证的网络协议,是HTTP的安全版。

 

解决办法:

 

Nginx部署ssl证书

1.首先我们可以去申请一份ssl证书,我是在西部数码申请的,花了一块大洋,在疫情期间的我省吃俭用才凑得一块钱!!

 

立即申请,一块大洋,慎重考虑

 

 

 

 

 按需申请

 

 

 好了,其实按西部数码的流程来就行了,还要在服务器上放一个txt文件验证,当然西部数码是这样,其他的不知道,得到ssl证书后下载解压,如下图会得到两个这个文件

 

 

 2.我把它俩兄弟放在了 /usr/local/nginx/conf/ 目录下,也就是nginx默认安装路径下

 

 

 3.检查nginx是否安装了ssl模块,进入到 /usr/local/nginx/sbin/ 输入 ./nginx -V 注意 大写的V还有那个小数点,如果有如图红框内的东西,说明安装了,否则没有安装ssl模块,怎么装下面有教程

 

 

 4.编辑/usr/local/nginx/conf/下的nginx.conf文件,添加如下代码,路径改为你存放证书的路径,监听端口也需要改成443

     ssl_certificate        /usr/local/nginx/conf/www.orscloud.cn.crt;          #需将_www.domain.com.cer  中的内容复制到这个文件头部,中间不要有空行

        ssl_certificate_key /usr/local/nginx/conf/www.orscloud.cn.key;         #证书密钥文件

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL;

改好后如下图

 

 5.改好后重启nginx 命令 ./nginx -s reload ,现在就可以使用https访问啦

 

Nginx安装SSL模块教程

问题:如果没安装该模块,重启nginx会报错:nginx: [emerg] unknown directive "ssl_certificate" xxxxxxxx

1.找到你以前安装nginx前解压nginx的目录,如果删了 从新下载,记住不是安装后/usr/local/nginx的目录 进入目录后你会看到有个configure,对就是它!

 

 2.输入如下命令添加这个模块

./configure --with-http_ssl_module

3.输入如下命令编译,记住千万不要安装(make install),否则会覆盖之前的nginx配置

make

4.然后你会看到有个objs文件夹,文件夹内有个nginx文件,复制到/usr/local/nginx/sbin文件夹下,复制前先备份

备份

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

拷贝

cp objs/nginx /usr/local/nginx/sbin/nginx

5.ssl模块安装完了,可以继续Nginx部署ssl证书的步骤了

posted @ 2020-03-20 13:24  明年上初中  阅读(589)  评论(0编辑  收藏  举报