Django配置Https访问

  • 问题描述
  • 相关知识普及
    • 什么是http?
    • 什么是https?
    • http vs https
  • 问题解决
    • 问题分析
      • 解决方案 1
      • 解决方案2
    • 实际操作
  • 验证
    • 重启服务
    • 请求验证

问题描述

当小编开发完成django项目部署到后台时,忽然发现公司的服务器部署了ssl证书,所以前端获取到的页面都是以https开头的。然后问题出现了,当我修改好了ip等配置文件发起登录请求时,出现了如下错误:

错误详情:net::ERR_SSL_PROTOCOL_ERROR send @ jquery-3.4.1.min.js:2 ajax @ jquery-3.4.1

大体意思就是https页面不能访问非http请求
这就很鸡贼了,哈哈哈,于是开始各种百度,这对于我这种小菜鸡来说还挺头疼的,但是问题总会有解决方法的哈!

相关知识普及

什么是http?

超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

什么是https?

《图解HTTP》这本书中曾提过HTTPS是身披SSL外壳的HTTP。HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。
PS:TLS是传输层加密协议,前身是SSL协议,由网景公司1995年发布,有时候两者不区分。

http vs https

无状态:协议对客户端没有状态存储,对事物处理没有“记忆”能力,比如访问一个网站需要反复进行登录操作
无连接:HTTP/1.1之前,由于无状态特点,每次请求需要通过TCP三次握手四次挥手,和服务器重新建立连接。比如某个客户机在短时间多次请求同一个资源,服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求,需要耗费不必要的时间和流量。
基于请求和响应:基本的特性,由客户端发起请求,服务端响应
简单快速、灵活
通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性

问题解决

问题分析

出现该问题大概就是解决http与https两个页面与请求之间不互通的问题咯

解决方案 1

撤销服务器ssl证书,恢复http访问,但是这对于一个企业来说是不现实的。

解决方案2

增加django的https访问

实际操作

参考了 https://www.cnblogs.com/kusy/p/9560458.html

1.下载创建ssl证书的工具
本地下载
链接: https://pan.baidu.com/s/1JDVMWit0CFLkgdVFX3K-Ag 提取码: ft5u 复制这段内容后打开百度网盘手机App,操作更方便哦
2. 解压
将下载的压缩包文件上传至服务器,解压到自己想存放的路径。
3. 配置
解压后找到解压目录的bin文件件,找到openssl.exe文件,双击打开指令窗口,输入如下指令进行配置,每执行一条指令,均需要配置相关参数,随意填写均可

genrsa -des3 -out server.key 2048
req -new -key server.key -out server.csr -config openssl.cnf
rsa -in server.key -out server_no_passwd.key
x509 -req -days 365 -in server.csr -signkey server_no_passwd.key -out server.crt

此时就会在bin目录下生成了对应的crt证书文件。

至此,自签名ssl证书创建完成。
4. django配置
下载配置ssl证书所需模块

pip3 install django-extensions
pip3 install django-werkzeug-debugger-runserver
pip3 install pyOpenSSL

配置INSTALLED_APPS 新增
‘werkzeug_debugger_runserver’,
‘django_extensions’,

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','myapp','corsheaders','werkzeug_debugger_runserver','django_extensions',
]

验证

重启服务

启动指令不再是

python manage.py runserver 0.0.0.0:8000

而是

python manage.py runserver_plus --cert server.crt 0.0.0.0:8000

请求验证

发起请求

到此,问题得以解决。。。

我是小菜鸡,不喜勿喷,如果描述错误的地方,欢迎各位大佬留言指正谢谢!!!

Django配置Https访问相关推荐

  1. okhttp连接池_OkHttp配置HTTPS访问+服务器部署

    1 概述 OkHttp配置HTTPS访问,核心为以下三个部分: - sslSocketFactory() - HostnameVerifier - X509TrustManager 第一个是ssl套接 ...

  2. SSL证书配置(https访问接口, 单向认证和双向认证)

    拿到SSL证书后, 如何才能解锁更多玩法? 一. SpringBoots项目配置https访问接口(直接配置) SSL协议 配置步骤 1. 获取证书/ 生成证书 2. 放置证书 3. 配置项目 pro ...

  3. nginx配置https访问 生成ssl自签名证书,浏览器直接访问

    问题 nginx配置自签名ssl证书,来支持https访问nginx,在浏览器中访问nginx时,提示有风险.而访问其他各大网站时,也是使用了https协议,为什么可以直接访问,而不提示有风险呢? 解 ...

  4. 如何部署微信小程序,并且利用Nginx配置https访问

    1. 前后端代码的部署 首先要完成项目在服务器上面的部署,对于后端服务的部署,只需要把项目打成jar包,然后执行就可以了,对于前端服务,我们把前端打包后的代码放到对应位置,然后配置nginx配置文件, ...

  5. Spring Boot 配置 HTTPS 访问

    Spring Boot 配置 HTTPS 访问 相关代码 生成证书 创建新证书 keytool -genkeypair -alias hellowood -keyalg RSA -keysize 20 ...

  6. Tomcat配置https访问SSL证书(pfx文件)

    首先买一个域名. 以阿里云为例:去域名网站下载pfx文件,文件包含如下. 接下来在tomcat的文件夹中新一个一个文件:cert 将下载的 pfx放进去. 然后打开tomcat的server.cml文 ...

  7. Nginx配置https访问

    在这里我使用的是阿里云ECS,里面提供一年免费SSL证书 1.什么是HTTPS 根据维基百科的解释: 超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol ...

  8. gateway配置https访问

    1.下载根证书,此次测试为阿里云申请的免费证书,下载后解压如下: 2.将证书文件复制到resource目录 3.项目配置文件中配置: server:port: 8080ssl:enabled: tru ...

  9. WebGateway系列(4): 配置HTTPS访问IRIS的Web服务

    经常被问到有关IRIS如何支持SSL,HTTPS的问题,有必要写个东西介绍一下. HTTPS的原理 简单的说,https实现两个目的:一是访问网站加密,2是确认被访问的网站是真的. 首先,被访问的网站 ...

最新文章

  1. 上升沿_不懂上升、下降沿的我,高兴惨了!
  2. Gym 101128 B Black Vienna
  3. kotlin 添加第一个 集合_Flutter开发必学Dart语法篇之集合操作符函数与源码分析...
  4. Delphi与Windows 7下的用户账户控制(UAC)机制
  5. [转载] python中join的使用
  6. Java实现 第三方的验证码发送问题--博客园老牛大讲堂
  7. Android逆向之路---让我们试试另一种方法看漫画-(1)
  8. 【Multisim】认识与使用
  9. 给视频局部添加马赛克,怎么调整马赛克位置
  10. 《数据清洗》 第六章 数据转换
  11. LQR:Linear Quadratic Regulator 线性二次型调节器
  12. IOS 数据库操作SQLite3使用详解
  13. UltraEdit中文破解版
  14. 比赛报名 | 2019AIIA杯电梯调度算法大赛正式启动
  15. 全新升级达内java高级互联网架构课|课件齐全
  16. 【H5】html5的新增的标签和废除的标签
  17. 前端白屏出现的原因及一些解决方式
  18. 网站服务器评测,9.2分! 浪潮服务器受到海外权威专业评测网站肯定
  19. Shell while语句
  20. 百度小程序用什么服务器好,百度、微信、支付宝,三家小程序平台,选谁?

热门文章

  1. Mac m1 配置OpenCV (C++)
  2. 【OpenCV】Mac OS M1上安装OpenCV
  3. 初识Linux(1):入门简介、基础指令
  4. 第三章 神医之名,气运颤针!
  5. 在线超级查询大全,没有什么是查不到的(个人收集)
  6. STM32开启RTC与W5500相互干扰导致死机
  7. AsyncLoadLocalImage ios 加载本地高清大图
  8. ZkClient之读取数据。
  9. 英语中的国籍,国家和地区
  10. AM335x Beaglebone black 蚂蚁矿机L3+控制板 资源下载