超文本传输安全协议(HTTPS)是以安全为目标的HTTP通道,简单来说就是HTTP安全版。https由两个部分组成:HTTP+SSL/TLS,在http基础上加上了一层加密信息模块,服务端和客户端的信息插损胡都会通过TLS进行加密,传输的数据都是加密后的数据。

为了解决HTTP协议的这些缺陷,需要使用另一种协议:HTTPS。为了数据传输的安全性,HTTPS在HTTP的基础上加了SSL协议,SSL依靠证书验证身份,并为浏览器和服务器之间通信加密。


SSL证书是一种数字证书,使用Secure Socket Layer协议在浏览器和web服务器之间建立一条安全通道,从而实现数据信息在客户端和服务器之间的加密传输,保证双方传递信息的安全性,不可被第三方窃听,而且用户可以通过服务器证书验证所访问网站是否真实可靠。

加密的HTTPS和HTTP的区别:超文本传输协议http协议被用于在web浏览器和网站服务器之间传递信息,http协议以明文方式发送内容,不提供任何方式的加密数据,如果攻击者截取了web浏览器和网站服务器之间的传输报文,就可以直接读取其中信息,因此,http协议不适合传输一些敏感信息。




HTTPS加密,解密,验证完成过程如图所示:
Nginx配置https

首先客户端发送请求,服务端接受到请求之后并申请生成公私秘钥,同时将公钥证书发送给客户端,客户端收到之后并通过TLS进行解析验证,如果证书没有问题就会在客户端生成一个加密随机值,将随机值发送给服务端,服务端接收到之后,用自己的私钥解密,从而得到这个随机值,然后通过这个随机值对内容进行对称加密。服务端将用私钥加密后的信息发送给客户端,最后,客户端用之前生成的私钥来解密服务器端发过来的信息,获取解密后的内容。


接下来我们就来看一看一些https协议的网站为例,如下:
Nginx配置https
Nginx配置https




现在为止,我们之前在Nginx演示的一些页面都是只可以通过http进行访问的
Nginx配置https
Nginx配置https

那么我们在Nginx如何设置https呢?其实非常简单,如下:
Nginx配置https
我们只需将购买来的证书中的文件,上传至上图配置文件中对应的路径即可。



这里我们自己也是可以使用 OpenSSL 生成 SSL Key 和 CSR 文件的,首先我们需要查看一下环境配置,如下
Nginx配置https
这里我们在安装的时候就介绍过了,这里需要使用的https模块。


然后其创建步骤主要如下:

  1. 创建服务器私钥,命令会让你输入一个口令:
    openssl genrsa -des3 -out server.key 1024
    Nginx配置https

  2. 创建签名请求的证书(CSR):
    openssl req -new -key server.key -out server.csr
    Nginx配置https

  3. 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:
    openssl rsa -in server.key -out server_nopass.key
    Nginx配置https

  4. 最后标记证书使用上述私钥和CSR:
    openssl x509 -req -days 365 -in server.csr -signkey server_nopass.key -out server.crt
    Nginx配置https


完成上述步骤后,得到我们所需的 server.crt 和 server_nopass.key 文件后,我们在Nginx的https的配置中进行配置,需注意其文件路径。


重启Nginx服务后,我们进行访问 https://… ,如果一直无法访问,查看是否防火墙的443端口未开放,开启防火墙端口号可见 JDK及Tomcat的安装


另外因为这个https的证书、私钥等,都是我们自己生产的,所以浏览器会认定为不安全的连接,我们在高级设置里,点击继续前往即可
Nginx配置https
Nginx配置https
Nginx配置https

我们在这也是可以查看其证书的信息
Nginx配置https
Nginx配置https

另外我们既然设置了https,那么我们就可以将所有http的请求全部转发至https
Nginx配置https


最后需要注意的一点就是,我们在设置了https之后,那么在https里,ajax请求普通http,会报错(原因:会降低安全)

相关文章:

  • 2022-01-27
  • 2022-02-19
  • 2021-08-03
  • 2021-12-12
  • 2021-05-27
  • 2021-12-14
猜你喜欢
  • 2021-10-02
  • 2021-12-18
  • 2021-05-18
  • 2021-11-06
相关资源
相似解决方案