当前位置:   article > 正文

Nginx配置https访问_nginx访问

nginx访问

一. 简介

HTTP是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

HTTPS是以网络安全为目标的HTTP通道,简单地讲就是HTTP的安全版,即HTTP中加入了SSL层,HTTPS的安全基础就是SSL,因此加密的详细内容就需要SSL。

二. https和http区别

HTTP与HTTPS的区别**:**

  1. https协议需要到ca申请证书,一般免费证书较少,大多需要一定的费用;
  2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议;
  3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443;
  4. http的连接很简单,是无状态的;https协议是由SSL+HTTP协议构建的,可进行加密传输、身份认证的网络协议,比http协议安全。

三. https协议优缺点

1.优点

  1. 使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
  2. HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性;
  3. HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。

2.缺点

  1. HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%,增加10%到20%的耗电;
  2. HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响;
  3. SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用;
  4. SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗;
  5. HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的是,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。

01、http&https

HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。

HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

02、https使用场景

1:网站数据传递的安全性

2:基于前后端分离开发方式,比如微信小程序,等这些移动端应用开发,比如:你的服务器接口必须是:https,微信小程序在真实的项目发布的,如果不是https的接口你也是通不过。

03、https配置前提

1、必须拥有一个已经备案的域名
2、拥有一台服务器(含公网IP)
3、服务器与域名进行解析
4、领取ssl安全证书
5、证书授权与安装至nginx中

04、域名解析

在这步之前,你需要在工信部成功备案信息,注意:备案地址取决你的服务器厂商,服务器在哪个公司购买的就去哪个公司去备案,备案详情请咨询客服,客服会把你讲的明明白白。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
img
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p0KkMKi2-1640519870392)(img-u6pRtIwy-1640519487086)
注意:若你的域名厂商与服务器厂商不是同一个,需要修改域名厂商的dns服务器地址,(看情况)如下:
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

05、申请ssl证书

搜索栏搜索SSL
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
申请免费证书,输入域名
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

创建证书
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QZSAxGP3-1640520189774)

下载证书
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nBOFPFmv-1640520243745)
解压证书
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WfSV3bmF-1640519487095)

06、安装nginx

1、创建安装目录

mkdir -p /www/server/nginx
cd /www/server/nginx
  • 1
  • 2

2、下载安装nginx

wget http://nginx.org/download/nginx.1.20.1.tar.gz
  • 1

3、安装编译文件

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
  • 1

4、解压nginx

tar -zxvf nginx-1.20.1.tar.gz
  • 1

5、创建临时目录

mkdir -p /var/temp/nginx
  • 1

6、进入安装包路径并编译安装

cd nginx-1.20.1
  • 1
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_stub_status_module 
123456789101112131415
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

7、编译安装

make && make install
  • 1

8、进入sbin目录启动nginx

cd /usr/local/nginx/sbin
  • 1
#执行启动
./nginx
#停止:
./nginx -s stop
#重新加载:
./nginx -s reload 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

9、配置nginx环境变量

vim /etc/profile
  • 1

在末尾加入

export NGINX_HOME=/usr/local/nginx
export PATH=$NGINX_HOME/sbin:$PATH
  • 1
  • 2

重启

source /etc/profile
  • 1

如果你为宝塔安装nginx,无需操作以上步骤,不过不建议使用宝塔安装

07、上传ssl证书

在nginx的conf目录下新建一个cert目录,并将这两个文件上传到cert目录下
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XGUdV3dF-1640519487096)

08、配置ssl

# 开启gzip压缩
gzip on;
gzip_min_length 10k;
gzip_buffers 4 16k;
#gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript image/jpeg image/gif image/png image/jpg;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";

# tomcat服务
upstream tomcatservers {
   server 127.0.0.1:8080;
   server 127.0.0.1:8081;
}

server {
    listen 80;
    server_name www.qdwork.top; #需要将yourdomain.com替换成证书绑定的域名。
    rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    location / {
        proxy_pass http://tomcatservers;
    }
}


#以下属性中,以ssl开头的属性表示与证书配置有关。
server {
    listen 443 ssl;
    #配置HTTPS的默认访问端口为443。
    #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
    #如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
    server_name www.qdwork.top; #需要将yourdomain.com替换成证书绑定的域名。
    root html;
    index index.html index.htm;
    ssl_certificate cert/6179501_www.qdwork.top.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
    ssl_certificate_key cert/6179501_www.qdwork.top.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #表示使用的加密套件的类型。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://tomcatservers;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

重启nginx服务

注意:如果是宝塔安装的nginx,还需在宝塔面板放行443端口,当网站配置https后,就无法通过js加载http服务的资源了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/103583
推荐阅读
相关标签
  

闽ICP备14008679号