Nginx【https配置】

这篇具有很好参考价值的文章主要介绍了Nginx【https配置】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什么要使用https

  • 1、因为http采用的时明文传输,敏感数据(账号、密码、交易信息)不安全。容易遭到篡改
  • 2、https采用的是超文本传输协议,数据在传输时会加密,能够避免信息泄露

TLS和SSL是如何将数据加密的(他们运行在应用层和传输层之间)

  • 1、提供数据安全(不被泄露)
  • 2、提供数据完整性(不被篡改)
  • 3、对应用层交给传输层的数据进行加密与解密

 https加密模型

  • 对称加密(使用相同的密钥对)
  • 非对称加密(一对密钥-公钥、私钥)
  • CA机构(CA颁发公钥、私钥,由CA验证身份信息)

https类型

  • dv:个人使用、免费
  • ov:企业使用、中型公司
  • ev:增强型证书(政府、银行)
  • 单域名型证书:只能保护一个域名
  • 多域名型证书:能够保护多个域名
  • 通配符型证书:*.test.org

 单台实现https配置

申请证书【模拟】

[root@nginx conf.d]# mkdir -p /etc/nginx/ssl_key
[root@nginx conf.d]# cd /etc/nginx/ssl_key/
  • 使用openssl生成证书:生产中不使用此方法,黑户,不被互联网认可
[root@nginx ssl_key]# openssl genrsa -idea -out server.key 2048
Generating RSA private key, 2048 bit long modulus
..................................................................+++
....+++
e is 65537 (0x10001)

## 我这里填的密码:1234      

Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:
  • 生成自签证书,同时去掉私钥密码
[root@nginx ssl_key]# openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
Generating a 2048 bit RSA private key
............................................+++
................................................................................+++
writing new private key to 'server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:WH
Locality Name (eg, city) [Default City]:WH
Organization Name (eg, company) [Default Company Ltd]:edu
Organizational Unit Name (eg, section) []:test
Common Name (eg, your name or your server's hostname) []:www.test.org
Email Address []:1@qq.com 
              
[root@nginx ssl_key]# ls
server.crt  server.key
  • 将证书配置到nginx中
[root@nginx conf.d]# vim CA.conf
server {
  listen 443 ssl;
  server_name www.test.org;
  root /code/CA;
    ssl_protocols       TLSv1.1 TLSv1.2;
    ssl_certificate     ssl_key/server.crt;
    ssl_certificate_key ssl_key/server.key;
  location / {
    index index.html;
  }
}
server {
  listen 80;
  server_name www.test.org;
  return 302 https://$http_host$request_uri;
}

 集群配置https

LB

192.168.200.120

web-01

192.168.200.121

web-02

192.168.200.122文章来源地址https://www.toymoban.com/news/detail-505885.html

 先配置后端web-01、web-02

[root@nginx conf.d]# vim CA.conf
server {
  listen 80;
  server_name www.test.org;
  root /code/CA;
  location / {
    index index.html;
  }
  location ~ \.php$ {
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param HTTPS on;
      include fastcgi_params;       
  }
}

LB配置https

  • 生成证书
mkdir -p /etc/nginx/ssl_key
cd /etc/nginx/ssl_key/
openssl genrsa -idea -out server.key 2048
openssl req -days 36500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
  • nginx配置
[root@nginx conf.d]# vim test.conf 
  
upstream ca {
  server 192.168.200.121:80;
  server 192.168.200.122:80;
}
server {
  listen 443 ssl;
  server_name www.test.org;
    charset utf-8;
    default_type text/html;
      ssl_protocols       TLSv1.1 TLSv1.2;
      ssl_certificate     ssl_key/server.crt;
      ssl_certificate_key ssl_key/server.key;
    location / {
      proxy_pass http://ca;
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}
server {
  listen 80;
  server_name www.test.org;
  return 302 https://$http_host$request_uri;
}

https的使用场景

  • 1、网站主页(没有信息传递,可以不使用https)
  • 2、登录页面(有信息传递使用https)
servre {
    listen 80;
    server_name www.test.org;
    root /code/test;
    location / {
        index index.html;    
    }
    location /login {
        return 302 https://start.test.org;    
    }
}
server {
  listen 443 ssl;
  server_name start.test.org;
    charset utf-8;
    default_type text/html;
      ssl_protocols       TLSv1.1 TLSv1.2;
      ssl_certificate     ssl_key/server.crt;
      ssl_certificate_key ssl_key/server.key;
    location / {
      index index.html;
  }
}

到了这里,关于Nginx【https配置】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 因为计算机中丢失VCRUNTIME140怎么办?为什么会丢失VCRUNTIME140.dll

    vcruntime140.dll是一个Windows动态链接库,其主要功能是为C/C++编译的程序提供运行时支持。这个库在Microsoft Visual Studio 2015中被引入,其名称中的“140”代表版本号。在我们打开运行软件或者游戏程序的时候,电脑提示因为计算机中丢失VCRUNTIME140无法运行怎么办呢?下面小编就把

    2024年02月10日
    浏览(69)
  • 【计算机网络】什么是HTTPS?HTTPS为什么是安全的?

    【面试经典题】 前言: HTTP最初的设计就是用于数据的共享和传输,并没有考虑到数据的安全性,如窃听风险,篡改风险和冒充风险。HTTPS是在 HTTP 的基础上引入了一个加密层。HTTPS通过数据加密,数据完整性检验和身份认证有效的保证了数据传输的安全性。HTTP默认端口号8

    2024年02月08日
    浏览(44)
  • HTTPS为什么安全,流程?

    对称、非对称混合加密 首先,我们先来看 HTTP 为什么 不安全 。 HTTP没有对通信内容进行加密,是 明文传输 ,信息可能会被 劫持、篡改 等,相当于在互联网上裸奔,所以是不安全的。 那么HTTPS主要就是为了解决这个问题,而解决这个问题肯定要对传输的明文进行 加密 ,让

    2023年04月20日
    浏览(50)
  • 为什么HTTPS是安全的?

    1.1 HTTP 协议介绍 HTTP 协议是一种基于文本的传输协议,它位于 OSI 网络模型中的应用层。  HTTP 协议是通过客户端和服务器的请求应答来进行通讯,目前协议由之前的 RFC 2616 拆分成立六个单独的协议说明(RFC 7230、RFC 7231、RFC 7232、RFC 7233、RFC 7234、RFC 7235),通讯报文如下: 请

    2024年02月08日
    浏览(44)
  • 为什么 HTTPS 比 HTTP 安全

    HTTP(超文本传输协议)是目前互联网应用最广泛的协议,伴随着人们网络安全意识的加强,HTTPS 被越来越多地采纳。不论是访问一些购物网站,或是登录一些博客、论坛等,我们都被 HTTPS 保护着,甚至 Google Chrome、Firefox 等主流浏览器已经将所有基于 HTTP 的站点都标记为不安全

    2024年02月19日
    浏览(48)
  • 为什么说 HTTPS 是安全的?

    在这个数字化高速发展的时代,网络安全变得前所未有的重要。 个人信息、金融交易、国家安全乃至民生便捷,几乎每一个环节都与网络安全息息相关。 HTTPS作为当今网络传输协议中的重要一员,是保障网络传输安全的基石之一。 本文将深入探讨HTTPS的安全性,解析其背后的

    2024年01月19日
    浏览(45)
  • 为什么 https 比 http 更安全?

    http 和 https 在许多网站都有用到,但是现在都是极力倡导使用 https ,究其原因就是 http 的安全性不够高,在数据传输过程中可能会遭到黑客窃取。 本篇文章会先讲解 http 缺点,然后再讲解 https 是如何解决这些问题来保证安全的。 一、http 缺点 通信使用明文(不加密),内容

    2024年01月24日
    浏览(47)
  • HTTPS 为什么是安全的 _ (下)

    有了这些前置知识,下面就来深入剖析 HTTPS 。 为什么需要 HTTPS ? 因为 HTTP 在裸奔 。 针对上篇文章中提到过的安全传输信息的几个要素: 保证传输内容的安全,即不传输明文 防止传输内容被篡改,即可以识别篡改 确认对方真的是对方,即通信双方身份的认证 由于 HTTP 是

    2024年04月11日
    浏览(45)
  • HTTPS工作过程,国家为什么让http为什么要换成https,Tomcat在MAC M1电脑如何安装,Tomcat的详细介绍

    目录 引言 一、HTTPS工作过程 二、Tomcat 在访达中找到下载好的Tomcat文件夹(这个要求按顺序) zsh: permission denied TOMCAT的各部分含义: 在密码中一般是:明文+密钥-密文(加密) ,密文+密钥-明文(解密) 那么为什么大家放弃了原有的http换为https呢? 这我们就要先介绍一下H

    2024年02月08日
    浏览(51)
  • 字节二面:为什么SpringBoot的 jar 可以直接运行?我说因为内嵌了Tomcat容器,他让我出门左转。。

    在传统的Java应用程序开发和部署场景中,开发者往往需要经历一系列复杂的步骤才能将应用成功部署到生产环境。例如,对于基于Servlet规范的Java Web应用,开发完成后通常会被打包成WAR格式,然后部署到像Apache Tomcat、Jetty这样的Web容器中。这一过程中,不仅要管理应用本身的

    2024年04月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包